KInterruptEventMailbox

From 3dbrew
Jump to navigation Jump to search

Size : 0x14 bytes

There are only two instances of this class. The first mailbox contains pointers to KProcess instances (viewed as KSendableInterruptEvent), and its handling thread has a priority of 0; whereas the second mailbox contains pointers to KThread instances (viewed as KSendableInterruptEvent), and DMA-related interrupt events, and its handling thread has a priority of 16.

The handling thread executes the handler function, i.e. the first virtual function (then removes the interrupt event from the list) of all the KSendableInterruptEvent instances the mailbox contains. When that list is empty, it sets the mailbox's "is busy" flag and unschedules itself.

Offset Type Description
0x0 u32 Mailbox ID
0x4 KSendableInterruptEvent * First interrupt event
0x8 KSendableInterruptEvent * Last interrupt event
0xC u8 Mailbox is busy (and not empty)
0xD u8[3] Padding
0x10 KThread * const Kernel thread handling this object