diff --git a/core/sys/process.h b/core/sys/process.h index d0c97ef70..e14ad3a0e 100644 --- a/core/sys/process.h +++ b/core/sys/process.h @@ -28,7 +28,7 @@ * * This file is part of the Contiki operating system. * - * @(#)$Id: process.h,v 1.11 2007/11/17 18:07:13 adamdunkels Exp $ + * @(#)$Id: process.h,v 1.12 2007/11/17 22:11:19 adamdunkels Exp $ */ /** @@ -276,6 +276,13 @@ static PT_THREAD(process_thread_##name(struct pt *process_pt, \ process_event_t ev, \ process_data_t data)) +#if PROCESS_LOADABLE +#define PROCESS_LOAD(name) const struct process *process_load = &name +#else /* PROCESS_LOADABLE */ +#define PROCESS_LOAD(name) extern int _dummy +#endif /* PROCESS_LOADABLE */ +CLIF extern const struct process *process_load; + /** * Declare the name of a process. * @@ -286,6 +293,10 @@ static PT_THREAD(process_thread_##name(struct pt *process_pt, \ */ #define PROCESS_NAME(name) extern struct process name +#define PROCESS_NOLOAD(name, strname) \ + PROCESS_THREAD(name, ev, data); \ + struct process name = { NULL, strname, \ + process_thread_##name } /** * Declare a process. * @@ -298,11 +309,9 @@ static PT_THREAD(process_thread_##name(struct pt *process_pt, \ * * \hideinitializer */ -#define PROCESS(name, strname) \ - PROCESS_THREAD(name, ev, data); \ - struct process name = { NULL, strname, \ - process_thread_##name } - +#define PROCESS(name, strname) \ + PROCESS_NOLOAD(name, strname); \ + PROCESS_LOAD(name) /** @} */