X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fos_debug.c;h=f821415696780efb494578813dc93f9d10ef3d14;hb=f7e83e5d2d00ba107ccda346da4660ab523471bb;hp=b97da12c062b941822623194074aa242bd7e0b29;hpb=72420d58d18ec71d4777d029daaf0c6a1c820b32;p=palacios-OLD.git diff --git a/palacios/src/devices/os_debug.c b/palacios/src/devices/os_debug.c index b97da12..f821415 100644 --- a/palacios/src/devices/os_debug.c +++ b/palacios/src/devices/os_debug.c @@ -81,16 +81,44 @@ static int handle_hcall(struct guest_info * info, uint_t hcall_id, void * priv_d -static int debug_free(struct vm_device * dev) { +static int debug_free(struct debug_state * state) { + // unregister hypercall + + V3_Free(state); return 0; }; +#ifdef V3_CONFIG_CHECKPOINT +static int debug_save(struct v3_chkpt_ctx * ctx, void * private_data) { + struct debug_state * dbg = (struct debug_state *)private_data; + + V3_CHKPT_STD_SAVE(ctx, dbg->debug_buf); + V3_CHKPT_STD_SAVE(ctx, dbg->debug_offset); + + return 0; +} + + +static int debug_load(struct v3_chkpt_ctx * ctx, void * private_data) { + struct debug_state * dbg = (struct debug_state *)private_data; + + V3_CHKPT_STD_LOAD(ctx, dbg->debug_buf); + V3_CHKPT_STD_LOAD(ctx, dbg->debug_offset); + + return 0; +} + +#endif static struct v3_device_ops dev_ops = { - .free = debug_free, + .free = (int (*)(void *))debug_free, +#ifdef V3_CONFIG_CHECKPOINT + .save = debug_save, + .load = debug_load +#endif };