Changeset c46bfbc in mainline for kernel/generic/src/cap/cap.c
- Timestamp:
- 2017-10-10T15:34:37Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 33f86a3
- Parents:
- cccd60c3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/cap/cap.c
rcccd60c3 rc46bfbc 114 114 * @param task Task for which to allocate the info structure. 115 115 */ 116 void caps_task_alloc(task_t *task) 117 { 118 task->cap_info = (cap_info_t *) malloc(sizeof(cap_info_t), 0); 116 int caps_task_alloc(task_t *task) 117 { 118 task->cap_info = (cap_info_t *) malloc(sizeof(cap_info_t), 119 FRAME_ATOMIC); 120 if (!task->cap_info) 121 return ENOMEM; 119 122 task->cap_info->handles = ra_arena_create(); 120 // FIXME: allow caps_task_alloc() to fail 121 assert(task->cap_info->handles); 122 bool success = ra_span_add(task->cap_info->handles, 0, MAX_CAPS); 123 // FIXME: allow caps_task_alloc() to fail 124 assert(success); 125 success = hash_table_create(&task->cap_info->caps, 0, 0, &caps_ops); 126 // FIXME: allow caps_task_alloc() to fail 127 assert(success); 123 if (!task->cap_info->handles) 124 goto error_handles; 125 if (!ra_span_add(task->cap_info->handles, 0, MAX_CAPS)) 126 goto error_span; 127 if (!hash_table_create(&task->cap_info->caps, 0, 0, &caps_ops)) 128 goto error_span; 129 return EOK; 130 131 error_span: 132 ra_arena_destroy(task->cap_info->handles); 133 error_handles: 134 free(task->cap_info); 135 return ENOMEM; 128 136 } 129 137
Note:
See TracChangeset
for help on using the changeset viewer.