]> git.buserror.net Git - polintos/scott/priv.git/blob - idl/io/interrupts.idl
random kernel stuff
[polintos/scott/priv.git] / idl / io / interrupts.idl
1 namespace IO.Interrupts;
2
3 // alloc() and dev_alloc() will throw OperationNotSupported.
4 interface InterruptController : Bus.ResourceSpace {
5         guid: "5B67CF12-F7E0-11D9-8D57-000A95BB581A";
6
7         bitfield UserIntFlags {
8         };
9
10         request_userint(uint irqnum, UserInterruptCallback callback,
11                         UserIntFlags flags, Bus.Device device,
12                         UserInterrupt handle out);
13 };
14
15 interface Interrupt {
16         guid: "E7E400CC-F820-11D9-908F-000A95BB581A";
17
18         get_device(Bus.Device dev out);
19         get_controller(InterruptController con out);
20         get_num(uint irqnum out);
21 };
22
23 interface UserInterrupt : Interrupt, Mem.AllocHandle {
24         guid: "29939E02-F7E0-11D9-B720-000A95BB581A";
25 };
26
27 interface UserInterruptCallback {
28         guid: "5017C289-F821-11D9-8B10-000A95BB581A";
29         action(UserInterrupt irq);
30 };