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.


added support for in/out instructions
[palacios.git] / palacios / include / geekos / svm_io.h
1 #ifndef __SVM_IO_H
2 #define __SVM_IO_H
3 #include <geekos/vm_guest.h>
4 #include <geekos/vmcb.h>
5 #include <geekos/vmm.h>
6
7 struct svm_io_info {
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 A16         : 1       PACKED;  // 16 bit addr
16   uint_t A32         : 1       PACKED;  // 32 bit addr
17   uint_t A64         : 1       PACKED;  // 64 bit addr
18   uint_t rsvd2       : 6       PACKED;  // Should be Zero
19   ushort_t port                PACKED;  // port number
20 };
21
22
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);
27
28
29
30
31 #endif