3 #include <geekos/vm_guest.h>
4 #include <geekos/vmcb.h>
5 #include <geekos/vmm.h>
8 uint_t type : 1 PACKED; // (0=out, 1=in)
9 uint_t rsvd : 1 PACKED; // Must be Zero
10 uint_t str : 1 PACKED; // string based io
11 uint_t rep : 1 PACKED; // repeated io
12 uint_t sz8 : 1 PACKED; // 8 bit op size
13 uint_t sz16 : 1 PACKED; // 16 bit op size
14 uint_t sz32 : 1 PACKED; // 32 bit op size
15 uint_t addr16 : 1 PACKED; // 16 bit addr
16 uint_t addr32 : 1 PACKED; // 32 bit addr
17 uint_t addr64 : 1 PACKED; // 64 bit addr
18 uint_t rsvd2 : 6 PACKED; // Should be Zero
19 ushort_t port PACKED; // port number
23 int handle_svm_io_in(struct guest_info * info);
24 int handle_svm_io_ins(struct guest_info * info);
25 int handle_svm_io_out(struct guest_info * info);
26 int handle_svm_io_outs(struct guest_info * info);