X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_dev_mgr.h;h=792aa0c799b2242bebf0122d62edb64d7cdf7b69;hb=0d59908c92e599d6061db7ebba75f2f0d87fef63;hp=84bbc5827e557a1ff2bad5e1fd32b0f51180396c;hpb=e47ed16a96f6d7faa282bf757e9d2cc065d2657e;p=palacios.releases.git diff --git a/palacios/include/palacios/vmm_dev_mgr.h b/palacios/include/palacios/vmm_dev_mgr.h index 84bbc58..792aa0c 100644 --- a/palacios/include/palacios/vmm_dev_mgr.h +++ b/palacios/include/palacios/vmm_dev_mgr.h @@ -28,7 +28,7 @@ #include #include #include - +#include struct v3_vm_info; @@ -102,11 +102,17 @@ int V3_init_devices(); int V3_deinit_devices(); +#ifdef V3_CONFIG_KEYED_STREAMS +#include +#endif + struct v3_device_ops { int (*free)(void * private_data); - //int (*save)(struct vm_device *dev, struct *iostream); - //int (*restore)(struct vm_device *dev, struct *iostream); +#ifdef V3_CONFIG_KEYED_STREAMS + int (*checkpoint)(struct vm_device *dev, v3_keyed_stream_t stream); + int (*restore)(struct vm_device *dev, v3_keyed_stream_t stream); +#endif }; @@ -173,18 +179,14 @@ struct v3_dev_blk_ops { struct v3_dev_net_ops { /* Backend implemented functions */ - int (*send)(uint8_t * buf, uint32_t count, void * private_data); - void (*start_rx)(void * back_data); - void (*stop_rx)(void * back_data); + int (*send)(uint8_t * buf, uint32_t len, int synchronize, void * private_data); /* Frontend implemented functions */ - int (*recv)(uint8_t * buf, uint32_t count, void * frnt_data); - void (*poll)(struct v3_vm_info * vm, void * frnt_data); - void (*start_tx)(void * frnt_data); - void (*stop_tx)(void * frnt_data); + int (*recv)(uint8_t * buf, uint32_t len, void * frnt_data); /* This is ugly... */ void * frontend_data; + char fnt_mac[ETH_ALEN]; }; struct v3_dev_console_ops { @@ -200,11 +202,11 @@ struct v3_dev_console_ops { struct v3_dev_char_ops { /* Backend implemented functions */ - int (*write)(uint8_t * buf, uint64_t len, void * private_data); + uint64_t (*output)(uint8_t * buf, uint64_t len, void * private_data); // int (*read)(uint8_t * buf, uint64_t len, void * private_data); /* Frontend Implemented functions */ - int (*push)(struct v3_vm_info * vm, uint8_t * buf, uint64_t len, void * private_data); + uint64_t (*input)(struct v3_vm_info * vm, uint8_t * buf, uint64_t len, void * private_data); };