59 typedef unsigned char process_event_t;
60 typedef void * process_data_t;
61 typedef unsigned char process_num_events_t;
74 #define PROCESS_ERR_OK 0 82 #define PROCESS_ERR_FULL 1 85 #define PROCESS_NONE NULL 87 #ifndef PROCESS_CONF_NUMEVENTS 88 #define PROCESS_CONF_NUMEVENTS 32 91 #define PROCESS_EVENT_NONE 0x80 92 #define PROCESS_EVENT_INIT 0x81 93 #define PROCESS_EVENT_POLL 0x82 94 #define PROCESS_EVENT_EXIT 0x83 95 #define PROCESS_EVENT_SERVICE_REMOVED 0x84 96 #define PROCESS_EVENT_CONTINUE 0x85 97 #define PROCESS_EVENT_MSG 0x86 98 #define PROCESS_EVENT_EXITED 0x87 99 #define PROCESS_EVENT_TIMER 0x88 100 #define PROCESS_EVENT_COM 0x89 101 #define PROCESS_EVENT_NET_FLOW_ON 0x8a 102 #define PROCESS_EVENT_MAX 0x8b 112 #define PROCESS_BROADCAST NULL 113 #define PROCESS_ZOMBIE ((struct process *)0x1) 129 #define PROCESS_BEGIN() PT_BEGIN(process_pt) 140 #define PROCESS_END() PT_END(process_pt) 150 #define PROCESS_WAIT_EVENT() PROCESS_YIELD() 166 #define PROCESS_WAIT_EVENT_UNTIL(c) PROCESS_YIELD_UNTIL(c) 173 #define PROCESS_YIELD() PT_YIELD(process_pt) 187 #define PROCESS_YIELD_UNTIL(c) PT_YIELD_UNTIL(process_pt, c) 201 #define PROCESS_WAIT_UNTIL(c) PT_WAIT_UNTIL(process_pt, c) 202 #define PROCESS_WAIT_WHILE(c) PT_WAIT_WHILE(process_pt, c) 209 #define PROCESS_EXIT() PT_EXIT(process_pt) 220 #define PROCESS_PT_SPAWN(pt, thread) PT_SPAWN(process_pt, pt, thread) 230 #define PROCESS_PAUSE() do { \ 231 process_post(PROCESS_CURRENT(), PROCESS_EVENT_CONTINUE, NULL); \ 232 PROCESS_WAIT_EVENT_UNTIL(ev == PROCESS_EVENT_CONTINUE); \ 251 #define PROCESS_POLLHANDLER(handler) if(ev == PROCESS_EVENT_POLL) { handler; } 263 #define PROCESS_EXITHANDLER(handler) if(ev == PROCESS_EVENT_EXIT) { handler; } 282 #define PROCESS_THREAD(name, ev, data) \ 283 static PT_THREAD(process_thread_##name(struct pt *process_pt, \ 284 process_event_t ev, \ 285 process_data_t data)) 295 #define PROCESS_NAME(name) extern struct process name 310 #if PROCESS_CONF_NO_PROCESS_NAMES 311 #define PROCESS(name, strname) \ 312 PROCESS_THREAD(name, ev, data); \ 313 struct process name = { NULL, \ 314 process_thread_##name } 316 #define PROCESS(name, strname) \ 317 PROCESS_THREAD(name, ev, data); \ 318 struct process name = { NULL, strname, \ 319 process_thread_##name } 325 struct process *next;
326 #if PROCESS_CONF_NO_PROCESS_NAMES 327 #define PROCESS_NAME_STRING(process) "" 330 #define PROCESS_NAME_STRING(process) (process)->name 332 PT_THREAD((* thread)(
struct pt *, process_event_t, process_data_t));
334 unsigned char state, needspoll;
387 process_event_t ev,
void*
data);
412 #define process_abort_all_events(p, ev) \ 413 do { } while (process_abort_event(p, ev, NULL)) 437 #define PROCESS_CURRENT() process_current 438 CCIF
extern struct process *process_current;
461 #define PROCESS_CONTEXT_BEGIN(p) {\ 462 struct process *tmp_current = PROCESS_CURRENT();\ 475 #define PROCESS_CONTEXT_END(p) process_current = tmp_current; } 559 CCIF
extern struct process *process_list;
561 #define PROCESS_LIST() process_list
CCIF void process_poll(struct process *p)
CCIF void process_start(struct process *p, const char *arg)
CCIF void process_exit(struct process *p)
Cause a process to exit.
CCIF process_event_t process_alloc_event(void)
Allocate a global event number.
CCIF int process_abort_event(struct process *p, process_event_t ev, void **pdata)
CCIF int process_post(struct process *p, process_event_t ev, void *data)
void process_init(void)
Initialize the process module.
#define PT_THREAD(name_args)
uint8_t data[USBNET_RX_BUF_SIZE]
int process_nevents(void)
CCIF void process_post_synch(struct process *p, process_event_t ev, void *data)
CCIF int process_is_running(struct process *p)