Rev 814 | Rev 955 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 814 | Rev 822 | ||
---|---|---|---|
Line 62... | Line 62... | ||
62 | task_t *task_create(as_t *as) |
62 | task_t *task_create(as_t *as) |
63 | { |
63 | { |
64 | ipl_t ipl; |
64 | ipl_t ipl; |
65 | task_t *ta; |
65 | task_t *ta; |
66 | 66 | ||
67 | ta = (task_t *) malloc(sizeof(task_t)); |
67 | ta = (task_t *) malloc(sizeof(task_t), 0); |
68 | if (ta) { |
68 | |
69 | spinlock_initialize(&ta->lock, "task_ta_lock"); |
69 | spinlock_initialize(&ta->lock, "task_ta_lock"); |
70 | list_initialize(&ta->th_head); |
70 | list_initialize(&ta->th_head); |
71 | list_initialize(&ta->tasks_link); |
71 | list_initialize(&ta->tasks_link); |
72 | ta->as = as; |
72 | ta->as = as; |
73 | 73 | ||
74 | ipl = interrupts_disable(); |
74 | ipl = interrupts_disable(); |
75 | spinlock_lock(&tasks_lock); |
75 | spinlock_lock(&tasks_lock); |
76 | list_append(&ta->tasks_link, &tasks_head); |
76 | list_append(&ta->tasks_link, &tasks_head); |
77 | spinlock_unlock(&tasks_lock); |
77 | spinlock_unlock(&tasks_lock); |
78 | interrupts_restore(ipl); |
78 | interrupts_restore(ipl); |
79 | } |
79 | |
80 | return ta; |
80 | return ta; |
81 | } |
81 | } |
82 | 82 |