Subversion Repositories HelenOS-historic

Rev

Rev 1600 | Rev 1661 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1600 Rev 1636
Line 53... Line 53...
53
 
53
 
54
#ifndef LOADED_PROG_STACK_PAGES_NO
54
#ifndef LOADED_PROG_STACK_PAGES_NO
55
#define LOADED_PROG_STACK_PAGES_NO 1
55
#define LOADED_PROG_STACK_PAGES_NO 1
56
#endif
56
#endif
57
 
57
 
-
 
58
/** Spinlock protecting the tasks_btree B+tree. */
58
SPINLOCK_INITIALIZE(tasks_lock);
59
SPINLOCK_INITIALIZE(tasks_lock);
-
 
60
 
-
 
61
/** B+tree of active tasks.
-
 
62
 *
-
 
63
 * The task is guaranteed to exist after it was found in the tasks_btree as long as:
-
 
64
 * @li the tasks_lock is held,
-
 
65
 * @li the task's lock is held when task's lock is acquired before releasing tasks_lock or
-
 
66
 * @li the task's refcount is grater than 0
-
 
67
 *
-
 
68
 */
59
btree_t tasks_btree;
69
btree_t tasks_btree;
-
 
70
 
60
static task_id_t task_counter = 0;
71
static task_id_t task_counter = 0;
61
 
72
 
62
static void ktaskclnp(void *arg);
73
static void ktaskclnp(void *arg);
63
static void ktaskkill(void *arg);
74
static void ktaskkill(void *arg);
64
 
75
 
Line 237... Line 248...
237
/** Find task structure corresponding to task ID.
248
/** Find task structure corresponding to task ID.
238
 *
249
 *
239
 * The tasks_lock must be already held by the caller of this function
250
 * The tasks_lock must be already held by the caller of this function
240
 * and interrupts must be disabled.
251
 * and interrupts must be disabled.
241
 *
252
 *
242
 * The task is guaranteed to exist after it was found in the tasks_btree as long as:
-
 
243
 * @li the tasks_lock is held,
-
 
244
 * @li the task's lock is held when task's lock is acquired before releasing tasks_lock or
-
 
245
 * @li the task's refcount is grater than 0
-
 
246
 *
-
 
247
 * @param id Task ID.
253
 * @param id Task ID.
248
 *
254
 *
249
 * @return Task structure address or NULL if there is no such task ID.
255
 * @return Task structure address or NULL if there is no such task ID.
250
 */
256
 */
251
task_t *task_find_by_id(task_id_t id)
257
task_t *task_find_by_id(task_id_t id)