1*fdd8201dSApple OSS Distributions /*! 2*fdd8201dSApple OSS Distributions * @header 3*fdd8201dSApple OSS Distributions * API definitions. 4*fdd8201dSApple OSS Distributions */ 5*fdd8201dSApple OSS Distributions #ifndef __IMG4_API_H 6*fdd8201dSApple OSS Distributions #define __IMG4_API_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 #include <img4/shim.h> 13*fdd8201dSApple OSS Distributions 14*fdd8201dSApple OSS Distributions /*! 15*fdd8201dSApple OSS Distributions * @const IMG4_API_VERSION 16*fdd8201dSApple OSS Distributions * The API version of the library. This version will be changed in accordance 17*fdd8201dSApple OSS Distributions * with new API introductions so that callers may submit code to the build that 18*fdd8201dSApple OSS Distributions * adopts those new APIs before the APIs land by using the following pattern: 19*fdd8201dSApple OSS Distributions * 20*fdd8201dSApple OSS Distributions * #if IMG4_API_VERSION >= 20180424 21*fdd8201dSApple OSS Distributions * img4_new_api(); 22*fdd8201dSApple OSS Distributions * #endif 23*fdd8201dSApple OSS Distributions * 24*fdd8201dSApple OSS Distributions * In this example, the library maintainer and API adopter agree on an API 25*fdd8201dSApple OSS Distributions * version of 20180424 ahead of time for the introduction of 26*fdd8201dSApple OSS Distributions * img4_new_api(). When a libdarwin with that API version is submitted, the 27*fdd8201dSApple OSS Distributions * project is rebuilt, and the new API becomes active. 28*fdd8201dSApple OSS Distributions * 29*fdd8201dSApple OSS Distributions * Breaking API changes will be both covered under this mechanism as well as 30*fdd8201dSApple OSS Distributions * individual preprocessor macros in this header that declare new behavior as 31*fdd8201dSApple OSS Distributions * required. 32*fdd8201dSApple OSS Distributions */ 33*fdd8201dSApple OSS Distributions #define IMG4_API_VERSION (20212105u) 34*fdd8201dSApple OSS Distributions 35*fdd8201dSApple OSS Distributions #if IMG4_TARGET_DARWIN 36*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_FALL_2018 \ 37*fdd8201dSApple OSS Distributions API_AVAILABLE( \ 38*fdd8201dSApple OSS Distributions macos(10.15), \ 39*fdd8201dSApple OSS Distributions ios(12.0), \ 40*fdd8201dSApple OSS Distributions tvos(12.0), \ 41*fdd8201dSApple OSS Distributions watchos(5.0)) 42*fdd8201dSApple OSS Distributions 43*fdd8201dSApple OSS Distributions #define IMG4_API_DEPRECATED_FALL_2018 \ 44*fdd8201dSApple OSS Distributions API_DEPRECATED_WITH_REPLACEMENT( \ 45*fdd8201dSApple OSS Distributions "img4_firmware_t", \ 46*fdd8201dSApple OSS Distributions macos(10.15, 11.0), \ 47*fdd8201dSApple OSS Distributions ios(12.2, 14.0), \ 48*fdd8201dSApple OSS Distributions tvos(12.2, 14.0), \ 49*fdd8201dSApple OSS Distributions watchos(5.2, 7.0)) 50*fdd8201dSApple OSS Distributions 51*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_SPRING_2019 \ 52*fdd8201dSApple OSS Distributions API_AVAILABLE(\ 53*fdd8201dSApple OSS Distributions macos(10.15), \ 54*fdd8201dSApple OSS Distributions ios(12.2), \ 55*fdd8201dSApple OSS Distributions tvos(12.2), \ 56*fdd8201dSApple OSS Distributions watchos(5.2)) 57*fdd8201dSApple OSS Distributions 58*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_FALL_2020 \ 59*fdd8201dSApple OSS Distributions API_AVAILABLE( \ 60*fdd8201dSApple OSS Distributions macos(11.0), \ 61*fdd8201dSApple OSS Distributions ios(14.0), \ 62*fdd8201dSApple OSS Distributions tvos(14.0), \ 63*fdd8201dSApple OSS Distributions watchos(7.0), \ 64*fdd8201dSApple OSS Distributions bridgeos(5.0)) 65*fdd8201dSApple OSS Distributions 66*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_FALL_2021 \ 67*fdd8201dSApple OSS Distributions API_AVAILABLE( \ 68*fdd8201dSApple OSS Distributions macos(12.0), \ 69*fdd8201dSApple OSS Distributions ios(15.0), \ 70*fdd8201dSApple OSS Distributions tvos(15.0), \ 71*fdd8201dSApple OSS Distributions watchos(8.0), \ 72*fdd8201dSApple OSS Distributions bridgeos(6.0)) 73*fdd8201dSApple OSS Distributions #else 74*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_FALL_2018 75*fdd8201dSApple OSS Distributions #define IMG4_API_DEPRECATED_FALL_2018 76*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_SPRING_2019 77*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_FALL_2020 78*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_FALL_2021 79*fdd8201dSApple OSS Distributions #endif 80*fdd8201dSApple OSS Distributions 81*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20180112 IMG4_API_AVAILABLE_FALL_2018 82*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20181106 IMG4_API_AVAILABLE_SPRING_2019 83*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20200508 IMG4_API_AVAILABLE_FALL_2020 84*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20200608 IMG4_API_AVAILABLE_FALL_2020 85*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20200724 IMG4_API_AVAILABLE_FALL_2020 86*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20210113 IMG4_API_AVAILABLE_FALL_2021 87*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20210205 IMG4_API_AVAILABLE_FALL_2021 88*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20210226 IMG4_API_AVAILABLE_FALL_2021 89*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20210305 IMG4_API_AVAILABLE_FALL_2021 90*fdd8201dSApple OSS Distributions #define IMG4_API_AVAILABLE_20210521 IMG4_API_AVAILABLE_FALL_2021 91*fdd8201dSApple OSS Distributions 92*fdd8201dSApple OSS Distributions /*! 93*fdd8201dSApple OSS Distributions * @typedef img4_struct_version_t 94*fdd8201dSApple OSS Distributions * A type describing the version of a structure in the library. 95*fdd8201dSApple OSS Distributions */ 96*fdd8201dSApple OSS Distributions IMG4_API_AVAILABLE_20180112 97*fdd8201dSApple OSS Distributions typedef uint16_t img4_struct_version_t; 98*fdd8201dSApple OSS Distributions 99*fdd8201dSApple OSS Distributions #endif // __IMG4_API_H 100