xref: /xnu-10063.121.3/EXTERNAL_HEADERS/CoreEntitlements/Errors.h (revision 2c2f96dc2b9a4408a43d3150ae9c105355ca3daa)
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