1 | // |
2 | // Errors.h |
3 | // CoreEntitlements |
4 | // |
5 | // |
6 | |
7 | #ifndef CORE_ENTITLEMENTS_ERRORS_H |
8 | #define CORE_ENTITLEMENTS_ERRORS_H |
9 | |
10 | #ifndef _CE_INDIRECT |
11 | #error "Please include <CoreEntitlements/CoreEntitlements.h> instead of this file" |
12 | #endif |
13 | |
14 | #include <sys/cdefs.h> |
15 | __ptrcheck_abi_assume_single(); |
16 | |
17 | /*! |
18 | * @typedef CEError_t |
19 | * A shared error type that is returned by CoreEntitlements APIs |
20 | */ |
21 | typedef const struct CEError *__single CEError_t; |
22 | |
23 | // Macro to define the error for export; |
24 | #define CE_DEF_ERROR(name) extern CEError_t name; |
25 | |
26 | // Returned on successful invocation |
27 | CE_DEF_ERROR(kCENoError); |
28 | |
29 | // Returned when the library encounters API misuse |
30 | CE_DEF_ERROR(kCEAPIMisuse); |
31 | |
32 | // Returned when an invalid argument has been passed in |
33 | CE_DEF_ERROR(kCEInvalidArgument); |
34 | |
35 | // Returned when we expected to have allocated data, but we couldn't |
36 | CE_DEF_ERROR(kCEAllocationFailed); |
37 | |
38 | // Returned when the passed in entitlements do not conform to any supported format |
39 | CE_DEF_ERROR(kCEMalformedEntitlements); |
40 | |
41 | // Returned when a group of queries does not generate a valid result on the current CEQueryContext |
42 | CE_DEF_ERROR(kCEQueryCannotBeSatisfied); |
43 | |
44 | // Returned when a context shouldn't be accelerated |
45 | CE_DEF_ERROR(kCENotEligibleForAcceleration); |
46 | |
47 | /*! |
48 | * @function CEGetErrorString |
49 | * Returns a string that describes the error |
50 | */ |
51 | const char *__unsafe_indexable CEGetErrorString(CEError_t error); |
52 | |
53 | #endif |
54 | |