]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slapi/slapi.h
Merge remote branch 'origin/mdb.master'
[openldap] / servers / slapd / slapi / slapi.h
index fb0ed0f84cff217dd7425250c36f1e7d44e02da9..bb2dcd4217092711cf6982d2dc168ebdf118a2d5 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2002-2005 The OpenLDAP Foundation.
+ * Copyright 2002-2012 The OpenLDAP Foundation.
  * Portions Copyright 1997,2002-2003 IBM Corporation.
  * All rights reserved.
  *
@@ -30,11 +30,11 @@ LDAP_BEGIN_DECL
 /*
  * Quick 'n' dirty to make struct slapi_* in slapi-plugin.h opaque
  */
-#define slapi_entry    slap_entry
-#define slapi_attr     slap_attr
+#define slapi_entry    Entry
+#define slapi_attr     Attribute
 #define slapi_value    berval
 #define slapi_valueset berval *
-#define slapi_filter   slap_filter
+#define slapi_filter   Filter
 
 LDAP_END_DECL
 
@@ -45,7 +45,6 @@ LDAP_BEGIN_DECL
 #define SLAPI_OVERLAY_NAME                     "slapi"
 
 #define SLAPI_OPERATION_PBLOCK(_op)            ((_op)->o_callback->sc_private)
-#define SLAPI_CONNECTION_PBLOCK(_conn)         ((_conn)->c_pb);
 #define SLAPI_BACKEND_PBLOCK(_be)              ((_be)->be_pb)
 
 #define SLAPI_OPERATION_EXTENSIONS(_op)                ((_op)->o_hdr->oh_extensions)
@@ -88,6 +87,18 @@ typedef enum slapi_extension_e {
        SLAPI_X_EXT_MAX = 2
 } slapi_extension_t;
 
+struct slapi_dn {
+       unsigned char flag;
+       struct berval dn;
+       struct berval ndn;
+};
+
+struct slapi_rdn {
+       unsigned char flag;
+       struct berval bv;
+       LDAPRDN rdn;
+};
+
 /*
  * Was: slapi_pblock.h
  */
@@ -106,18 +117,24 @@ typedef enum slapi_pblock_class_e {
 #define PBLOCK_ERROR                   (-1)
 #define PBLOCK_MAX_PARAMS              100
 
+union slapi_pblock_value {
+       int pv_integer;
+       long pv_long_integer;
+       void *pv_pointer;
+       int (*pv_function_pointer)();
+};
+
 struct slapi_pblock {
-       ldap_pvt_thread_mutex_t pblockMutex;
-       int                     ckParams;
-       int                     numParams;
-       int                     curParams[PBLOCK_MAX_PARAMS];
-       void                    *curVals[PBLOCK_MAX_PARAMS];
+       ldap_pvt_thread_mutex_t pb_mutex;
+       int                     pb_nParams;
+       int                     pb_params[PBLOCK_MAX_PARAMS];
+       union slapi_pblock_value pb_values[PBLOCK_MAX_PARAMS];
        /* native types */
-       Connection              *pconn;
-       Operation               *pop;
-       SlapReply               rs;
-       int                     internal_op;
-       char                    textbuf[ SLAP_TEXT_BUFLEN ];
+       Connection              *pb_conn;
+       Operation               *pb_op;
+       SlapReply               *pb_rs;
+       int                     pb_intop;
+       char                    pb_textbuf[ SLAP_TEXT_BUFLEN ];
 };
 
 #endif /* !NO_PBLOCK_CLASS */
@@ -128,14 +145,7 @@ struct slapi_pblock {
 
 #define SLAPI_PLUGIN_IS_POST_FN(x) ((x) >= SLAPI_PLUGIN_POST_BIND_FN && (x) <= SLAPI_PLUGIN_BE_POST_DELETE_FN)
 
-#define SLAPI_OPERATION_PARAMETERS             138
-
-#define        SLAPI_PLUGIN_DB_TEST_FN                 227
-#define SLAPI_PLUGIN_DB_NO_ACL                 250
-
-/* DS 5.x Computed Attribute Callbacks (not exposed) */
-#define SLAPI_PLUGIN_COMPUTE_EVALUATOR_FN      1200
-#define SLAPI_PLUGIN_COMPUTE_SEARCH_REWRITER_FN        1201
+#define SLAPI_IBM_PBLOCK                       -3
 
 #define        SLAPI_ENTRY_PRE_OP                      52
 #define        SLAPI_ENTRY_POST_OP                     53
@@ -145,6 +155,8 @@ struct slapi_pblock {
 
 #define SLAPI_ABANDON_MSGID                    120
 
+#define SLAPI_OPERATION_PARAMETERS             138
+
 #define SLAPI_SEQ_TYPE                         150
 #define SLAPI_SEQ_ATTRNAME                     151
 #define SLAPI_SEQ_VAL                          152
@@ -160,15 +172,18 @@ struct slapi_pblock {
 
 #define SLAPI_DB2LDIF_PRINTKEY                 183
 
-#define SLAPI_PARENT_TXN                       190
-#define SLAPI_TXN                              191
-
 #define        SLAPI_CHANGENUMBER                      197
 #define        SLAPI_LOG_OPERATION                     198
 
 #define SLAPI_DBSIZE                           199
 
-/* really private stuff */
+#define        SLAPI_PLUGIN_DB_TEST_FN                 227
+#define SLAPI_PLUGIN_DB_NO_ACL                 250
+
+/* OpenLDAP private parametrs */
+#define SLAPI_PLUGIN_COMPUTE_EVALUATOR_FN      1200
+#define SLAPI_PLUGIN_COMPUTE_SEARCH_REWRITER_FN        1201
+
 #define SLAPI_X_CONFIG_ARGV                    1400
 #define SLAPI_X_INTOP_FLAGS                    1401
 #define SLAPI_X_INTOP_RESULT_CALLBACK          1402
@@ -177,8 +192,6 @@ struct slapi_pblock {
 #define SLAPI_X_INTOP_CALLBACK_DATA            1405
 #define SLAPI_X_OLD_RESCONTROLS                        1406
 
-#define SLAPI_IBM_PBLOCK                       -3
-
 LDAP_SLAPI_V (ldap_pvt_thread_mutex_t) slapi_hn_mutex;
 LDAP_SLAPI_V (ldap_pvt_thread_mutex_t) slapi_time_mutex;
 LDAP_SLAPI_V (ldap_pvt_thread_mutex_t) slapi_printmessage_mutex;