1 /* 2 * Virtual Machine coreinfo device 3 * 4 * Copyright (C) 2017 Red Hat, Inc. 5 * 6 * Authors: Marc-André Lureau <marcandre.lureau@redhat.com> 7 * 8 * This work is licensed under the terms of the GNU GPL, version 2 or later. 9 * See the COPYING file in the top-level directory. 10 * 11 */ 12 #ifndef VMCOREINFO_H 13 #define VMCOREINFO_H 14 15 #include "hw/qdev.h" 16 #include "standard-headers/linux/qemu_fw_cfg.h" 17 18 #define VMCOREINFO_DEVICE "vmcoreinfo" 19 #define VMCOREINFO(obj) OBJECT_CHECK(VMCoreInfoState, (obj), VMCOREINFO_DEVICE) 20 21 typedef struct fw_cfg_vmcoreinfo FWCfgVMCoreInfo; 22 23 typedef struct VMCoreInfoState { 24 DeviceClass parent_obj; 25 26 bool has_vmcoreinfo; 27 FWCfgVMCoreInfo vmcoreinfo; 28 } VMCoreInfoState; 29 30 /* returns NULL unless there is exactly one device */ 31 static inline VMCoreInfoState *vmcoreinfo_find(void) 32 { 33 Object *o = object_resolve_path_type("", VMCOREINFO_DEVICE, NULL); 34 35 return o ? VMCOREINFO(o) : NULL; 36 } 37 38 #endif 39