2 #ifndef __XEN_PUBLIC_PHYSDEV_H__
3 #define __XEN_PUBLIC_PHYSDEV_H__
5 /* Commands to HYPERVISOR_physdev_op() */
6 #define PHYSDEVOP_IRQ_UNMASK_NOTIFY 4
7 #define PHYSDEVOP_IRQ_STATUS_QUERY 5
8 #define PHYSDEVOP_SET_IOPL 6
9 #define PHYSDEVOP_SET_IOBITMAP 7
10 #define PHYSDEVOP_APIC_READ 8
11 #define PHYSDEVOP_APIC_WRITE 9
12 #define PHYSDEVOP_ASSIGN_VECTOR 10
14 typedef struct physdevop_irq_status_query {
18 /* Need to call PHYSDEVOP_IRQ_UNMASK_NOTIFY when the IRQ has been serviced? */
19 #define PHYSDEVOP_IRQ_NEEDS_UNMASK_NOTIFY (1<<0)
21 } physdevop_irq_status_query_t;
23 typedef struct physdevop_set_iopl {
26 } physdevop_set_iopl_t;
28 typedef struct physdevop_set_iobitmap {
32 } physdevop_set_iobitmap_t;
34 typedef struct physdevop_apic {
36 unsigned long apic_physbase;
42 typedef struct physdevop_irq {
49 typedef struct physdev_op {
52 physdevop_irq_status_query_t irq_status_query;
53 physdevop_set_iopl_t set_iopl;
54 physdevop_set_iobitmap_t set_iobitmap;
55 physdevop_apic_t apic_op;
56 physdevop_irq_t irq_op;
59 DEFINE_GUEST_HANDLE(physdev_op_t);
61 #endif /* __XEN_PUBLIC_PHYSDEV_H__ */
69 * indent-tabs-mode: nil