]>
Commit | Line | Data |
---|---|---|
d8b1ae42 PM |
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 | #define ARM_LINUX_BOOT_IF_CLASS(klass) \ | |
13 | OBJECT_CLASS_CHECK(ARMLinuxBootIfClass, (klass), TYPE_ARM_LINUX_BOOT_IF) | |
14 | #define ARM_LINUX_BOOT_IF_GET_CLASS(obj) \ | |
15 | OBJECT_GET_CLASS(ARMLinuxBootIfClass, (obj), TYPE_ARM_LINUX_BOOT_IF) | |
16 | #define ARM_LINUX_BOOT_IF(obj) \ | |
17 | INTERFACE_CHECK(ARMLinuxBootIf, (obj), TYPE_ARM_LINUX_BOOT_IF) | |
18 | ||
aa1b35b9 | 19 | typedef struct ARMLinuxBootIf ARMLinuxBootIf; |
d8b1ae42 PM |
20 | |
21 | typedef struct ARMLinuxBootIfClass { | |
22 | /*< private >*/ | |
23 | InterfaceClass parent_class; | |
24 | ||
25 | /*< public >*/ | |
26 | /** arm_linux_init: configure the device for a direct boot | |
27 | * of an ARM Linux kernel (so that device reset puts it into | |
28 | * the state the kernel expects after firmware initialization, | |
29 | * rather than the true hardware reset state). This callback is | |
30 | * called once after machine construction is complete (before the | |
31 | * first system reset). | |
32 | * | |
33 | * @obj: the object implementing this interface | |
34 | * @secure_boot: true if we are booting Secure, false for NonSecure | |
35 | * (or for a CPU which doesn't support TrustZone) | |
36 | */ | |
37 | void (*arm_linux_init)(ARMLinuxBootIf *obj, bool secure_boot); | |
38 | } ARMLinuxBootIfClass; | |
39 | ||
40 | #endif |