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