blob: 4f74927dc6a82d8a4d9f7806bb19d85fb7a45d51 [file] [log] [blame]
Josh Gao5317f2d2017-06-30 14:35:00 -07001#if defined(__cplusplus)
2extern "C" {
3#endif
4
Josh Gaof8592a32016-07-26 18:58:27 -07005int always_available();
6
7int also_always_available() __INTRODUCED_IN(9);
8
9
Josh Gao9f7ce3d2016-08-15 13:44:37 -070010#if __ANDROID_API__ >= 13
11int needs_guard() __INTRODUCED_IN(13);
12#endif /* __ANDROID_API__ >= 13 */
Josh Gaof8592a32016-07-26 18:58:27 -070013
14
Josh Gao9f7ce3d2016-08-15 13:44:37 -070015#if __ANDROID_API__ >= 12
16
17#if __ANDROID_API__ >= 13
18int needs_guard_2() __INTRODUCED_IN(13);
19#endif /* __ANDROID_API__ >= 13 */
20
21#endif
22
23#if __ANDROID_API__ >= 13
24int already_guarded() __INTRODUCED_IN(13);
25#endif
26
27#if __ANDROID_API__ > 13
28int already_guarded_2() __INTRODUCED_IN(13);
Josh Gaof8592a32016-07-26 18:58:27 -070029#endif
30
31#if defined(__arm__)
32
Josh Gao9f7ce3d2016-08-15 13:44:37 -070033#if __ANDROID_API__ >= 14
34int specific_arch() __INTRODUCED_IN(14);
35#endif /* __ANDROID_API__ >= 14 */
Josh Gaof8592a32016-07-26 18:58:27 -070036
Josh Gao9f7ce3d2016-08-15 13:44:37 -070037
38#if __ANDROID_API__ >= 14
39int specific_arch_already_guarded() __INTRODUCED_IN(14);
40#endif
41
42#if __ANDROID_API__ > 14
43int specific_arch_already_guarded_2() __INTRODUCED_IN(14);
44#endif
Josh Gaof8592a32016-07-26 18:58:27 -070045#endif
46
47#if defined(__arm__) || defined(__i386__)
48
Josh Gao9f7ce3d2016-08-15 13:44:37 -070049#if __ANDROID_API__ >= 14
50int multiple_archs() __INTRODUCED_IN(14);
51#endif /* __ANDROID_API__ >= 14 */
Josh Gaof8592a32016-07-26 18:58:27 -070052
53#endif
54
55// __INTRODUCED_IN_64(21) should be ignored.
56
Elliott Hughes421b0ac2023-06-07 00:29:14 +000057#if (!defined(__LP64__) && __ANDROID_API__ >= 24) || (defined(__LP64__))
58int multiple_introduced_1() __INTRODUCED_IN_32(24) __INTRODUCED_IN_64(21);
59#endif /* (!defined(__LP64__) && __ANDROID_API__ >= 24) || (defined(__LP64__)) */
Josh Gaof8592a32016-07-26 18:58:27 -070060
61
Elliott Hughes421b0ac2023-06-07 00:29:14 +000062// This needs different guards for 32 vs 64.
Josh Gaof8592a32016-07-26 18:58:27 -070063
Elliott Hughes421b0ac2023-06-07 00:29:14 +000064#if (!defined(__LP64__) && __ANDROID_API__ >= 24) || (defined(__LP64__) && __ANDROID_API__ >= 26)
65int multiple_introduced_2() __INTRODUCED_IN_32(24) __INTRODUCED_IN_64(26);
66#endif /* (!defined(__LP64__) && __ANDROID_API__ >= 24) || (defined(__LP64__) && __ANDROID_API__ >= 26) */
Josh Gaof8592a32016-07-26 18:58:27 -070067
68
Ryan Prichard4690f072023-05-18 20:58:29 -070069// This produces both an LP64 and a not-LP64 check, but it doesn't need to check for all 64-bit
70// targets separately.
71
72#if (!defined(__LP64__) && __ANDROID_API__ >= 23) || (defined(__LP64__) && __ANDROID_API__ >= 23)
73int multiple_introduced_3() __INTRODUCED_IN_32(23) __INTRODUCED_IN_64(23);
74#endif /* (!defined(__LP64__) && __ANDROID_API__ >= 23) || (defined(__LP64__) && __ANDROID_API__ >= 23) */
75
76
Josh Gaof8592a32016-07-26 18:58:27 -070077
Elliott Hughes421b0ac2023-06-07 00:29:14 +000078#if (!defined(__LP64__)) || (defined(__LP64__) && __ANDROID_API__ >= 28)
79int added_to_lp64_late() __INTRODUCED_IN_64(28);
80#endif /* (!defined(__LP64__)) || (defined(__LP64__) && __ANDROID_API__ >= 28) */
Josh Gaof8592a32016-07-26 18:58:27 -070081
Josh Gao9ae2b9a2016-11-08 16:17:45 -080082
Josh Gao5317f2d2017-06-30 14:35:00 -070083#if defined(__cplusplus)
84}
85#endif