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 */
21typedef 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
27CE_DEF_ERROR(kCENoError);
28
29// Returned when the library encounters API misuse
30CE_DEF_ERROR(kCEAPIMisuse);
31
32// Returned when an invalid argument has been passed in
33CE_DEF_ERROR(kCEInvalidArgument);
34
35// Returned when we expected to have allocated data, but we couldn't
36CE_DEF_ERROR(kCEAllocationFailed);
37
38// Returned when the passed in entitlements do not conform to any supported format
39CE_DEF_ERROR(kCEMalformedEntitlements);
40
41// Returned when a group of queries does not generate a valid result on the current CEQueryContext
42CE_DEF_ERROR(kCEQueryCannotBeSatisfied);
43
44// Returned when a context shouldn't be accelerated
45CE_DEF_ERROR(kCENotEligibleForAcceleration);
46
47/*!
48 * @function CEGetErrorString
49 * Returns a string that describes the error
50 */
51const char *__unsafe_indexable CEGetErrorString(CEError_t error);
52
53#endif
54