diff options
Diffstat (limited to 'firmware/export/kernel.h')
-rw-r--r-- | firmware/export/kernel.h | 49 |
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 | ||
53 | struct event | 72 | struct event |
54 | { | 73 | { |