12 #define ALCHEMIST_ABI_MAJOR_VER 0 17 #define ALCHEMIST_ABI_MINOR_VER 0 73 #define ADM_EDEADNODE 1 74 #define ADM_EBADTYPE 2 76 #define ADM_EBADNAME 3 77 #define ADM_EBADDATA 4 78 #define ADM_ECONSTRAINT 5 80 #define ADM_ENOINDEX 51 81 #define ADM_ENONAME 52 82 #define ADM_ENOPATH 53 84 #define ADM_EACCESSFAILED 101 85 #define ADM_ENONAMESPACE 102 86 #define ADM_ENOSUBSPACE 103 88 #define ADM_ENOWRITE 201 89 #define ADM_ENOREAD 202 90 #define ADM_ENOLISTSERIAL 203 91 #define ADM_ENOREADSERIAL 204 92 #define ADM_ENOCACHE 205 94 #define ADM_ENOBOXTYPE 251 96 #define ADM_EPARSE 301 98 typedef struct AdmRefStr AdmRefStr; 105 #define AdmRefStr_str(REFSTR) \ 107 AdmRefStr *__tok = (REFSTR); \ 108 (const char *) __tok; \ 397 #define AdmContext_getIdentityRoot_b(CONTEXT, ERROR) \ 399 AdmError **__err = (ERROR); \ 401 __id = AdmContext_getIdentityRoot((CONTEXT), __err); \ 403 AdmIdentity_unref(__id, __err); \ 420 #define AdmIdentity_getParentA_b(ID, ERROR) \ 422 AdmError **__err = (ERROR); \ 424 __id = AdmIdentity_getParentA((ID), __err); \ 426 AdmIdentity_unref(__id, __err); \ 443 #define AdmIdentity_getParentB_b(ID, ERROR) \ 445 AdmError **__err = (ERROR); \ 447 __id = AdmIdentity_getParentB((ID), __err); \ 449 AdmIdentity_unref(__id, __err); \ 556 #define AdmIdentity_getContext_b(ID, ERROR) \ 558 AdmError **__err = (ERROR); \ 560 __ctx = AdmIdentity_getContext((ID), __err); \ 562 AdmContext_unref(__ctx, __err); \ 599 #define AdmContext_getDataRoot_b(CONTEXT, ERROR) \ 601 AdmError **__err = (ERROR); \ 603 __data = AdmContext_getDataRoot((CONTEXT), __err); \ 604 if (__data != NULL) \ 605 AdmData_unref(__data, __err); \ 623 #define AdmData_getContainer_b(DATA, ERROR) \ 625 AdmError **__err = (ERROR); \ 627 __data = AdmData_getContainer((DATA), __err); \ 628 if (__data != NULL) \ 629 AdmData_unref(__data, __err); \ 643 #define AdmData_getPrev_b(DATA, WRAP, ERROR) \ 645 AdmError **__err = (ERROR); \ 647 __data = AdmData_getPrev((DATA), (WRAP), __err); \ 648 if (__data != NULL) \ 649 AdmData_unref(__data, __err); \ 663 #define AdmData_getNext_b(DATA, WRAP, ERROR) \ 665 AdmError **__err = (ERROR); \ 667 __data = AdmData_getNext((DATA), (WRAP), __err); \ 668 if (__data != NULL) \ 669 AdmData_unref(__data, __err); \ 686 #define AdmData_getContext_b(DATA, ERROR) \ 688 AdmError **__err = (ERROR); \ 690 __ctx = AdmData_getContext((DATA), __err); \ 692 AdmContext_unref(__ctx, __err); \ 712 #define AdmContext_getDataByPath_b(CONTEXT, PATH, ERROR) \ 714 AdmError **__err = (ERROR); \ 716 __data = AdmContext_getDataByPath((CONTEXT), (PATH), __err); \ 717 if (__data != NULL) \ 718 AdmData_unref(__data, __err); \ 1051 #define AdmList_getDataByIndex_b(LIST, INDEX, ERROR) \ 1053 AdmError **__err = (ERROR); \ 1055 __data = AdmList_getDataByIndex((LIST), (INDEX), __err); \ 1056 if (__data != NULL) \ 1057 AdmData_unref(__data, __err); \ 1077 #define AdmList_getDataByName_b(LIST, NAME, ERROR) \ 1079 AdmError **__err = (ERROR); \ 1081 __data = AdmList_getDataByName((LIST), (NAME), __err); \ 1082 if (__data != NULL) \ 1083 AdmData_unref(__data, __err); \ 1103 #define AdmList_getDataByPath_b(LIST, PATH, ERROR) \ 1105 AdmError **__err = (ERROR); \ 1107 __data = AdmList_getDataByPath((LIST), (PATH), __err); \ 1108 if (__data != NULL) \ 1109 AdmData_unref(__data, __err); \ 1137 #define AdmList_addData_b(LIST, TYPE, NAME, ERROR) \ 1139 AdmError **__err = (ERROR); \ 1141 __data = AdmList_addData((LIST), (TYPE), (NAME), __err); \ 1142 if (__data != NULL) \ 1143 AdmData_unref(__data, __err); \ 1183 #define AdmList_copyData_b(LIST, DATA, ERROR) \ 1185 AdmError **__err = (ERROR); \ 1187 __data = AdmList_copyData((LIST), (DATA), __err); \ 1188 if (__data != NULL) \ 1189 AdmData_unref(__data, __err); \ 1212 #define AdmList_renameCopyData_b(LIST, DATA, NAME, ERROR) \ 1214 AdmError **__err = (ERROR); \ 1216 __data = AdmList_renameCopyData((LIST), (DATA), (NAME), __err); \ 1217 if (__data != NULL) \ 1218 AdmData_unref(__data, __err); \ 1464 unsigned char array[1];
1476 #define ADM_BBCAP_SUP_WRITE(CAP) ((CAP).array[0] & (1 << 0)) 1477 #define ADM_BBCAP_SUP_READ(CAP) ((CAP).array[0] & (1 << 1)) 1478 #define ADM_BBCAP_SUP_LISTSERIAL(CAP) ((CAP).array[0] & (1 << 2)) 1479 #define ADM_BBCAP_SUP_READSERIAL(CAP) ((CAP).array[0] & (1 << 3)) 1480 #define ADM_BBCAP_CACHED(CAP) ((CAP).array[0] & (1 << 4)) 1534 unsigned int *array,
1535 unsigned int array_len,
1536 unsigned int top_serial,
1550 unsigned int serial,
1643 const char *subspace,
1649 const char *subspace,
1654 const char *subspace,
1660 const char *subspace,
1672 const char *subspace,
1678 const char *subspace,
1690 const char *subspace,
1696 const char *subspace,
1733 const char *
namespace,
1735 #define AdmSwitchboard_getNspCfg_b(CTX, NAMESPACE, ERROR) \ 1737 AdmError **__err = (ERROR); \ 1739 __list = AdmSwitchboard_getNspCfg((CTX), (NAMESPACE), __err); \ 1740 if (__list != NULL) \ 1741 AdmData_unref((AdmData *) __list, __err); \ 1753 const char *subspace,
1755 #define AdmSwitchboard_getSubspCfg_b(CTX, SUBSPACE, ERROR) \ 1757 AdmError **__err = (ERROR); \ 1759 __list = AdmSwitchboard_getSubspCfg((CTX), (SUBSPACE), __err); \ 1760 if (__list != NULL) \ 1761 AdmData_unref((AdmData *) __list, __err); \ 1773 const char *box_name,
AdmContext * AdmSwitchboard_readNsp(const char *namespace, const char *subspace, unsigned int depth, AdmError **error)
AdmContext * AdmContext_new(const char *name, unsigned int serial, AdmError **error)
AdmContext constructor.
AdmRefStr * AdmRefStr_nget(const char *str, size_t len, int force)
Get an AdmRefStr, by length.
Definition: alchemist.h:157
int AdmData_setProtected(AdmData *data, int state, AdmError **error)
AdmData protected mutator.
AdmData * AdmList_renameCopyData(AdmList *list, AdmData *data, const char *name, AdmError **error)
AdmList copy data operator.
int AdmBlackBox_clearMark(AdmBlackBox *box, const char *mark, AdmError **error)
AdmBlackbox mark destructor.
int AdmData_setName(AdmData *data, const char *name, AdmError **error)
AdmData name mutator.
void AdmBlackBox_ref(AdmBlackBox *box, AdmError **error)
AdmBlackbox reference increment.
struct AdmBlackBox AdmBlackBox
Definition: alchemist.h:1439
int AdmList_isAtomic(AdmList *list, AdmError **error)
AdmList atomic verification.
AdmDataType AdmData_getType(AdmData *data, AdmError **error)
AdmData type accessor.
AdmRefStr * AdmCopy_getValue(AdmCopy *copy_scalar, AdmError **error)
Get the value of an AdmCopy element.
Definition: alchemist.h:158
size_t AdmBase64_getBinValue(AdmBase64 *base64_scalar, void **value, AdmError **error)
Get the binary value of an AdmBase64 element.
int AdmData_isProtected(AdmData *data, AdmError **error)
AdmData protected verification.
int AdmBase64_setBinValue(AdmBase64 *base64_scalar, const void *value, size_t size, AdmError **error)
Set the value of an AdmBase64 element.
unsigned int AdmList_getNumData(AdmList *list, AdmError **error)
AdmList length aggregator.
int AdmString_setValue(AdmString *string_scalar, const char *value, AdmError **error)
AdmDataType
Definition: alchemist.h:153
AdmData * AdmContext_getDataByPath(AdmContext *context, const char *path, AdmError **error)
AdmData path lookup.
int AdmList_setPrepend(AdmList *list, int state, AdmError **error)
AdmList prepend mutator.
int AdmSwitchboard_checkNspMark(const char *namespace, const char *subspace, const char *mark, AdmError **error)
Definition: alchemist.h:155
AdmContext * AdmBlackBox_read(AdmBlackBox *box, AdmError **error)
AdmBlackbox read operator.
Definition: alchemist.h:1463
int AdmBool_setValue(AdmBool *bool_scalar, int value, AdmError **error)
set an AdmBool's value
AdmRefStr * AdmIdentity_getName(AdmIdentity *identity, AdmError **error)
AdmIdentity name accessor.
int AdmContext_setMask(AdmContext *context, const char *path, AdmError **error)
AdmContext mask set mutator.
struct AdmList AdmList
Definition: alchemist.h:135
void AdmIdentity_unref(AdmIdentity *identity, AdmError **error)
AdmIdentity reference decrement.
struct AdmFloat AdmFloat
Definition: alchemist.h:141
int AdmSwitchboard_checkNspMarkWithConfig(AdmList *namespace_cfg, const char *subspace, const char *mark, AdmError **error)
int AdmFloat_setValue(AdmFloat *float_scalar, double value, AdmError **error)
set an AdmFloat's value
int AdmSwitchboard_markNsp(const char *namespace, const char *subspace, const char *mark, AdmError **error)
unsigned int AdmContext_getNumMasks(AdmContext *context, AdmError **error)
AdmContext mask set length aggregator.
int AdmIdentity_setSerial(AdmIdentity *identity, unsigned int serial, AdmError **error)
AdmIdentity serial number mutator.
int AdmCopy_setValue(AdmCopy *copy_scalar, const char *value, AdmError **error)
Set the value of an AdmCopy element.
int AdmData_unlink(AdmData *data, AdmError **error)
AdmData unlink operator.
const char * AdmError_strerr(AdmError *error)
String description of error.
void AdmRefStr_unref(AdmRefStr *refstr)
int AdmIdentity_setName(AdmIdentity *identity, const char *name, AdmError **error)
AdmIdentity name mutator.
Definition: alchemist.h:154
AdmList * AdmSwitchboard_getNspCfg(AdmContext *namespace_ctx, const char *namespace, AdmError **error)
AdmIdentity * AdmIdentity_getParentA(AdmIdentity *identity, AdmError **error)
AdmIdentity parentA accessor.
AdmData * AdmData_getPrev(AdmData *data, int wrap, AdmError **error)
get the previous sibling of an AdmData element
void AdmError_create(AdmError **error, int num, const char *format,...)
Allocate new AdmError structure.
AdmData * AdmList_getDataByPath(AdmList *list, const char *path, AdmError **error)
AdmList child data path accessor.
int AdmList_isAnonymous(AdmList *list, AdmError **error)
AdmList anonymous verification.
unsigned int AdmIdentity_getSerial(AdmIdentity *identity, AdmError **error)
AdmIdentity serial number accessor.
AdmContext * AdmSwitchboard_readNspCtx(const char *namespace, AdmError **error)
read a switchboard namespace configuration from the system
Definition: alchemist.h:159
int AdmList_setAnonymous(AdmList *list, int state, AdmError **error)
AdmList anonymous mutator.
AdmContext * AdmData_getContext(AdmData *data, AdmError **error)
AdmData context accessor.
AdmRefStr * AdmData_getName(AdmData *data, AdmError **error)
AdmData name accessor.
int AdmBlackBox_setCacheDir(const char *path, AdmError **error)
int AdmInt_setValue(AdmInt *int_scalar, int value, AdmError **error)
set an AdmInt's value
struct AdmIdentity AdmIdentity
Definition: alchemist.h:149
void AdmContext_strip(AdmContext *context, AdmError **error)
AdmContext strip function.
AdmContext * AdmContext_copy(AdmContext *context, AdmError **error)
AdmContext copy operator.
AdmData * AdmContext_getDataRoot(AdmContext *context, AdmError **error)
AdmContext data root accessor.
void AdmError_unref(AdmError *error)
Decrement the ref count of an AdmError structure.
void AdmError_ref(AdmError *error)
Increment the ref count of an AdmError structure.
int AdmList_moveData(AdmList *list, AdmData *data, unsigned int index, AdmError **error)
AdmList child move operator.
AdmList * AdmSwitchboard_getSubspCfg(AdmList *namespace_cfg, const char *subspace, AdmError **error)
int AdmContext_readFromFile(AdmContext **context, const char *path, AdmError **error)
int AdmSwitchboard_writeNspCtx(const char *namespace, AdmContext *namespace_ctx, int mode, uid_t uid, gid_t gid, AdmError **error)
writes a switchboard namespace configuration to the system
void AdmData_unref(AdmData *data, AdmError **error)
AdmData reference decrement.
AdmData * AdmData_getNext(AdmData *data, int wrap, AdmError **error)
get the next sibling of an AdmData element
struct AdmString AdmBase64
Definition: alchemist.h:145
int AdmSwitchboard_writeNspWithConfig(AdmList *namespace_cfg, const char *subspace, AdmContext *context, AdmError **error)
struct AdmString AdmString
Definition: alchemist.h:143
int AdmData_validName(const char *name)
Checks a string for name validity.
char * AdmContext_toXML(AdmContext *context, AdmError **error)
int AdmContext_clearMaskByIndex(AdmContext *context, unsigned int index, AdmError **error)
AdmContext mask set element index remove.
Definition: alchemist.h:160
AdmIdentity * AdmContext_getIdentityRoot(AdmContext *context, AdmError **error)
AdmContext identity root accessor.
AdmRefStr * AdmString_getValue(AdmString *string_scalar, AdmError **error)
get an AdmString's value
struct AdmData AdmData
Definition: alchemist.h:133
struct AdmBool AdmBool
Definition: alchemist.h:139
int AdmList_isPrepend(AdmList *list, AdmError **error)
AdmList prepend verification.
AdmData * AdmData_getContainer(AdmData *data, AdmError **error)
AdmData container accessor.
struct AdmInt AdmInt
Definition: alchemist.h:137
size_t AdmRefStr_len(AdmRefStr *refstr)
AdmContext * AdmSwitchboard_readNspWithConfig(AdmList *namespace_cfg, const char *subspace, unsigned int depth, AdmError **error)
int AdmBlackBox_write(AdmBlackBox *box, AdmContext *context, AdmError **error)
AdmBlackbox write operator.
AdmRefStr * AdmData_getSource(AdmData *data, AdmError **error)
AdmData source accessor.
int AdmSwitchboard_writeNsp(const char *namespace, const char *subspace, AdmContext *context, AdmError **error)
int AdmIdentity_isAlive(AdmIdentity *identity, AdmError **error)
AdmIdentity reference check.
AdmData * AdmData_ref(AdmData *data, AdmError **error)
AdmData reference increment.
AdmRefStr * AdmBlackBox_getCacheDir(AdmError **error)
double AdmFloat_getValue(AdmFloat *float_scalar, AdmError **error)
get an AdmFloat's value
struct AdmError AdmError
Definition: alchemist.h:19
AdmContext * AdmContext_ref(AdmContext *context, AdmError **error)
AdmContext reference increment.
int AdmBase64_setValue(AdmBase64 *base64_scalar, const char *value, AdmError **error)
Set the value of an AdmBase64 element.
AdmContext * AdmBlackBox_readSerial(AdmBlackBox *box, unsigned int serial, AdmError **error)
AdmBlackbox serial list request.
AdmData * AdmList_copyData(AdmList *list, AdmData *data, AdmError **error)
AdmList copy data operator.
int AdmData_setSource(AdmData *data, const char *source, AdmError **error)
AdmData source mutator.
AdmContext * AdmContext_merge(const char *name, unsigned int serial, AdmContext *contextA, AdmContext *contextB, AdmError **error)
AdmContext merge operator.
struct AdmContext AdmContext
Definition: alchemist.h:151
AdmBlackBox * AdmSwitchboard_getBox(AdmList *subspace_cfg, const char *box_name, AdmError **error)
struct AdmRefStr AdmRefStr
Definition: alchemist.h:98
AdmContext * AdmContext_fromXML(const char *xml, AdmError **error)
AdmIdentity * AdmIdentity_ref(AdmIdentity *identity, AdmError **error)
AdmIdentity reference increment.
AdmRefStr * AdmSwitchboard_getSwbDir(AdmError **error)
AdmBlackBox * AdmBlackBox_getBox(AdmList *box_cfg, AdmError **error)
int AdmInt_getValue(AdmInt *int_scalar, AdmError **error)
get an AdmInt's value
AdmRefStr * AdmContext_getMask(AdmContext *context, unsigned int index, AdmError **error)
AdmContext mask set accessor.
void AdmBlackBox_unref(AdmBlackBox *box, AdmError **error)
AdmBlackbox reference decrement.
Definition: alchemist.h:156
AdmRefStr * AdmBase64_getValue(AdmBase64 *base64_scalar, AdmError **error)
unsigned int AdmBlackBox_getMark(AdmBlackBox *box, const char *mark, AdmError **error)
AdmBlackBox mark accessor.
void AdmContext_flatten(AdmContext *context, AdmError **error)
AdmContext flatten operator.
int AdmError_errno(AdmError *error)
Integer error code of error.
struct AdmString AdmCopy
Definition: alchemist.h:147
AdmData * AdmList_getDataByIndex(AdmList *list, unsigned int index, AdmError **error)
AdmList child index accessor.
int AdmData_isAlive(AdmData *data, AdmError **error)
AdmData reference check.
adm_bb_cap_t AdmBlackBox_caps(AdmBlackBox *box, AdmError **error)
AdmBlackBox capability querry.
int AdmBlackBox_setMark(AdmBlackBox *box, const char *mark, AdmError **error)
AdmBlackBox mark mutator.
int AdmBlackBox_listSerial(AdmBlackBox *box, unsigned int *array, unsigned int array_len, unsigned int top_serial, AdmError **error)
AdmBlackbox serial list request.
AdmIdentity * AdmIdentity_getParentB(AdmIdentity *identity, AdmError **error)
AdmIdentity parentB accessor.
AdmContext * AdmIdentity_getContext(AdmIdentity *identity, AdmError **error)
AdmIdentity context accessor.
int AdmContext_writeToFile(AdmContext *context, const char *path, int mode, uid_t uid, gid_t gid, AdmError **error)
unsigned int AdmData_getPos(AdmData *data, AdmError **error)
AdmList child position operator.
AdmRefStr * AdmRefStr_get(const char *str, int force)
Get an AdmRefStr.
int AdmList_setAtomic(AdmList *list, int state, AdmError **error)
AdmList atomic mutator.
AdmData * AdmList_addData(AdmList *list, AdmDataType type, const char *name, AdmError **error)
AdmList add child operator.
Definition: alchemist.h:161
int AdmSwitchboard_markNspWithConfig(AdmList *namespace_cfg, const char *subspace, const char *mark, AdmError **error)
int AdmBool_getValue(AdmBool *bool_scalar, AdmError **error)
get an AdmBool's value
int AdmSwitchboard_setSwbDir(const char *path, AdmError **error)
int AdmContext_clearMaskByPath(AdmContext *context, const char *path, AdmError **error)
AdmContext mask set element data path remove.
AdmData * AdmList_getDataByName(AdmList *list, const char *name, AdmError **error)
AdmList child name accessor.
AdmRefStr * AdmRefStr_ref(AdmRefStr *refstr)
void AdmContext_unref(AdmContext *context, AdmError **error)
AdmContext reference decrement.