Changes

1,093 bytes added ,  18:33, 10 December 2016
Created page with "Category: Kernel objects Size : 0x14 bytes There are only two instances of this class. The first mailbox contains pointers to KProcess instances (viewed as KSendabl..."
[[Category: Kernel objects]]
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.

{| class="wikitable" border="1"
|-
! 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
|}