xref: /xnu-11215.81.4/EXTERNAL_HEADERS/CoreEntitlements/Result.h (revision d4514f0bc1d3f944c22d92e68b646ac3fb40d452)
1*d4514f0bSApple OSS Distributions //
2*d4514f0bSApple OSS Distributions //  Result.h
3*d4514f0bSApple OSS Distributions //  CoreEntitlements
4*d4514f0bSApple OSS Distributions //
5*d4514f0bSApple OSS Distributions 
6*d4514f0bSApple OSS Distributions #ifndef CORE_ENTITLEMENTS_RESULT_H
7*d4514f0bSApple OSS Distributions #define CORE_ENTITLEMENTS_RESULT_H
8*d4514f0bSApple OSS Distributions 
9*d4514f0bSApple OSS Distributions #ifndef _CE_INDIRECT
10*d4514f0bSApple OSS Distributions #error "Please include <CoreEntitlements/CoreEntitlements.h> instead of this file"
11*d4514f0bSApple OSS Distributions #endif
12*d4514f0bSApple OSS Distributions 
13*d4514f0bSApple OSS Distributions #include <sys/cdefs.h>
14*d4514f0bSApple OSS Distributions __ptrcheck_abi_assume_single();
15*d4514f0bSApple OSS Distributions 
16*d4514f0bSApple OSS Distributions #include <CoreEntitlements/Errors.h>
17*d4514f0bSApple OSS Distributions #include <stdint.h>
18*d4514f0bSApple OSS Distributions 
19*d4514f0bSApple OSS Distributions /*!
20*d4514f0bSApple OSS Distributions  * @function CEErrorPassThrough
21*d4514f0bSApple OSS Distributions  * Returns its argument. Convenient breakpoint location for when anything raises an error.
22*d4514f0bSApple OSS Distributions  */
CEErrorPassThrough(CEError_t E)23*d4514f0bSApple OSS Distributions static inline CEError_t CEErrorPassThrough(CEError_t E) {
24*d4514f0bSApple OSS Distributions     return E;
25*d4514f0bSApple OSS Distributions }
26*d4514f0bSApple OSS Distributions 
27*d4514f0bSApple OSS Distributions /*!
28*d4514f0bSApple OSS Distributions  * @function CE_CHECK
29*d4514f0bSApple OSS Distributions  * Checks if the passed in return value from one of CoreEntitlements function is an error, and if so returns that error in the current function
30*d4514f0bSApple OSS Distributions  */
31*d4514f0bSApple OSS Distributions #define CE_CHECK(ret) do { CEError_t _ce_error = ret; if (_ce_error != kCENoError) {return CEErrorPassThrough(_ce_error);} } while(0)
32*d4514f0bSApple OSS Distributions 
33*d4514f0bSApple OSS Distributions /*!
34*d4514f0bSApple OSS Distributions  * @function CE_THROW
35*d4514f0bSApple OSS Distributions  * Macro to "throw" (return) one of the CEErrors
36*d4514f0bSApple OSS Distributions  */
37*d4514f0bSApple OSS Distributions #define CE_THROW(err) return CEErrorPassThrough(err)
38*d4514f0bSApple OSS Distributions 
39*d4514f0bSApple OSS Distributions /*!
40*d4514f0bSApple OSS Distributions  * @function CE_OK
41*d4514f0bSApple OSS Distributions  * Returns a true if the passed in value corresponds to kCENoError
42*d4514f0bSApple OSS Distributions  */
43*d4514f0bSApple OSS Distributions #define CE_OK(ret) ((ret) == kCENoError)
44*d4514f0bSApple OSS Distributions 
45*d4514f0bSApple OSS Distributions #endif
46