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.


Expose HVM state to host + Linux host /proc additions for it
[palacios.git] / palacios / include / palacios / vmm_fw_cfg.h
1 /*
2  * This file is part of the Palacios Virtual Machine Monitor developed
3  * by the V3VEE Project with funding from the United States National
4  * Science Foundation and the Department of Energy.
5  *
6  * The V3VEE Project is a joint project between Northwestern University
7  * and the University of New Mexico.  You can find out more at
8  * http://www.v3vee.org
9  *
10  * Copyright (c) 2008, The V3VEE Project <http://www.v3vee.org>
11  * All rights reserved.
12  *
13  * Author: Alexander Kudryavtsev <alexk@ispras.ru>
14  *
15  * This is free software.  You are permitted to use,
16  * redistribute, and modify it as specified in the file "V3VEE_LICENSE".
17  */
18
19 #ifndef __VMM_FW_CFG_H__
20 #define __VMM_FW_CFG_H__
21
22 #ifdef __V3VEE__
23
24 #include <palacios/vmm_types.h>
25
26 #define FW_CFG_FILE_FIRST       0x20
27 #define FW_CFG_FILE_SLOTS       0x10
28 #define FW_CFG_MAX_ENTRY        (FW_CFG_FILE_FIRST + FW_CFG_FILE_SLOTS)
29
30 typedef void (*v3_fw_cfg_cb)(void * opaque, uint8_t * data);
31
32 struct v3_fw_cfg_entry {
33     uint32_t len;
34     uint8_t * data;
35     void * callback_opaque;
36     v3_fw_cfg_cb callback;
37 };
38
39
40 struct v3_fw_cfg_state {
41     struct v3_fw_cfg_entry entries[2][FW_CFG_MAX_ENTRY];
42     uint16_t cur_entry;
43     uint32_t cur_offset;
44 };
45
46 struct v3_vm_info;
47
48
49 int v3_fw_cfg_init(struct v3_vm_info * vm);
50 void v3_fw_cfg_deinit(struct v3_vm_info * vm);
51
52 #endif
53
54 #endif