| 1 | /* |
| 2 | * hw/arm/linux-boot-if.h : interface for devices which need to behave |
| 3 | * specially for direct boot of an ARM Linux kernel |
| 4 | */ |
| 5 | |
| 6 | #ifndef HW_ARM_LINUX_BOOT_IF_H |
| 7 | #define HW_ARM_LINUX_BOOT_IF_H |
| 8 | |
| 9 | #include "qom/object.h" |
| 10 | |
| 11 | #define TYPE_ARM_LINUX_BOOT_IF "arm-linux-boot-if" |
| 12 | typedef struct ARMLinuxBootIfClass ARMLinuxBootIfClass; |
| 13 | DECLARE_CLASS_CHECKERS(ARMLinuxBootIfClass, ARM_LINUX_BOOT_IF, |
| 14 | TYPE_ARM_LINUX_BOOT_IF) |
| 15 | #define ARM_LINUX_BOOT_IF(obj) \ |
| 16 | INTERFACE_CHECK(ARMLinuxBootIf, (obj), TYPE_ARM_LINUX_BOOT_IF) |
| 17 | |
| 18 | typedef struct ARMLinuxBootIf ARMLinuxBootIf; |
| 19 | |
| 20 | struct ARMLinuxBootIfClass { |
| 21 | /*< private >*/ |
| 22 | InterfaceClass parent_class; |
| 23 | |
| 24 | /*< public >*/ |
| 25 | /** arm_linux_init: configure the device for a direct boot |
| 26 | * of an ARM Linux kernel (so that device reset puts it into |
| 27 | * the state the kernel expects after firmware initialization, |
| 28 | * rather than the true hardware reset state). This callback is |
| 29 | * called once after machine construction is complete (before the |
| 30 | * first system reset). |
| 31 | * |
| 32 | * @obj: the object implementing this interface |
| 33 | * @secure_boot: true if we are booting Secure, false for NonSecure |
| 34 | * (or for a CPU which doesn't support TrustZone) |
| 35 | */ |
| 36 | void (*arm_linux_init)(ARMLinuxBootIf *obj, bool secure_boot); |
| 37 | }; |
| 38 | |
| 39 | #endif |