ia64/xen-unstable

view xen/include/public/physdev.h @ 6316:f7dfaa2af90c

merge?
author cl349@firebug.cl.cam.ac.uk
date Sun Aug 21 11:02:00 2005 +0000 (2005-08-21)
parents 1872e09bfba3
children 6721abf6b16d
line source
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 {
15 /* IN */
16 u32 irq;
17 /* OUT */
18 /* Need to call PHYSDEVOP_IRQ_UNMASK_NOTIFY when the IRQ has been serviced? */
19 #define PHYSDEVOP_IRQ_NEEDS_UNMASK_NOTIFY (1<<0)
20 u32 flags;
21 } physdevop_irq_status_query_t;
23 typedef struct physdevop_set_iopl {
24 /* IN */
25 u32 iopl;
26 } physdevop_set_iopl_t;
28 typedef struct physdevop_set_iobitmap {
29 /* IN */
30 char *bitmap;
31 u32 nr_ports;
32 } physdevop_set_iobitmap_t;
34 typedef struct physdevop_apic {
35 /* IN */
36 u32 apic;
37 u32 offset;
38 /* IN or OUT */
39 u32 value;
40 } physdevop_apic_t;
42 typedef struct physdevop_irq {
43 /* IN */
44 u32 irq;
45 /* OUT */
46 u32 vector;
47 } physdevop_irq_t;
49 typedef struct physdev_op {
50 u32 cmd;
51 union {
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;
57 } u;
58 } physdev_op_t;
60 #endif /* __XEN_PUBLIC_PHYSDEV_H__ */
62 /*
63 * Local variables:
64 * mode: C
65 * c-set-style: "BSD"
66 * c-basic-offset: 4
67 * tab-width: 4
68 * indent-tabs-mode: nil
69 * End:
70 */