/* * hw/arm/linux-boot-if.h : interface for devices which need to behave * specially for direct boot of an ARM Linux kernel */ #ifndef HW_ARM_LINUX_BOOT_IF_H #define HW_ARM_LINUX_BOOT_IF_H #include "qom/object.h" #define TYPE_ARM_LINUX_BOOT_IF "arm-linux-boot-if" typedef struct ARMLinuxBootIfClass ARMLinuxBootIfClass; DECLARE_CLASS_CHECKERS(ARMLinuxBootIfClass, ARM_LINUX_BOOT_IF, TYPE_ARM_LINUX_BOOT_IF) #define ARM_LINUX_BOOT_IF(obj) \ INTERFACE_CHECK(ARMLinuxBootIf, (obj), TYPE_ARM_LINUX_BOOT_IF) typedef struct ARMLinuxBootIf ARMLinuxBootIf; struct ARMLinuxBootIfClass { /*< private >*/ InterfaceClass parent_class; /*< public >*/ /** arm_linux_init: configure the device for a direct boot * of an ARM Linux kernel (so that device reset puts it into * the state the kernel expects after firmware initialization, * rather than the true hardware reset state). This callback is * called once after machine construction is complete (before the * first system reset). * * @obj: the object implementing this interface * @secure_boot: true if we are booting Secure, false for NonSecure * (or for a CPU which doesn't support TrustZone) */ void (*arm_linux_init)(ARMLinuxBootIf *obj, bool secure_boot); }; #endif