X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_usr%2Fv3_ctrl.h;h=28a5e195ecf7d4def4f73bee1c31fa6b022e1aa6;hb=6b964ba81db60030c37b66da2c2b4a38f4ef8d96;hp=e81968c388681e8a1f4a16b4f0b2859aa0726007;hpb=b22b76bd788a2dbdc23c6957b7e8488858cf2ef4;p=palacios.releases.git diff --git a/linux_usr/v3_ctrl.h b/linux_usr/v3_ctrl.h index e81968c..28a5e19 100644 --- a/linux_usr/v3_ctrl.h +++ b/linux_usr/v3_ctrl.h @@ -57,9 +57,17 @@ struct v3_guest_img { } __attribute__((packed)); +typedef enum { PREALLOCATED=0, // user space-allocated (e.g. hot remove) + REQUESTED, // kernel will attempt allocation (anywhere) + REQUESTED32, // kernel will attempt allocation (<4GB) +} v3_mem_region_type_t; + struct v3_mem_region { - unsigned long long base_addr; - unsigned long long num_pages; + v3_mem_region_type_t type; // + int node; // numa node for REQUESTED (-1 = any) + unsigned long long base_addr; // region start (hpa) for PREALLOCATED + unsigned long long num_pages; // size for PREALLOCATED or request size for REQUESTED + // should be power of 2 and > V3_CONFIG_MEM_BLOCK } __attribute__((packed)); @@ -68,7 +76,6 @@ struct v3_core_move_cmd{ unsigned short pcore_id; } __attribute__((packed)); - struct v3_debug_cmd { unsigned int core; unsigned int cmd; @@ -77,6 +84,12 @@ struct v3_debug_cmd { struct v3_chkpt_info { char store[128]; char url[256]; /* This might need to be bigger... */ + unsigned long long opts; +#define V3_CHKPT_OPT_NONE 0 +#define V3_CHKPT_OPT_SKIP_MEM 1 // don't write memory to store +#define V3_CHKPT_OPT_SKIP_DEVS 2 // don't write devices to store +#define V3_CHKPT_OPT_SKIP_CORES 4 // don't write core arch ind data to store +#define V3_CHKPT_OPT_SKIP_ARCHDEP 8 // don't write core arch dep data to store } __attribute__((packed));