mirror of
https://github.com/drasko/codezero.git
synced 2026-01-19 06:13:16 +01:00
Reimplemented kill/suspend
It seems to work fine except an undefined instruction is generated from posix userspace occasionally
This commit is contained in:
@@ -60,7 +60,8 @@ 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_pager_exit(void);
|
||||
void sched_exit_sync(void);
|
||||
void sched_suspend_sync(void);
|
||||
void sched_suspend_async(void);
|
||||
void sched_resume_sync(struct ktcb *task);
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#define TASK_SUSPENDING (1 << 1)
|
||||
#define TASK_RESUMING (1 << 2)
|
||||
#define TASK_EXITING (1 << 3)
|
||||
#define TASK_PENDING_SIGNAL (TASK_SUSPENDING | TASK_EXITING)
|
||||
|
||||
/* Task states */
|
||||
enum task_state {
|
||||
@@ -80,8 +81,7 @@ struct ktcb {
|
||||
enum task_state state;
|
||||
|
||||
struct link task_list; /* Global task list. */
|
||||
struct link task_dead_list; /* List of dead children */
|
||||
struct mutex task_dead_mutex; /* Dead children list mutex */
|
||||
struct ktcb_list child_exit_list;
|
||||
|
||||
/* UTCB related, see utcb.txt in docs */
|
||||
unsigned long utcb_address; /* Virtual ref to task's utcb area */
|
||||
@@ -156,6 +156,7 @@ struct ktcb *tcb_alloc_init(void);
|
||||
void tcb_delete(struct ktcb *tcb);
|
||||
|
||||
|
||||
void ktcb_list_remove(struct ktcb *task, struct ktcb_list *ktcb_list);
|
||||
void ktcb_list_add(struct ktcb *new, struct ktcb_list *ktcb_list);
|
||||
void init_ktcb_list(struct ktcb_list *ktcb_list);
|
||||
void task_update_utcb(struct ktcb *task);
|
||||
|
||||
@@ -11,7 +11,6 @@ void thread_id_pool_init(void);
|
||||
int thread_id_new(void);
|
||||
int thread_id_del(int tid);
|
||||
|
||||
void thread_destroy_current(void);
|
||||
void task_make_zombie(struct ktcb *task);
|
||||
void thread_destroy(struct ktcb *);
|
||||
|
||||
#endif /* __GENERIC_THREAD_H__ */
|
||||
|
||||
Reference in New Issue
Block a user