xref: /xnu-8020.121.3/EXTERNAL_HEADERS/img4/object.h (revision fdd8201d7b966f0c3ea610489d29bd841d358941)
1*fdd8201dSApple OSS Distributions /*!
2*fdd8201dSApple OSS Distributions  * @header
3*fdd8201dSApple OSS Distributions  * Image4 object specifications.
4*fdd8201dSApple OSS Distributions  */
5*fdd8201dSApple OSS Distributions #ifndef __IMG4_OBJECT_H
6*fdd8201dSApple OSS Distributions #define __IMG4_OBJECT_H
7*fdd8201dSApple OSS Distributions 
8*fdd8201dSApple OSS Distributions #ifndef __IMG4_INDIRECT
9*fdd8201dSApple OSS Distributions #error "Please #include <img4/firmware.h> instead of this file directly"
10*fdd8201dSApple OSS Distributions #endif // __IMG4_INDIRECT
11*fdd8201dSApple OSS Distributions 
12*fdd8201dSApple OSS Distributions OS_ASSUME_NONNULL_BEGIN
13*fdd8201dSApple OSS Distributions 
14*fdd8201dSApple OSS Distributions /*!
15*fdd8201dSApple OSS Distributions  * @typedef img4_object_spec_t
16*fdd8201dSApple OSS Distributions  * An opaque type which describes information about Image4 objects for use by
17*fdd8201dSApple OSS Distributions  * the runtime.
18*fdd8201dSApple OSS Distributions  */
19*fdd8201dSApple OSS Distributions IMG4_API_AVAILABLE_20200508
20*fdd8201dSApple OSS Distributions typedef struct _img4_object_spec img4_object_spec_t;
21*fdd8201dSApple OSS Distributions 
22*fdd8201dSApple OSS Distributions /*!
23*fdd8201dSApple OSS Distributions  * @const IMG4_FIRMWARE_SPEC
24*fdd8201dSApple OSS Distributions  * The object specification for an {@link img4_firmware_t} object.
25*fdd8201dSApple OSS Distributions  */
26*fdd8201dSApple OSS Distributions #if !XNU_KERNEL_PRIVATE
27*fdd8201dSApple OSS Distributions IMG4_API_AVAILABLE_20200508
28*fdd8201dSApple OSS Distributions OS_EXPORT
29*fdd8201dSApple OSS Distributions const img4_object_spec_t _img4_firmware_spec;
30*fdd8201dSApple OSS Distributions #define IMG4_FIRMWARE_SPEC (&_img4_firmware_spec)
31*fdd8201dSApple OSS Distributions #else
32*fdd8201dSApple OSS Distributions #define IMG4_FIRMWARE_SPEC (img4if->i4if_v7.firmware_spec)
33*fdd8201dSApple OSS Distributions #endif
34*fdd8201dSApple OSS Distributions 
35*fdd8201dSApple OSS Distributions /*!
36*fdd8201dSApple OSS Distributions  * @const IMG4_FIRMWARE_SIZE_RECOMMENDED
37*fdd8201dSApple OSS Distributions  * A constant describing the recommended stack allocation required for a
38*fdd8201dSApple OSS Distributions  * {@link img4_firmware_t} object.
39*fdd8201dSApple OSS Distributions  */
40*fdd8201dSApple OSS Distributions #define IMG4_FIRMWARE_SIZE_RECOMMENDED (1280u)
41*fdd8201dSApple OSS Distributions 
42*fdd8201dSApple OSS Distributions /*!
43*fdd8201dSApple OSS Distributions  * @const IMG4_CHIP_SPEC
44*fdd8201dSApple OSS Distributions  * The object specification for an {@link img4_chip_t} object.
45*fdd8201dSApple OSS Distributions  */
46*fdd8201dSApple OSS Distributions #if !XNU_KERNEL_PRIVATE
47*fdd8201dSApple OSS Distributions IMG4_API_AVAILABLE_20200508
48*fdd8201dSApple OSS Distributions OS_EXPORT
49*fdd8201dSApple OSS Distributions const img4_object_spec_t _img4_chip_spec;
50*fdd8201dSApple OSS Distributions #define IMG4_CHIP_SPEC (&_img4_chip_spec)
51*fdd8201dSApple OSS Distributions #else
52*fdd8201dSApple OSS Distributions #define IMG4_CHIP_SPEC (img4if->i4if_v7.chip_spec)
53*fdd8201dSApple OSS Distributions #endif
54*fdd8201dSApple OSS Distributions 
55*fdd8201dSApple OSS Distributions /*!
56*fdd8201dSApple OSS Distributions  * @const IMG4_CHIP_SIZE_RECOMMENDED
57*fdd8201dSApple OSS Distributions  * A constant describing the recommended stack allocation required for a
58*fdd8201dSApple OSS Distributions  * {@link img4_chip_t} object.
59*fdd8201dSApple OSS Distributions  */
60*fdd8201dSApple OSS Distributions #define IMG4_CHIP_SIZE_RECOMMENDED (256u)
61*fdd8201dSApple OSS Distributions 
62*fdd8201dSApple OSS Distributions /*!
63*fdd8201dSApple OSS Distributions  * @const IMG4_PMAP_DATA_SPEC
64*fdd8201dSApple OSS Distributions  * The object specification for an {@link img4_pmap_data_t} object.
65*fdd8201dSApple OSS Distributions  */
66*fdd8201dSApple OSS Distributions #if !XNU_KERNEL_PRIVATE
67*fdd8201dSApple OSS Distributions IMG4_API_AVAILABLE_20210521
68*fdd8201dSApple OSS Distributions OS_EXPORT
69*fdd8201dSApple OSS Distributions const img4_object_spec_t _img4_pmap_data_spec;
70*fdd8201dSApple OSS Distributions #define IMG4_PMAP_DATA_SPEC (&_img4_pmap_data_spec)
71*fdd8201dSApple OSS Distributions #else
72*fdd8201dSApple OSS Distributions #define IMG4_PMAP_DATA_SPEC (img4if->i4if_v13.pmap_data_spec)
73*fdd8201dSApple OSS Distributions #endif
74*fdd8201dSApple OSS Distributions 
75*fdd8201dSApple OSS Distributions /*!
76*fdd8201dSApple OSS Distributions  * @const IMG4_CHIP_SIZE_RECOMMENDED
77*fdd8201dSApple OSS Distributions  * A constant describing the recommended stack allocation required for a
78*fdd8201dSApple OSS Distributions  * {@link img4_pmap_data_t} object.
79*fdd8201dSApple OSS Distributions  */
80*fdd8201dSApple OSS Distributions #define IMG4_PMAP_DATA_SIZE_RECOMMENDED (2048u)
81*fdd8201dSApple OSS Distributions 
82*fdd8201dSApple OSS Distributions OS_ASSUME_NONNULL_END
83*fdd8201dSApple OSS Distributions 
84*fdd8201dSApple OSS Distributions #endif // __IMG4_OBJECT_H
85