diff options
Diffstat (limited to 'firmware/export/kernel.h')
-rw-r--r-- | firmware/export/kernel.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/firmware/export/kernel.h b/firmware/export/kernel.h index ec8aa28a08..495e558175 100644 --- a/firmware/export/kernel.h +++ b/firmware/export/kernel.h | |||
@@ -83,10 +83,14 @@ struct event_queue | |||
83 | #endif | 83 | #endif |
84 | }; | 84 | }; |
85 | 85 | ||
86 | #define MTX_UNOWNED 0x00000000 | ||
87 | #define MTX_BLOCKED_WAITER 0x00000001 | ||
88 | #define MTX_SPIN_WAITER 0x00010001 | ||
89 | #define MTX_SPIN_OWNER 0x00020001 | ||
86 | struct mutex | 90 | struct mutex |
87 | { | 91 | { |
92 | uint32_t locked; | ||
88 | struct thread_entry *thread; | 93 | struct thread_entry *thread; |
89 | bool locked; | ||
90 | }; | 94 | }; |
91 | 95 | ||
92 | /* global tick variable */ | 96 | /* global tick variable */ |
@@ -126,8 +130,12 @@ extern void queue_remove_from_head(struct event_queue *q, long id); | |||
126 | extern int queue_broadcast(long id, intptr_t data); | 130 | extern int queue_broadcast(long id, intptr_t data); |
127 | 131 | ||
128 | extern void mutex_init(struct mutex *m); | 132 | extern void mutex_init(struct mutex *m); |
133 | static inline void spinlock_init(struct mutex *m) | ||
134 | { mutex_init(m); } /* Same thing for now */ | ||
129 | extern void mutex_lock(struct mutex *m); | 135 | extern void mutex_lock(struct mutex *m); |
130 | extern void mutex_unlock(struct mutex *m); | 136 | extern void mutex_unlock(struct mutex *m); |
137 | extern void spinlock_lock(struct mutex *m); | ||
138 | extern void spinlock_unlock(struct mutex *m); | ||
131 | extern void tick_start(unsigned int interval_in_ms); | 139 | extern void tick_start(unsigned int interval_in_ms); |
132 | 140 | ||
133 | #define IS_SYSEVENT(ev) ((ev & SYS_EVENT) == SYS_EVENT) | 141 | #define IS_SYSEVENT(ev) ((ev & SYS_EVENT) == SYS_EVENT) |