22 #include <boilerplate/hash.h> 23 #include <copperplate/threadobj.h> 24 #include <copperplate/syncobj.h> 25 #include <copperplate/cluster.h> 27 struct psos_task_args {
28 void (*entry)(u_long a0, u_long a1, u_long a2, u_long a3);
35 #define PSOSTASK_NR_REGS 16 42 u_long notepad[PSOSTASK_NR_REGS];
43 struct pvlistobj timer_list;
45 char name[XNOBJECT_NAME_LEN];
46 struct psos_task_args args;
48 struct threadobj thobj;
50 struct clusterobj cobj;
53 #define task_magic 0x8181fafa 55 static inline struct psos_task *psos_task_current(
void)
57 struct threadobj *thobj = threadobj_current();
60 threadobj_get_magic(thobj) != task_magic)
63 return container_of(thobj,
struct psos_task, thobj);
66 struct psos_task *get_psos_task(u_long tid,
int *err_r);
68 struct psos_task *get_psos_task_or_self(u_long tid,
int *err_r);
70 void put_psos_task(
struct psos_task *task);
72 int __ev_send(
struct psos_task *task,
unsigned long events);
74 extern struct cluster psos_task_table;