Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


code clean up
[palacios.git] / palacios / include / palacios / svm_io.h
1 #ifndef __SVM_IO_H
2 #define __SVM_IO_H
3
4 #ifdef __V3VEE__
5
6 #include <palacios/vm_guest.h>
7 #include <palacios/vmcb.h>
8 #include <palacios/vmm.h>
9
10
11 struct svm_io_info {
12   uint_t type        : 1       PACKED;  // (0=out, 1=in)
13   uint_t rsvd        : 1       PACKED;  // Must be Zero
14   uint_t str         : 1       PACKED;  // string based io
15   uint_t rep         : 1       PACKED;  // repeated io
16   uint_t sz8         : 1       PACKED;  // 8 bit op size
17   uint_t sz16        : 1       PACKED;  // 16 bit op size
18   uint_t sz32        : 1       PACKED;  // 32 bit op size
19   uint_t addr16      : 1       PACKED;  // 16 bit addr
20   uint_t addr32      : 1       PACKED;  // 32 bit addr
21   uint_t addr64      : 1       PACKED;  // 64 bit addr
22   uint_t rsvd2       : 6       PACKED;  // Should be Zero
23   ushort_t port                PACKED;  // port number
24 };
25
26
27 int handle_svm_io_in(struct guest_info * info);
28 int handle_svm_io_ins(struct guest_info * info);
29 int handle_svm_io_out(struct guest_info * info);
30 int handle_svm_io_outs(struct guest_info * info);
31
32 #endif // !__V3VEE__
33
34
35 #endif