1*42e22086SApple OSS Distributions /*! 2*42e22086SApple OSS Distributions * @header 3*42e22086SApple OSS Distributions * Umbrella header for CoreEntitlements 4*42e22086SApple OSS Distributions */ 5*42e22086SApple OSS Distributions #pragma once 6*42e22086SApple OSS Distributions 7*42e22086SApple OSS Distributions #ifdef __cplusplus 8*42e22086SApple OSS Distributions extern "C" { 9*42e22086SApple OSS Distributions #endif 10*42e22086SApple OSS Distributions 11*42e22086SApple OSS Distributions typedef const struct CERuntime* CERuntime_t; 12*42e22086SApple OSS Distributions typedef struct CEQueryContext* CEQueryContext_t; 13*42e22086SApple OSS Distributions 14*42e22086SApple OSS Distributions #define _CE_INDIRECT 1 15*42e22086SApple OSS Distributions 16*42e22086SApple OSS Distributions #include <os/base.h> 17*42e22086SApple OSS Distributions #include "Errors.h" 18*42e22086SApple OSS Distributions #include "Result.h" 19*42e22086SApple OSS Distributions #include "Runtime.h" 20*42e22086SApple OSS Distributions #include "Entitlements.h" 21*42e22086SApple OSS Distributions #include "Serialization.h" 22*42e22086SApple OSS Distributions 23*42e22086SApple OSS Distributions /*! 24*42e22086SApple OSS Distributions * @typedef CEType_t 25*42e22086SApple OSS Distributions * @brief Represents a type of element supported by CoreEntitlements 26*42e22086SApple OSS Distributions * 27*42e22086SApple OSS Distributions * @const kCETypeUnknown 28*42e22086SApple OSS Distributions * An unknown type 29*42e22086SApple OSS Distributions * 30*42e22086SApple OSS Distributions * @const kCETypeDictionary 31*42e22086SApple OSS Distributions * A dictionary container 32*42e22086SApple OSS Distributions * 33*42e22086SApple OSS Distributions * @const kCETypeSequence 34*42e22086SApple OSS Distributions * An ordered sequence container 35*42e22086SApple OSS Distributions * 36*42e22086SApple OSS Distributions * @const kCETypeInteger 37*42e22086SApple OSS Distributions * An integer. 38*42e22086SApple OSS Distributions * 39*42e22086SApple OSS Distributions * @const kCETypeString 40*42e22086SApple OSS Distributions * A string of bytes. 41*42e22086SApple OSS Distributions * 42*42e22086SApple OSS Distributions * @const kCETypeBool 43*42e22086SApple OSS Distributions * A boolean. 44*42e22086SApple OSS Distributions */ 45*42e22086SApple OSS Distributions OS_CLOSED_ENUM(CEType, uint32_t, 46*42e22086SApple OSS Distributions kCETypeUnknown = 0, 47*42e22086SApple OSS Distributions kCETypeDictionary = 1, 48*42e22086SApple OSS Distributions kCETypeSequence = 2, 49*42e22086SApple OSS Distributions kCETypeInteger = 3, 50*42e22086SApple OSS Distributions kCETypeString = 4, 51*42e22086SApple OSS Distributions kCETypeBool = 5); 52*42e22086SApple OSS Distributions 53*42e22086SApple OSS Distributions /*! 54*42e22086SApple OSS Distributions * @function CE_RT_LOG 55*42e22086SApple OSS Distributions * Log a single message via the current runtime 56*42e22086SApple OSS Distributions * Only called if the runtime supports logging. 57*42e22086SApple OSS Distributions */ 58*42e22086SApple OSS Distributions #define CE_RT_LOG(msg) do { if (rt->log) { rt->log(rt, "[%s]: %s\n", __FUNCTION__, msg); } } while(0) 59*42e22086SApple OSS Distributions 60*42e22086SApple OSS Distributions /*! 61*42e22086SApple OSS Distributions * @function CE_RT_LOGF 62*42e22086SApple OSS Distributions * Logs using the passed in format. Printf like. 63*42e22086SApple OSS Distributions * Only called if the runtime supports logging. 64*42e22086SApple OSS Distributions */ 65*42e22086SApple OSS Distributions #define CE_RT_LOGF(fmt, ...) do { if (rt->log) { rt->log(rt, "[%s]: " fmt, __FUNCTION__, __VA_ARGS__); } } while(0) 66*42e22086SApple OSS Distributions 67*42e22086SApple OSS Distributions /*! 68*42e22086SApple OSS Distributions * @function CE_RT_ABORT 69*42e22086SApple OSS Distributions * Invokes the runtime abort function with a passed in message. 70*42e22086SApple OSS Distributions * This function should not return. 71*42e22086SApple OSS Distributions */ 72*42e22086SApple OSS Distributions #define CE_RT_ABORT(...) do { rt->abort(rt, "[%s]: %s\n", __FUNCTION__, __VA_ARGS__); } while(0) 73*42e22086SApple OSS Distributions 74*42e22086SApple OSS Distributions #ifdef __cplusplus 75*42e22086SApple OSS Distributions } 76*42e22086SApple OSS Distributions #endif 77