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 copyright tags
[palacios.git] / palacios / include / palacios / svm_io.h
1 /* Northwestern University */
2 /* (c) 2008, Jack Lange <jarusl@cs.northwestern.edu> */
3
4 #ifndef __SVM_IO_H
5 #define __SVM_IO_H
6
7 #ifdef __V3VEE__
8
9 #include <palacios/vm_guest.h>
10 #include <palacios/vmcb.h>
11 #include <palacios/vmm.h>
12
13
14 struct svm_io_info {
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
27 };
28
29
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);
34
35 #endif // !__V3VEE__
36
37
38 #endif