1 /* this private structure is used by the ltdb backend in the
5 unsigned int connect_flags;
7 /* a double is used for portability and ease of string
8 handling. It has plenty of digits of precision */
9 double sequence_number;
12 struct ldb_message baseinfo;
13 struct ldb_message indexlist;
14 struct ldb_message attributes;
15 struct ldb_message subclasses;
24 /* special record types */
25 #define LTDB_INDEX "@INDEX"
26 #define LTDB_INDEXLIST "@INDEXLIST"
27 #define LTDB_IDX "@IDX"
28 #define LTDB_IDXATTR "@IDXATTR"
29 #define LTDB_BASEINFO "@BASEINFO"
30 #define LTDB_ATTRIBUTES "@ATTRIBUTES"
31 #define LTDB_SUBCLASSES "@SUBCLASSES"
33 /* special attribute types */
34 #define LTDB_SEQUENCE_NUMBER "sequenceNumber"
35 #define LTDB_OBJECTCLASS "objectClass"
37 /* well known attribute flags */
38 #define LTDB_FLAG_CASE_INSENSITIVE (1<<0)
39 #define LTDB_FLAG_INTEGER (1<<1)
40 #define LTDB_FLAG_WILDCARD (1<<2)
41 #define LTDB_FLAG_OBJECTCLASS (1<<3)
45 #define IVAL(p, ofs) (((unsigned *)((char *)(p) + (ofs)))[0])
48 #define SIVAL(p, ofs, v) do { IVAL(p, ofs) = (v); } while (0)