summaryrefslogtreecommitdiff
path: root/firmware/export/kernel.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/kernel.h')
-rw-r--r--firmware/export/kernel.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/firmware/export/kernel.h b/firmware/export/kernel.h
index 78403c8b7d..337f249dfe 100644
--- a/firmware/export/kernel.h
+++ b/firmware/export/kernel.h
@@ -78,6 +78,11 @@
78 78
79#define IS_SYSEVENT(ev) ((ev & SYS_EVENT) == SYS_EVENT) 79#define IS_SYSEVENT(ev) ((ev & SYS_EVENT) == SYS_EVENT)
80 80
81#ifndef TIMEOUT_BLOCK
82#define TIMEOUT_BLOCK -1
83#define TIMEOUT_NOBLOCK 0
84#endif
85
81struct queue_event 86struct queue_event
82{ 87{
83 long id; 88 long id;
@@ -178,6 +183,17 @@ struct event
178}; 183};
179#endif 184#endif
180 185
186
187#ifdef HAVE_WAKEUP_OBJECTS
188struct wakeup
189{
190 struct thread_entry *queue; /* waiter list */
191 unsigned char signalled; /* signalled status */
192 IF_COP( struct corelock cl; ) /* multiprocessor sync */
193};
194#endif
195
196
181/* global tick variable */ 197/* global tick variable */
182#if defined(CPU_PP) && defined(BOOTLOADER) 198#if defined(CPU_PP) && defined(BOOTLOADER)
183/* We don't enable interrupts in the iPod bootloader, so we need to fake 199/* We don't enable interrupts in the iPod bootloader, so we need to fake
@@ -225,6 +241,7 @@ void timeout_cancel(struct timeout *tmo);
225#define STATE_SIGNALED 1 241#define STATE_SIGNALED 1
226 242
227#define WAIT_TIMEDOUT (-1) 243#define WAIT_TIMEDOUT (-1)
244#define WAIT_FAILED 0
228#define WAIT_SUCCEEDED 1 245#define WAIT_SUCCEEDED 1
229 246
230extern void queue_init(struct event_queue *q, bool register_queue); 247extern void queue_init(struct event_queue *q, bool register_queue);
@@ -274,4 +291,10 @@ extern void event_wait(struct event *e, unsigned int for_state);
274extern void event_set_state(struct event *e, unsigned int state); 291extern void event_set_state(struct event *e, unsigned int state);
275#endif /* HAVE_EVENT_OBJECTS */ 292#endif /* HAVE_EVENT_OBJECTS */
276 293
294#ifdef HAVE_WAKEUP_OBJECTS
295extern void wakeup_init(struct wakeup *w);
296extern int wakeup_wait(struct wakeup *w, int timeout);
297extern int wakeup_signal(struct wakeup *w);
298#endif /* HAVE_WAKEUP_OBJECTS */
299
277#endif /* _KERNEL_H_ */ 300#endif /* _KERNEL_H_ */