1 /* (c) 2008, Jack Lange <jarusl@cs.northwestern.edu> */
2 /* (c) 2008, The V3VEE Project <http://www.v3vee.org> */
9 #include <palacios/vm_guest.h>
10 #include <palacios/vmcb.h>
11 #include <palacios/vmm.h>
15 uint_t type : 1 PACKED; // (0=out, 1=in)
16 uint_t rsvd : 1 PACKED; // Must be Zero
17 uint_t str : 1 PACKED; // string based io
18 uint_t rep : 1 PACKED; // repeated io
19 uint_t sz8 : 1 PACKED; // 8 bit op size
20 uint_t sz16 : 1 PACKED; // 16 bit op size
21 uint_t sz32 : 1 PACKED; // 32 bit op size
22 uint_t addr16 : 1 PACKED; // 16 bit addr
23 uint_t addr32 : 1 PACKED; // 32 bit addr
24 uint_t addr64 : 1 PACKED; // 64 bit addr
25 uint_t rsvd2 : 6 PACKED; // Should be Zero
26 ushort_t port PACKED; // port number
30 int handle_svm_io_in(struct guest_info * info);
31 int handle_svm_io_ins(struct guest_info * info);
32 int handle_svm_io_out(struct guest_info * info);
33 int handle_svm_io_outs(struct guest_info * info);