xref: /xnu-8792.61.2/EXTERNAL_HEADERS/CoreEntitlements/CoreEntitlements.h (revision 42e220869062b56f8d7d0726fd4c88954f87902c)
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