Rev 534 | Rev 623 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 534 | Rev 557 | ||
|---|---|---|---|
| Line 62... | Line 62... | ||
| 62 | link_t rq_link; /**< Run queue link. */ |
62 | link_t rq_link; /**< Run queue link. */ |
| 63 | link_t wq_link; /**< Wait queue link. */ |
63 | link_t wq_link; /**< Wait queue link. */ |
| 64 | link_t th_link; /**< Links to threads within containing task. */ |
64 | link_t th_link; /**< Links to threads within containing task. */ |
| 65 | link_t threads_link; /**< Link to the list of all threads. */ |
65 | link_t threads_link; /**< Link to the list of all threads. */ |
| 66 | 66 | ||
| - | 67 | /** Lock protecting thread structure. |
|
| - | 68 | * |
|
| 67 | /* items below are protected by lock */ |
69 | * Protects the whole thread structure except list links above. |
| - | 70 | * Must be acquired before T.lock for each T of type task_t. |
|
| - | 71 | * |
|
| - | 72 | */ |
|
| 68 | spinlock_t lock; |
73 | spinlock_t lock; |
| 69 | 74 | ||
| 70 | void (* thread_code)(void *); /**< Function implementing the thread. */ |
75 | void (* thread_code)(void *); /**< Function implementing the thread. */ |
| 71 | void *thread_arg; /**< Argument passed to thread_code() function. */ |
76 | void *thread_arg; /**< Argument passed to thread_code() function. */ |
| 72 | 77 | ||
| Line 107... | Line 112... | ||
| 107 | 112 | ||
| 108 | __u8 *kstack; /**< Thread's kernel stack. */ |
113 | __u8 *kstack; /**< Thread's kernel stack. */ |
| 109 | __u8 *ustack; /**< Thread's user stack. */ |
114 | __u8 *ustack; /**< Thread's user stack. */ |
| 110 | }; |
115 | }; |
| 111 | 116 | ||
| - | 117 | /** Thread list lock. |
|
| - | 118 | * |
|
| 112 | extern spinlock_t threads_lock; /**< Lock protecting threads_head list. */ |
119 | * This lock protects all link_t structures chained in threads_head. |
| - | 120 | * Must be acquired before T.lock for each T of type thread_t. |
|
| - | 121 | * |
|
| - | 122 | */ |
|
| - | 123 | extern spinlock_t threads_lock; |
|
| - | 124 | ||
| 113 | extern link_t threads_head; /**< List of all threads in the system. */ |
125 | extern link_t threads_head; /**< List of all threads in the system. */ |
| 114 | 126 | ||
| 115 | extern void thread_init(void); |
127 | extern void thread_init(void); |
| 116 | extern thread_t *thread_create(void (* func)(void *), void *arg, task_t *task, int flags); |
128 | extern thread_t *thread_create(void (* func)(void *), void *arg, task_t *task, int flags); |
| 117 | extern void thread_ready(thread_t *t); |
129 | extern void thread_ready(thread_t *t); |