mirror of
https://github.com/drasko/codezero.git
synced 2026-01-16 04:43:16 +01:00
l4_exit() works with a reasonable sched_die_sync()
Next: Killing other tasks more cleanly, and waiting on children
This commit is contained in:
@@ -60,6 +60,7 @@ extern struct scheduler scheduler;
|
||||
void sched_init_runqueue(struct runqueue *rq);
|
||||
void sched_init_task(struct ktcb *task, int priority);
|
||||
void sched_prepare_sleep(void);
|
||||
void sched_die_sync(void);
|
||||
void sched_suspend_sync(void);
|
||||
void sched_suspend_async(void);
|
||||
void sched_resume_sync(struct ktcb *task);
|
||||
|
||||
@@ -64,6 +64,9 @@ struct ktcb {
|
||||
l4id_t tid; /* Global thread id */
|
||||
l4id_t tgid; /* Global thread group id */
|
||||
|
||||
/* Other related threads */
|
||||
l4id_t pagerid;
|
||||
|
||||
/* Flags to indicate various task status */
|
||||
unsigned int flags;
|
||||
|
||||
@@ -73,11 +76,9 @@ struct ktcb {
|
||||
/* Lock for blocking thread state modifications via a syscall */
|
||||
struct mutex thread_control_lock;
|
||||
|
||||
/* Other related threads */
|
||||
l4id_t pagerid;
|
||||
|
||||
u32 ts_need_resched; /* Scheduling flag */
|
||||
enum task_state state;
|
||||
|
||||
struct link task_list; /* Global task list. */
|
||||
|
||||
/* UTCB related, see utcb.txt in docs */
|
||||
@@ -102,9 +103,7 @@ struct ktcb {
|
||||
struct pager *pager;
|
||||
|
||||
/* Capability lists */
|
||||
struct cap_list cap_list; /* Own private capabilities */
|
||||
struct cap_list tgroup_cap_list; /* Caps shared with thread group */
|
||||
struct cap_list pager_cap_list; /* Caps shared with paged children */
|
||||
struct cap_list cap_list; /* Own private capabilities */
|
||||
|
||||
/* Fields for ipc rendezvous */
|
||||
struct waitqueue_head wqh_recv;
|
||||
|
||||
Reference in New Issue
Block a user