1 namespace IO.Interrupts;
3 // alloc() and dev_alloc() will throw OperationNotSupported.
4 interface InterruptController : Bus.ResourceSpace {
5 guid: "5B67CF12-F7E0-11D9-8D57-000A95BB581A";
7 bitfield UserIntFlags {
10 request_userint(uint irqnum, UserInterruptCallback callback,
11 UserIntFlags flags, Bus.Device device,
12 UserInterrupt handle out);
16 guid: "E7E400CC-F820-11D9-908F-000A95BB581A";
18 get_device(Bus.Device dev out);
19 get_controller(InterruptController con out);
20 get_num(uint irqnum out);
23 interface UserInterrupt : Interrupt, Mem.AllocHandle {
24 guid: "29939E02-F7E0-11D9-B720-000A95BB581A";
27 interface UserInterruptCallback {
28 guid: "5017C289-F821-11D9-8B10-000A95BB581A";
29 action(UserInterrupt irq);