Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/proc/task.c

    rbe06914 rdd8d5a7  
    151151        atomic_set(&task->refcount, 0);
    152152        atomic_set(&task->lifecount, 0);
    153         atomic_set(&task->active_calls, 0);
    154153       
    155154        irq_spinlock_initialize(&task->lock, "task_t_lock");
     
    291290}
    292291
    293 /** Syscall for reading task ID from userspace.
    294  *
    295  * @param uspace_task_id Userspace address of 8-byte buffer
    296  *                       where to store current task ID.
     292#ifdef __32_BITS__
     293
     294/** Syscall for reading task ID from userspace (32 bits)
     295 *
     296 * @param uspace_taskid Pointer to user-space buffer
     297 *                      where to store current task ID.
    297298 *
    298299 * @return Zero on success or an error code from @ref errno.h.
    299300 *
    300301 */
    301 unative_t sys_task_get_id(task_id_t *uspace_task_id)
     302sysarg_t sys_task_get_id(sysarg64_t *uspace_taskid)
    302303{
    303304        /*
     
    305306         * the lifespan of the task.
    306307         */
    307         return (unative_t) copy_to_uspace(uspace_task_id, &TASK->taskid,
     308        return (sysarg_t) copy_to_uspace(uspace_taskid, &TASK->taskid,
    308309            sizeof(TASK->taskid));
    309310}
     311
     312#endif  /* __32_BITS__ */
     313
     314#ifdef __64_BITS__
     315
     316/** Syscall for reading task ID from userspace (64 bits)
     317 *
     318 * @return Current task ID.
     319 *
     320 */
     321sysarg_t sys_task_get_id(void)
     322{
     323        /*
     324         * No need to acquire lock on TASK because taskid remains constant for
     325         * the lifespan of the task.
     326         */
     327        return TASK->taskid;
     328}
     329
     330#endif  /* __64_BITS__ */
    310331
    311332/** Syscall for setting the task name.
     
    319340 *
    320341 */
    321 unative_t sys_task_set_name(const char *uspace_name, size_t name_len)
     342sysarg_t sys_task_set_name(const char *uspace_name, size_t name_len)
    322343{
    323344        int rc;
     
    331352        rc = copy_from_uspace(namebuf, uspace_name, name_len);
    332353        if (rc != 0)
    333                 return (unative_t) rc;
     354                return (sysarg_t) rc;
    334355       
    335356        namebuf[name_len] = '\0';
     
    478499#ifdef __32_BITS__
    479500        if (*additional)
    480                 printf("%-8" PRIu64 " %9lu %7lu", task->taskid,
    481                     atomic_get(&task->refcount), atomic_get(&task->active_calls));
     501                printf("%-8" PRIu64 " %9" PRIua, task->taskid,
     502                    atomic_get(&task->refcount));
    482503        else
    483504                printf("%-8" PRIu64 " %-14s %-5" PRIu32 " %10p %10p"
     
    489510#ifdef __64_BITS__
    490511        if (*additional)
    491                 printf("%-8" PRIu64 " %9" PRIu64 "%c %9" PRIu64 "%c %9lu %7lu",
    492                     task->taskid, ucycles, usuffix, kcycles, ksuffix,
    493                     atomic_get(&task->refcount), atomic_get(&task->active_calls));
     512                printf("%-8" PRIu64 " %9" PRIu64 "%c %9" PRIu64 "%c "
     513                    "%9" PRIua, task->taskid, ucycles, usuffix, kcycles,
     514                    ksuffix, atomic_get(&task->refcount));
    494515        else
    495516                printf("%-8" PRIu64 " %-14s %-5" PRIu32 " %18p %18p\n",
     
    501522                for (i = 0; i < IPC_MAX_PHONES; i++) {
    502523                        if (task->phones[i].callee)
    503                                 printf(" %" PRIs ":%p", i, task->phones[i].callee);
     524                                printf(" %zu:%p", i, task->phones[i].callee);
    504525                }
    505526                printf("\n");
Note: See TracChangeset for help on using the changeset viewer.