/* * 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" #define ARM_LINUX_BOOT_IF_CLASS(klass) \ OBJECT_CLASS_CHECK(ARMLinuxBootIfClass, (klass), TYPE_ARM_LINUX_BOOT_IF) #define ARM_LINUX_BOOT_IF_GET_CLASS(obj) \ OBJECT_GET_CLASS(ARMLinuxBootIfClass, (obj), TYPE_ARM_LINUX_BOOT_IF) #define ARM_LINUX_BOOT_IF(obj) \ INTERFACE_CHECK(ARMLinuxBootIf, (obj), TYPE_ARM_LINUX_BOOT_IF) typedef struct ARMLinuxBootIf { /*< private >*/ Object parent_obj; } ARMLinuxBootIf; typedef 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); } ARMLinuxBootIfClass; #endif