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.h49
1 files changed, 34 insertions, 15 deletions
diff --git a/firmware/export/kernel.h b/firmware/export/kernel.h
index d5898a97f1..cb850d7af2 100644
--- a/firmware/export/kernel.h
+++ b/firmware/export/kernel.h
@@ -34,21 +34,40 @@
34#define QUEUE_LENGTH 16 /* MUST be a power of 2 */ 34#define QUEUE_LENGTH 16 /* MUST be a power of 2 */
35#define QUEUE_LENGTH_MASK (QUEUE_LENGTH - 1) 35#define QUEUE_LENGTH_MASK (QUEUE_LENGTH - 1)
36 36
37/* System defined message ID's, occupying the top 5 bits of the event ID */ 37/* System defined message ID's - |sign bit = 1|class|id| */
38#define SYS_EVENT (long)0x80000000 /* SYS events are negative */ 38/* Event class list */
39#define SYS_USB_CONNECTED ((SYS_EVENT | ((long)1 << 27))) 39#define SYS_EVENT_CLS_QUEUE 0
40#define SYS_USB_CONNECTED_ACK ((SYS_EVENT | ((long)2 << 27))) 40#define SYS_EVENT_CLS_USB 1
41#define SYS_USB_DISCONNECTED ((SYS_EVENT | ((long)3 << 27))) 41#define SYS_EVENT_CLS_POWER 2
42#define SYS_USB_DISCONNECTED_ACK ((SYS_EVENT | ((long)4 << 27))) 42#define SYS_EVENT_CLS_FILESYS 3
43#define SYS_TIMEOUT ((SYS_EVENT | ((long)5 << 27))) 43#define SYS_EVENT_CLS_PLUG 4
44#define SYS_HOTSWAP_INSERTED ((SYS_EVENT | ((long)6 << 27))) 44/* make sure SYS_EVENT_CLS_BITS has enough range */
45#define SYS_HOTSWAP_EXTRACTED ((SYS_EVENT | ((long)7 << 27))) 45
46#define SYS_POWEROFF ((SYS_EVENT | ((long)8 << 27))) 46/* MSb->|S|c...c|i...i| */
47#define SYS_FS_CHANGED ((SYS_EVENT | ((long)9 << 27))) 47#define SYS_EVENT ((long)(~0ul ^ (~0ul >> 1)))
48#define SYS_CHARGER_CONNECTED ((SYS_EVENT | ((long)10 << 27))) 48#define SYS_EVENT_CLS_BITS (3)
49#define SYS_CHARGER_DISCONNECTED ((SYS_EVENT | ((long)11 << 27))) 49#define SYS_EVENT_CLS_SHIFT (sizeof (long)*8-SYS_EVENT_CLS_BITS-1)
50#define SYS_PHONE_PLUGGED ((SYS_EVENT | ((long)12 << 27))) 50#define SYS_EVENT_CLS_MASK (((1l << SYS_EVENT_CLS_BITS)-1) << SYS_EVENT_SHIFT)
51#define SYS_PHONE_UNPLUGGED ((SYS_EVENT | ((long)13 << 27))) 51#define MAKE_SYS_EVENT(cls, id) (SYS_EVENT | ((long)(cls) << SYS_EVENT_CLS_SHIFT) | (long)(id))
52/* Macros for extracting codes */
53#define SYS_EVENT_CLS(e) (((e) & SYS_EVENT_CLS_MASK) >> SYS_EVENT_SHIFT)
54#define SYS_EVENT_ID(e) ((e) & ~(SYS_EVENT|SYS_EVENT_CLS_MASK))
55
56#define SYS_TIMEOUT MAKE_SYS_EVENT(SYS_EVENT_CLS_QUEUE, 0)
57#define SYS_USB_CONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 0)
58#define SYS_USB_CONNECTED_ACK MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 1)
59#define SYS_USB_DISCONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 2)
60#define SYS_USB_DISCONNECTED_ACK MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 3)
61#define SYS_POWEROFF MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 0)
62#define SYS_CHARGER_CONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 1)
63#define SYS_CHARGER_DISCONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 2)
64#define SYS_FS_CHANGED MAKE_SYS_EVENT(SYS_EVENT_CLS_FILESYS, 0)
65#define SYS_HOTSWAP_INSERTED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 0)
66#define SYS_HOTSWAP_EXTRACTED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 1)
67#define SYS_PHONE_PLUGGED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 2)
68#define SYS_PHONE_UNPLUGGED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 3)
69#define SYS_REMOTE_PLUGGED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 4)
70#define SYS_REMOTE_UNPLUGGED MAKE_SYS_EVENT(SYS_EVENT_CLS_PLUG, 5)
52 71
53struct event 72struct event
54{ 73{