]> git.sur5r.net Git - openldap/commitdiff
Rename idl to midl
authorHoward Chu <hyc@symas.com>
Fri, 12 Aug 2011 00:33:28 +0000 (17:33 -0700)
committerHoward Chu <hyc@symas.com>
Thu, 1 Sep 2011 23:17:08 +0000 (16:17 -0700)
libraries/libmdb/Makefile
libraries/libmdb/idl.c [deleted file]
libraries/libmdb/idl.h [deleted file]
libraries/libmdb/mdb.c
libraries/libmdb/midl.c [new file with mode: 0644]
libraries/libmdb/midl.h [new file with mode: 0644]

index 3948905a57f8e6af11e9ed531293f5c2745b8ade..16cec0d7f083ef4915812ee2830b2f7195300b85 100644 (file)
@@ -14,22 +14,22 @@ test:       all
        mkdir testdb
        ./mtest && ./mdb_stat testdb
 
-libmdb.a:      mdb.o idl.o
-       ar rs $@ mdb.o idl.o
+libmdb.a:      mdb.o midl.o
+       ar rs $@ mdb.o midl.o
 
-libmdb.so:     mdb.o idl.o
-       gcc -shared -o $@ mdb.o idl.o
+libmdb.so:     mdb.o midl.o
+       gcc -shared -o $@ mdb.o midl.o
 
 mdb_stat: mdb_stat.o libmdb.a
 mtest:    mtest.o    libmdb.a
 mtest2:        mtest2.o libmdb.a
 mtest3:        mtest3.o libmdb.a
 
-mdb.o: mdb.c mdb.h idl.h
+mdb.o: mdb.c mdb.h midl.h
        $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c mdb.c
 
-idl.o: idl.c idl.h
-       $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c idl.c
+midl.o: midl.c midl.h
+       $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c midl.c
 
 %:     %.o
        $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@
diff --git a/libraries/libmdb/idl.c b/libraries/libmdb/idl.c
deleted file mode 100644 (file)
index 7fc39c0..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/* idl.c - ldap bdb back-end ID list functions */
-/* $OpenLDAP$ */
-/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 2000-2011 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-#include <string.h>
-#include <sys/types.h>
-#include <assert.h>
-#include "idl.h"
-
-typedef unsigned long pgno_t;
-
-/* Sort the IDLs from highest to lowest */
-#define IDL_CMP(x,y)    ( x > y ? -1 : ( x < y ? 1 : 0 ) )
-
-unsigned mdb_idl_search( ID *ids, ID id )
-{
-       /*
-        * binary search of id in ids
-        * if found, returns position of id
-        * if not found, returns first position greater than id
-        */
-       unsigned base = 0;
-       unsigned cursor = 0;
-       int val = 0;
-       unsigned n = ids[0];
-
-       while( 0 < n ) {
-               int pivot = n >> 1;
-               cursor = base + pivot;
-               val = IDL_CMP( id, ids[cursor + 1] );
-
-               if( val < 0 ) {
-                       n = pivot;
-
-               } else if ( val > 0 ) {
-                       base = cursor + 1;
-                       n -= pivot + 1;
-
-               } else {
-                       return cursor + 1;
-               }
-       }
-       
-       if( val > 0 ) {
-               return cursor + 2;
-       } else {
-               return cursor + 1;
-       }
-}
-
-int mdb_idl_insert( ID *ids, ID id )
-{
-       unsigned x;
-
-       if (MDB_IDL_IS_RANGE( ids )) {
-               /* if already in range, treat as a dup */
-               if (id >= MDB_IDL_FIRST(ids) && id <= MDB_IDL_LAST(ids))
-                       return -1;
-               if (id < MDB_IDL_FIRST(ids))
-                       ids[1] = id;
-               else if (id > MDB_IDL_LAST(ids))
-                       ids[2] = id;
-               return 0;
-       }
-
-       x = mdb_idl_search( ids, id );
-       assert( x > 0 );
-
-       if( x < 1 ) {
-               /* internal error */
-               return -2;
-       }
-
-       if ( x <= ids[0] && ids[x] == id ) {
-               /* duplicate */
-               return -1;
-       }
-
-       if ( ++ids[0] >= MDB_IDL_DB_MAX ) {
-               if( id < ids[1] ) {
-                       ids[1] = id;
-                       ids[2] = ids[ids[0]-1];
-               } else if ( ids[ids[0]-1] < id ) {
-                       ids[2] = id;
-               } else {
-                       ids[2] = ids[ids[0]-1];
-               }
-               ids[0] = NOID;
-       
-       } else {
-               /* insert id */
-               AC_MEMCPY( &ids[x+1], &ids[x], (ids[0]-x) * sizeof(ID) );
-               ids[x] = id;
-       }
-
-       return 0;
-}
diff --git a/libraries/libmdb/idl.h b/libraries/libmdb/idl.h
deleted file mode 100644 (file)
index 1a51df4..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* idl.h - ldap bdb back-end ID list header file */
-/* $OpenLDAP$ */
-/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 2000-2011 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-#ifndef _MDB_IDL_H_
-#define _MDB_IDL_H_
-
-#define AC_MEMCPY(dst,src,size)        memcpy(dst,src,size)
-
-#define        ID      unsigned long
-#define        NOID    ((ID)~0)
-
-/* IDL sizes - likely should be even bigger
- *   limiting factors: sizeof(ID), thread stack size
- */
-#define        MDB_IDL_LOGN    16      /* DB_SIZE is 2^16, UM_SIZE is 2^17 */
-#define MDB_IDL_DB_SIZE                (1<<MDB_IDL_LOGN)
-#define MDB_IDL_UM_SIZE                (1<<(MDB_IDL_LOGN+1))
-#define MDB_IDL_UM_SIZEOF      (MDB_IDL_UM_SIZE * sizeof(ID))
-
-#define MDB_IDL_DB_MAX         (MDB_IDL_DB_SIZE-1)
-
-#define MDB_IDL_UM_MAX         (MDB_IDL_UM_SIZE-1)
-
-#define MDB_IDL_IS_RANGE(ids)  ((ids)[0] == NOID)
-#define MDB_IDL_RANGE_SIZE             (3)
-#define MDB_IDL_RANGE_SIZEOF   (MDB_IDL_RANGE_SIZE * sizeof(ID))
-#define MDB_IDL_SIZEOF(ids)            ((MDB_IDL_IS_RANGE(ids) \
-       ? MDB_IDL_RANGE_SIZE : ((ids)[0]+1)) * sizeof(ID))
-
-#define MDB_IDL_RANGE_FIRST(ids)       ((ids)[1])
-#define MDB_IDL_RANGE_LAST(ids)                ((ids)[2])
-
-#define MDB_IDL_RANGE( ids, f, l ) \
-       do { \
-               (ids)[0] = NOID; \
-               (ids)[1] = (f);  \
-               (ids)[2] = (l);  \
-       } while(0)
-
-#define MDB_IDL_ZERO(ids) \
-       do { \
-               (ids)[0] = 0; \
-               (ids)[1] = 0; \
-               (ids)[2] = 0; \
-       } while(0)
-
-#define MDB_IDL_IS_ZERO(ids) ( (ids)[0] == 0 )
-#define MDB_IDL_IS_ALL( range, ids ) ( (ids)[0] == NOID \
-       && (ids)[1] <= (range)[1] && (range)[2] <= (ids)[2] )
-
-#define MDB_IDL_CPY( dst, src ) (AC_MEMCPY( dst, src, MDB_IDL_SIZEOF( src ) ))
-
-#define MDB_IDL_ID( bdb, ids, id ) MDB_IDL_RANGE( ids, id, ((bdb)->bi_lastid) )
-#define MDB_IDL_ALL( bdb, ids ) MDB_IDL_RANGE( ids, 1, ((bdb)->bi_lastid) )
-
-#define MDB_IDL_FIRST( ids )   ( ids[1] )
-#define MDB_IDL_LAST( ids )            ( MDB_IDL_IS_RANGE(ids) \
-       ? ids[2] : ids[ids[0]] )
-
-#define MDB_IDL_N( ids )               ( MDB_IDL_IS_RANGE(ids) \
-       ? (ids[2]-ids[1])+1 : ids[0] )
-
-int mdb_idl_insert( ID *ids, ID id );
-
-#endif
index 489bbde65618e372a2e9df5b28051fa3f4ef6531..b601d5d48d7052c05ff1d0c6b0b2f055edaddffd 100644 (file)
@@ -54,7 +54,7 @@
 #define ULONG          unsigned long
 typedef ULONG          pgno_t;
 
-#include "idl.h"
+#include "midl.h"
 
 #ifndef DEBUG
 #define DEBUG 1
@@ -580,7 +580,7 @@ mdb_touch(MDB_txn *txn, MDB_pageparent *pp)
                if ((dp = mdb_alloc_page(txn, pp->mp_parent, pp->mp_pi, 1)) == NULL)
                        return ENOMEM;
                DPRINTF("touched page %lu -> %lu", mp->mp_pgno, dp->p.mp_pgno);
-               mdb_idl_insert(txn->mt_free_pgs, mp->mp_pgno);
+               mdb_midl_insert(txn->mt_free_pgs, mp->mp_pgno);
                pgno = dp->p.mp_pgno;
                memcpy(&dp->p, mp, txn->mt_env->me_psize);
                mp = &dp->p;
@@ -2682,7 +2682,7 @@ mdb_del0(MDB_txn *txn, MDB_dbi dbi, unsigned int ki, MDB_pageparent *mpp, MDB_no
                ovpages = OVPAGES(NODEDSZ(leaf), txn->mt_env->me_psize);
                for (i=0; i<ovpages; i++) {
                        DPRINTF("freed ov page %lu", pg);
-                       mdb_idl_insert(txn->mt_free_pgs, pg);
+                       mdb_midl_insert(txn->mt_free_pgs, pg);
                        pg++;
                }
        }
@@ -2764,7 +2764,7 @@ mdb_del(MDB_txn *txn, MDB_dbi dbi,
                                        while (parent != NULL) {
                                                for (i=0; i<NUMKEYS(top->mp_page); i++) {
                                                        ni = NODEPTR(top->mp_page, i);
-                                                       mdb_idl_insert(txn->mt_free_pgs, ni->mn_pgno);
+                                                       mdb_midl_insert(txn->mt_free_pgs, ni->mn_pgno);
                                                }
                                                if (parent) {
                                                        parent->mp_ki++;
@@ -2779,7 +2779,7 @@ mdb_del(MDB_txn *txn, MDB_dbi dbi,
                                                }
                                        }
                                }
-                               mdb_idl_insert(txn->mt_free_pgs, mx.mx_txn.mt_dbs[mx.mx_cursor.mc_dbi].md_root);
+                               mdb_midl_insert(txn->mt_free_pgs, mx.mx_txn.mt_dbs[mx.mx_cursor.mc_dbi].md_root);
                        }
                }
        }
diff --git a/libraries/libmdb/midl.c b/libraries/libmdb/midl.c
new file mode 100644 (file)
index 0000000..8b39aca
--- /dev/null
@@ -0,0 +1,109 @@
+/* idl.c - ldap bdb back-end ID list functions */
+/* $OpenLDAP$ */
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 2000-2011 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+
+#include <string.h>
+#include <sys/types.h>
+#include <assert.h>
+#include "midl.h"
+
+typedef unsigned long pgno_t;
+
+/* Sort the IDLs from highest to lowest */
+#define IDL_CMP(x,y)    ( x > y ? -1 : ( x < y ? 1 : 0 ) )
+
+unsigned mdb_midl_search( ID *ids, ID id )
+{
+       /*
+        * binary search of id in ids
+        * if found, returns position of id
+        * if not found, returns first position greater than id
+        */
+       unsigned base = 0;
+       unsigned cursor = 0;
+       int val = 0;
+       unsigned n = ids[0];
+
+       while( 0 < n ) {
+               int pivot = n >> 1;
+               cursor = base + pivot;
+               val = IDL_CMP( id, ids[cursor + 1] );
+
+               if( val < 0 ) {
+                       n = pivot;
+
+               } else if ( val > 0 ) {
+                       base = cursor + 1;
+                       n -= pivot + 1;
+
+               } else {
+                       return cursor + 1;
+               }
+       }
+       
+       if( val > 0 ) {
+               return cursor + 2;
+       } else {
+               return cursor + 1;
+       }
+}
+
+int mdb_midl_insert( ID *ids, ID id )
+{
+       unsigned x;
+
+       if (MDB_IDL_IS_RANGE( ids )) {
+               /* if already in range, treat as a dup */
+               if (id >= MDB_IDL_FIRST(ids) && id <= MDB_IDL_LAST(ids))
+                       return -1;
+               if (id < MDB_IDL_FIRST(ids))
+                       ids[1] = id;
+               else if (id > MDB_IDL_LAST(ids))
+                       ids[2] = id;
+               return 0;
+       }
+
+       x = mdb_midl_search( ids, id );
+       assert( x > 0 );
+
+       if( x < 1 ) {
+               /* internal error */
+               return -2;
+       }
+
+       if ( x <= ids[0] && ids[x] == id ) {
+               /* duplicate */
+               return -1;
+       }
+
+       if ( ++ids[0] >= MDB_IDL_DB_MAX ) {
+               if( id < ids[1] ) {
+                       ids[1] = id;
+                       ids[2] = ids[ids[0]-1];
+               } else if ( ids[ids[0]-1] < id ) {
+                       ids[2] = id;
+               } else {
+                       ids[2] = ids[ids[0]-1];
+               }
+               ids[0] = NOID;
+       
+       } else {
+               /* insert id */
+               AC_MEMCPY( &ids[x+1], &ids[x], (ids[0]-x) * sizeof(ID) );
+               ids[x] = id;
+       }
+
+       return 0;
+}
diff --git a/libraries/libmdb/midl.h b/libraries/libmdb/midl.h
new file mode 100644 (file)
index 0000000..aeb0af6
--- /dev/null
@@ -0,0 +1,78 @@
+/* idl.h - ldap bdb back-end ID list header file */
+/* $OpenLDAP$ */
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 2000-2011 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+
+#ifndef _MDB_MIDL_H_
+#define _MDB_MIDL_H_
+
+#define AC_MEMCPY(dst,src,size)        memcpy(dst,src,size)
+
+#define        ID      unsigned long
+#define        NOID    ((ID)~0)
+
+/* IDL sizes - likely should be even bigger
+ *   limiting factors: sizeof(ID), thread stack size
+ */
+#define        MDB_IDL_LOGN    16      /* DB_SIZE is 2^16, UM_SIZE is 2^17 */
+#define MDB_IDL_DB_SIZE                (1<<MDB_IDL_LOGN)
+#define MDB_IDL_UM_SIZE                (1<<(MDB_IDL_LOGN+1))
+#define MDB_IDL_UM_SIZEOF      (MDB_IDL_UM_SIZE * sizeof(ID))
+
+#define MDB_IDL_DB_MAX         (MDB_IDL_DB_SIZE-1)
+
+#define MDB_IDL_UM_MAX         (MDB_IDL_UM_SIZE-1)
+
+#define MDB_IDL_IS_RANGE(ids)  ((ids)[0] == NOID)
+#define MDB_IDL_RANGE_SIZE             (3)
+#define MDB_IDL_RANGE_SIZEOF   (MDB_IDL_RANGE_SIZE * sizeof(ID))
+#define MDB_IDL_SIZEOF(ids)            ((MDB_IDL_IS_RANGE(ids) \
+       ? MDB_IDL_RANGE_SIZE : ((ids)[0]+1)) * sizeof(ID))
+
+#define MDB_IDL_RANGE_FIRST(ids)       ((ids)[1])
+#define MDB_IDL_RANGE_LAST(ids)                ((ids)[2])
+
+#define MDB_IDL_RANGE( ids, f, l ) \
+       do { \
+               (ids)[0] = NOID; \
+               (ids)[1] = (f);  \
+               (ids)[2] = (l);  \
+       } while(0)
+
+#define MDB_IDL_ZERO(ids) \
+       do { \
+               (ids)[0] = 0; \
+               (ids)[1] = 0; \
+               (ids)[2] = 0; \
+       } while(0)
+
+#define MDB_IDL_IS_ZERO(ids) ( (ids)[0] == 0 )
+#define MDB_IDL_IS_ALL( range, ids ) ( (ids)[0] == NOID \
+       && (ids)[1] <= (range)[1] && (range)[2] <= (ids)[2] )
+
+#define MDB_IDL_CPY( dst, src ) (AC_MEMCPY( dst, src, MDB_IDL_SIZEOF( src ) ))
+
+#define MDB_IDL_ID( bdb, ids, id ) MDB_IDL_RANGE( ids, id, ((bdb)->bi_lastid) )
+#define MDB_IDL_ALL( bdb, ids ) MDB_IDL_RANGE( ids, 1, ((bdb)->bi_lastid) )
+
+#define MDB_IDL_FIRST( ids )   ( ids[1] )
+#define MDB_IDL_LAST( ids )            ( MDB_IDL_IS_RANGE(ids) \
+       ? ids[2] : ids[ids[0]] )
+
+#define MDB_IDL_N( ids )               ( MDB_IDL_IS_RANGE(ids) \
+       ? (ids[2]-ids[1])+1 : ids[0] )
+
+int mdb_midl_insert( ID *ids, ID id );
+
+#endif /* _MDB_MIDL_H_ */