2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
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
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.
22 // Definitions of structures which define the schema, including attributes
23 // and indexes, for the standard tables that are part of the MDS database.
26 #include "MDSSchema.h"
27 #include <Security/mds_schema.h>
30 // Schema for the lone table in the Object Directory Database.
33 static const CSSM_DB_SCHEMA_ATTRIBUTE_INFO kAttributesObjectRelation
[] = {
34 SCHEMA_ATTRIBUTE(0, ModuleId
, STRING
),
35 SCHEMA_ATTRIBUTE(1, Manifest
, BLOB
),
36 SCHEMA_ATTRIBUTE(2, ModuleName
, STRING
),
37 SCHEMA_ATTRIBUTE(3, Path
, STRING
),
38 SCHEMA_ATTRIBUTE(4, ProductVersion
, STRING
)
41 static const CSSM_DB_SCHEMA_INDEX_INFO kIndexObjectRelation
[] = {
42 UNIQUE_INDEX_ATTRIBUTE(0)
45 const RelationInfo kObjectRelation
=
46 RELATION_INFO(MDS_OBJECT_RECORDTYPE
, kAttributesObjectRelation
, kIndexObjectRelation
);
49 // Schema for the various tables in the CDSA Directory Database.
54 static const CSSM_DB_SCHEMA_ATTRIBUTE_INFO kAttributesCSSMRelation
[] =
56 SCHEMA_ATTRIBUTE(0, ModuleID
, STRING
),
57 SCHEMA_ATTRIBUTE(1, CDSAVersion
, STRING
),
58 SCHEMA_ATTRIBUTE(2, Vendor
, STRING
),
59 SCHEMA_ATTRIBUTE(3, Desc
, STRING
),
60 SCHEMA_ATTRIBUTE(4, NativeServices
, UINT32
)
63 static const CSSM_DB_SCHEMA_INDEX_INFO kIndexCSSMRelation
[] =
65 UNIQUE_INDEX_ATTRIBUTE(0)
68 const RelationInfo kCSSMRelation
=
69 RELATION_INFO(MDS_CDSADIR_CSSM_RECORDTYPE
, kAttributesCSSMRelation
, kIndexCSSMRelation
);
73 static const CSSM_DB_SCHEMA_ATTRIBUTE_INFO kAttributesKRMMRelation
[] =
75 SCHEMA_ATTRIBUTE(0, CSSMGuid
, STRING
),
76 SCHEMA_ATTRIBUTE(1, PolicyType
, UINT32
),
77 SCHEMA_ATTRIBUTE(2, PolicyName
, STRING
),
78 SCHEMA_ATTRIBUTE(3, PolicyPath
, STRING
),
79 SCHEMA_ATTRIBUTE(4, PolicyInfo
, BLOB
),
80 SCHEMA_ATTRIBUTE(5, PolicyManifest
, BLOB
)
83 static const CSSM_DB_SCHEMA_INDEX_INFO kIndexKRMMRelation
[] =
85 UNIQUE_INDEX_ATTRIBUTE(0),
86 UNIQUE_INDEX_ATTRIBUTE(1)
89 const RelationInfo kKRMMRelation
=
90 RELATION_INFO(MDS_CDSADIR_KRMM_RECORDTYPE
, kAttributesKRMMRelation
, kIndexKRMMRelation
);
94 static const CSSM_DB_SCHEMA_ATTRIBUTE_INFO kAttributesCommonRelation
[] =
96 SCHEMA_ATTRIBUTE(0, ModuleID
, STRING
),
97 SCHEMA_ATTRIBUTE(1, Manifest
, BLOB
),
98 SCHEMA_ATTRIBUTE(2, ModuleName
, STRING
),
99 SCHEMA_ATTRIBUTE(3, Path
, STRING
),
100 SCHEMA_ATTRIBUTE(4, CDSAVersion
, STRING
),
101 SCHEMA_ATTRIBUTE(5, Desc
, STRING
),
102 SCHEMA_ATTRIBUTE(6, DynamicFlag
, UINT32
),
103 SCHEMA_ATTRIBUTE(7, MultiThreadFlag
, UINT32
),
104 SCHEMA_ATTRIBUTE(8, ServiceMask
, UINT32
)
107 static const CSSM_DB_SCHEMA_INDEX_INFO kIndexCommonRelation
[] =
109 UNIQUE_INDEX_ATTRIBUTE(0)
112 const RelationInfo kCommonRelation
=
113 RELATION_INFO(MDS_CDSADIR_COMMON_RECORDTYPE
, kAttributesCommonRelation
, kIndexCommonRelation
);