Ignore:
File:
1 edited

Legend:

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

    r82d515e9 rb2e121a  
    5656#include <print.h>
    5757#include <errno.h>
    58 #include <func.h>
     58#include <halt.h>
    5959#include <str.h>
    6060#include <syscall/copy.h>
     
    8383/* Forward declarations. */
    8484static void task_kill_internal(task_t *);
    85 static int tsk_constructor(void *, unsigned int);
     85static errno_t tsk_constructor(void *, unsigned int);
    8686static size_t tsk_destructor(void *obj);
    8787
     
    158158}
    159159
    160 int tsk_constructor(void *obj, unsigned int kmflags)
     160errno_t tsk_constructor(void *obj, unsigned int kmflags)
    161161{
    162162        task_t *task = (task_t *) obj;
    163163
    164         int rc = caps_task_alloc(task);
     164        errno_t rc = caps_task_alloc(task);
    165165        if (rc != EOK)
    166166                return rc;
     
    185185#endif
    186186       
    187         return 0;
     187        return EOK;
    188188}
    189189
     
    207207{
    208208        task_t *task = (task_t *) slab_alloc(task_cache, 0);
     209        if (task == NULL) {
     210                return NULL;
     211        }
     212       
    209213        task_create_arch(task);
    210214       
     
    241245        if ((ipc_phone_0) &&
    242246            (container_check(ipc_phone_0->task->container, task->container))) {
    243                 cap_handle_t phone_handle = phone_alloc(task);
     247                cap_handle_t phone_handle;
     248                errno_t rc = phone_alloc(task, &phone_handle);
     249                if (rc != EOK) {
     250                        task->as = NULL;
     251                        task_destroy_arch(task);
     252                        slab_free(task_cache, task);
     253                        return NULL;
     254                }
     255               
    244256                kobject_t *phone_obj = kobject_get(task, phone_handle,
    245257                    KOBJECT_TYPE_PHONE);
     
    333345 *
    334346 */
    335 sysarg_t sys_task_get_id(sysarg64_t *uspace_taskid)
     347sys_errno_t sys_task_get_id(sysarg64_t *uspace_taskid)
    336348{
    337349        /*
     
    339351         * the lifespan of the task.
    340352         */
    341         return (sysarg_t) copy_to_uspace(uspace_taskid, &TASK->taskid,
     353        return (sys_errno_t) copy_to_uspace(uspace_taskid, &TASK->taskid,
    342354            sizeof(TASK->taskid));
    343355}
     
    373385 *
    374386 */
    375 sysarg_t sys_task_set_name(const char *uspace_name, size_t name_len)
     387sys_errno_t sys_task_set_name(const char *uspace_name, size_t name_len)
    376388{
    377389        char namebuf[TASK_NAME_BUFLEN];
     
    381393                name_len = TASK_NAME_BUFLEN - 1;
    382394       
    383         int rc = copy_from_uspace(namebuf, uspace_name, name_len);
    384         if (rc != 0)
    385                 return (sysarg_t) rc;
     395        errno_t rc = copy_from_uspace(namebuf, uspace_name, name_len);
     396        if (rc != EOK)
     397                return (sys_errno_t) rc;
    386398       
    387399        namebuf[name_len] = '\0';
     
    414426 *
    415427 */
    416 sysarg_t sys_task_kill(task_id_t *uspace_taskid)
     428sys_errno_t sys_task_kill(task_id_t *uspace_taskid)
    417429{
    418430        task_id_t taskid;
    419         int rc = copy_from_uspace(&taskid, uspace_taskid, sizeof(taskid));
    420         if (rc != 0)
    421                 return (sysarg_t) rc;
    422        
    423         return (sysarg_t) task_kill(taskid);
     431        errno_t rc = copy_from_uspace(&taskid, uspace_taskid, sizeof(taskid));
     432        if (rc != EOK)
     433                return (sys_errno_t) rc;
     434       
     435        return (sys_errno_t) task_kill(taskid);
    424436}
    425437
     
    527539 *
    528540 */
    529 int task_kill(task_id_t id)
     541errno_t task_kill(task_id_t id)
    530542{
    531543        if (id == 1)
     
    584596 *
    585597 */
    586 sysarg_t sys_task_exit(sysarg_t notify)
     598sys_errno_t sys_task_exit(sysarg_t notify)
    587599{
    588600        task_kill_self(notify);
Note: See TracChangeset for help on using the changeset viewer.