1/* 2 * Copyright (c) 2000-2001,2011,2014 Apple Inc. All Rights Reserved. 3 * 4 * The contents of this file constitute Original Code as defined in and are 5 * subject to the Apple Public Source License Version 1.2 (the 'License'). 6 * You may not use this file except in compliance with the License. Please obtain 7 * a copy of the License at http://www.apple.com/publicsource and read it before 8 * using this file. 9 * 10 * This Original Code and all software distributed under the License are 11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS 12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT 13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the 15 * specific language governing rights and limitations under the License. 16 */ 17 18 19/* 20 File: mds.h 21 22 Contains: Module Directory Services Data Types and API. 23 24 Copyright (c) 1999-2000,2011,2014 Apple Inc. All Rights Reserved. 25*/ 26 27#ifndef _MDS_H_ 28#define _MDS_H_ 1 29 30#include <Security/cssmtype.h> 31 32#ifdef __cplusplus 33extern "C" { 34#endif 35 36typedef CSSM_DL_HANDLE MDS_HANDLE; 37 38typedef CSSM_DL_DB_HANDLE MDS_DB_HANDLE; 39 40typedef struct mds_funcs { 41 CSSM_RETURN (CSSMAPI *DbOpen) 42 (MDS_HANDLE MdsHandle, 43 const char *DbName, 44 const CSSM_NET_ADDRESS *DbLocation, 45 CSSM_DB_ACCESS_TYPE AccessRequest, 46 const CSSM_ACCESS_CREDENTIALS *AccessCred, 47 const void *OpenParameters, 48 CSSM_DB_HANDLE *hMds); 49 50 CSSM_RETURN (CSSMAPI *DbClose) 51 (MDS_DB_HANDLE MdsDbHandle); 52 53 CSSM_RETURN (CSSMAPI *GetDbNames) 54 (MDS_HANDLE MdsHandle, 55 CSSM_NAME_LIST_PTR *NameList); 56 57 CSSM_RETURN (CSSMAPI *GetDbNameFromHandle) 58 (MDS_DB_HANDLE MdsDbHandle, 59 char **DbName); 60 61 CSSM_RETURN (CSSMAPI *FreeNameList) 62 (MDS_HANDLE MdsHandle, 63 CSSM_NAME_LIST_PTR NameList); 64 65 CSSM_RETURN (CSSMAPI *DataInsert) 66 (MDS_DB_HANDLE MdsDbHandle, 67 CSSM_DB_RECORDTYPE RecordType, 68 const CSSM_DB_RECORD_ATTRIBUTE_DATA *Attributes, 69 const CSSM_DATA *Data, 70 CSSM_DB_UNIQUE_RECORD_PTR *UniqueId); 71 72 CSSM_RETURN (CSSMAPI *DataDelete) 73 (MDS_DB_HANDLE MdsDbHandle, 74 const CSSM_DB_UNIQUE_RECORD *UniqueRecordIdentifier); 75 76 CSSM_RETURN (CSSMAPI *DataModify) 77 (MDS_DB_HANDLE MdsDbHandle, 78 CSSM_DB_RECORDTYPE RecordType, 79 CSSM_DB_UNIQUE_RECORD_PTR UniqueRecordIdentifier, 80 const CSSM_DB_RECORD_ATTRIBUTE_DATA *AttributesToBeModified, 81 const CSSM_DATA *DataToBeModified, 82 CSSM_DB_MODIFY_MODE ModifyMode); 83 84 CSSM_RETURN (CSSMAPI *DataGetFirst) 85 (MDS_DB_HANDLE MdsDbHandle, 86 const CSSM_QUERY *Query, 87 CSSM_HANDLE_PTR ResultsHandle, 88 CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, 89 CSSM_DATA_PTR Data, 90 CSSM_DB_UNIQUE_RECORD_PTR *UniqueId); 91 92 CSSM_RETURN (CSSMAPI *DataGetNext) 93 (MDS_DB_HANDLE MdsDbHandle, 94 CSSM_HANDLE ResultsHandle, 95 CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, 96 CSSM_DATA_PTR Data, 97 CSSM_DB_UNIQUE_RECORD_PTR *UniqueId); 98 99 CSSM_RETURN (CSSMAPI *DataAbortQuery) 100 (MDS_DB_HANDLE MdsDbHandle, 101 CSSM_HANDLE ResultsHandle); 102 103 CSSM_RETURN (CSSMAPI *DataGetFromUniqueRecordId) 104 (MDS_DB_HANDLE MdsDbHandle, 105 const CSSM_DB_UNIQUE_RECORD *UniqueRecord, 106 CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, 107 CSSM_DATA_PTR Data); 108 109 CSSM_RETURN (CSSMAPI *FreeUniqueRecord) 110 (MDS_DB_HANDLE MdsDbHandle, 111 CSSM_DB_UNIQUE_RECORD_PTR UniqueRecord); 112 113 CSSM_RETURN (CSSMAPI *CreateRelation) 114 (MDS_DB_HANDLE MdsDbHandle, 115 CSSM_DB_RECORDTYPE RelationID, 116 const char *RelationName, 117 uint32 NumberOfAttributes, 118 const CSSM_DB_SCHEMA_ATTRIBUTE_INFO *pAttributeInfo, 119 uint32 NumberOfIndexes, 120 const CSSM_DB_SCHEMA_INDEX_INFO *pIndexInfo); 121 122 CSSM_RETURN (CSSMAPI *DestroyRelation) 123 (MDS_DB_HANDLE MdsDbHandle, 124 CSSM_DB_RECORDTYPE RelationID); 125} MDS_FUNCS DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER, *MDS_FUNCS_PTR DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; 126 127 128/* MDS Context APIs */ 129 130CSSM_RETURN CSSMAPI 131MDS_Initialize (const CSSM_GUID *pCallerGuid, 132 const CSSM_MEMORY_FUNCS *pMemoryFunctions, 133 MDS_FUNCS_PTR pDlFunctions, 134 MDS_HANDLE *hMds) 135 DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; 136 137CSSM_RETURN CSSMAPI 138MDS_Terminate (MDS_HANDLE MdsHandle) 139 DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; 140 141CSSM_RETURN CSSMAPI 142MDS_Install (MDS_HANDLE MdsHandle) 143 DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; 144 145CSSM_RETURN CSSMAPI 146MDS_Uninstall (MDS_HANDLE MdsHandle) 147 DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; 148 149#ifdef __cplusplus 150} 151#endif 152 153#endif /* _MDS_H_ */ 154