8 #ifndef __IMG4_INDIRECT
9 #error "Please #include <img4/firmware.h> instead of this file directly"
10 #endif // __IMG4_INDIRECT
17 #include <os/availability.h>
21 #if !XNU_KERNEL_PRIVATE
22 #include <TargetConditionals.h>
26 * @const IMG4_API_VERSION
27 * The API version of the library. This version will be changed in accordance
28 * with new API introductions so that callers may submit code to the build that
29 * adopts those new APIs before the APIs land by using the following pattern:
31 * #if IMG4_API_VERSION >= 20180424
35 * In this example, the library maintainer and API adopter agree on an API
36 * version of 20180424 ahead of time for the introduction of
37 * img4_new_api(). When a libdarwin with that API version is submitted, the
38 * project is rebuilt, and the new API becomes active.
40 * Breaking API changes will be both covered under this mechanism as well as
41 * individual preprocessor macros in this header that declare new behavior as
44 #define IMG4_API_VERSION (20200724u)
46 #if IMG4_TAPI || (!defined(KERNEL) && !IMG4_PROJECT_BUILD)
47 #define IMG4_API_AVAILABLE_20180112 \
54 #define IMG4_API_AVAILABLE_20180112_DEPRECATED \
55 API_DEPRECATED_WITH_REPLACEMENT( \
61 #define IMG4_API_AVAILABLE_20181004 \
62 API_DEPRECATED_WITH_REPLACEMENT( \
69 // This API version introduced the nonce manager which was not deprecated when
70 // the new API was introduced.
71 #define IMG4_API_AVAILABLE_20181106 \
77 #define IMG4_API_AVAILABLE_20181106_DEPRECATED \
78 API_DEPRECATED_WITH_REPLACEMENT( \
84 #define IMG4_API_AVAILABLE_20190125 \
85 API_DEPRECATED_WITH_REPLACEMENT( \
91 #define IMG4_API_AVAILABLE_20191001 \
92 API_DEPRECATED_WITH_REPLACEMENT( \
94 macos(10.15.2, 11.0), \
98 #define IMG4_API_AVAILABLE_20191108 \
99 API_DEPRECATED_WITH_REPLACEMENT( \
105 #define IMG4_API_AVAILABLE_20200221 \
106 API_DEPRECATED_WITH_REPLACEMENT( \
112 #define IMG4_API_AVAILABLE_20200310 \
113 API_DEPRECATED_WITH_REPLACEMENT( \
119 #define IMG4_API_AVAILABLE_20200508 \
126 #define IMG4_API_AVAILABLE_20200608 \
133 #define IMG4_API_AVAILABLE_20200724 \
141 #define IMG4_API_AVAILABLE_20180112
142 #define IMG4_API_AVAILABLE_20180112_DEPRECATED
143 #define IMG4_API_AVAILABLE_20181004
144 #define IMG4_API_AVAILABLE_20181106
145 #define IMG4_API_AVAILABLE_20181106_DEPRECATED
146 #define IMG4_API_AVAILABLE_20190125
147 #define IMG4_API_AVAILABLE_20191001
148 #define IMG4_API_AVAILABLE_20191108
149 #define IMG4_API_AVAILABLE_20200221
150 #define IMG4_API_AVAILABLE_20200310
151 #define IMG4_API_AVAILABLE_20200508
152 #define IMG4_API_AVAILABLE_20200608
153 #define IMG4_API_AVAILABLE_20200724
157 * @typedef img4_struct_version_t
158 * A type describing the version of a structure in the library.
160 IMG4_API_AVAILABLE_20180112
161 typedef uint16_t img4_struct_version_t
;
163 #endif // __IMG4_API_H