1 /* $OpenLDAP: pkg/ldap/servers/slapd/slapi/proto-slapi.h,v 1.47.2.4 2008/06/02 18:00:53 quanah Exp $ */
2 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 * Copyright 2002-2008 The OpenLDAP Foundation.
5 * Portions Copyright 1997,2002-2003 IBM Corporation.
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted only as authorized by the OpenLDAP
12 * A copy of this license is available in the file LICENSE in the
13 * top-level directory of the distribution or, alternatively, at
14 * <http://www.OpenLDAP.org/license.html>.
17 * This work was initially developed by IBM Corporation for use in
18 * IBM products and subsequently ported to OpenLDAP Software by
19 * Steve Omrani. Additional significant contributors include:
23 #ifndef _PROTO_SLAPI_H
24 #define _PROTO_SLAPI_H
29 LDAP_SLAPI_F (LDAPMod
**) slapi_int_modifications2ldapmods
LDAP_P(( Modifications
* ));
30 LDAP_SLAPI_F (Modifications
*) slapi_int_ldapmods2modifications
LDAP_P(( Operation
*op
, LDAPMod
** ));
31 LDAP_SLAPI_F (int) slapi_int_count_controls
LDAP_P(( LDAPControl
**ctrls
));
32 LDAP_SLAPI_F (char **) slapi_get_supported_extended_ops
LDAP_P((void));
33 LDAP_SLAPI_F (int) slapi_int_access_allowed
LDAP_P((Operation
*op
, Entry
*entry
, AttributeDescription
*desc
, struct berval
*val
, slap_access_t access
, AccessControlState
*state
));
36 LDAP_SLAPI_F (int) slapi_int_response
LDAP_P(( Slapi_Operation
*op
, SlapReply
*rs
));
37 LDAP_SLAPI_F (void) slapi_int_connection_init_pb
LDAP_P(( Slapi_PBlock
*pb
, ber_tag_t OpType
));
38 LDAP_SLAPI_F (void) slapi_int_connection_done_pb
LDAP_P(( Slapi_PBlock
*pb
));
41 LDAP_SLAPI_F (int) slapi_pblock_delete_param
LDAP_P(( Slapi_PBlock
*p
, int param
));
42 LDAP_SLAPI_F (void) slapi_pblock_clear
LDAP_P(( Slapi_PBlock
*pb
));
44 LDAP_SLAPI_F (int) slapi_int_pblock_get_first
LDAP_P(( Backend
*be
, Slapi_PBlock
**pb
));
45 LDAP_SLAPI_F (int) slapi_int_pblock_get_next
LDAP_P(( Slapi_PBlock
**pb
));
47 #define PBLOCK_ASSERT_CONN( _pb ) do { \
48 assert( (_pb) != NULL ); \
49 assert( (_pb)->pb_conn != NULL ); \
52 #define PBLOCK_ASSERT_OP( _pb, _tag ) do { \
53 PBLOCK_ASSERT_CONN( _pb ); \
54 assert( (_pb)->pb_op != NULL ); \
55 assert( (_pb)->pb_rs != NULL ); \
57 assert( (_pb)->pb_op->o_tag == (_tag)); \
60 #define PBLOCK_ASSERT_INTOP( _pb, _tag ) do { \
61 PBLOCK_ASSERT_OP( _pb, _tag ); \
62 assert( (_pb)->pb_intop ); \
63 assert( (_pb)->pb_op == (Operation *)pb->pb_conn->c_pending_ops.stqh_first ); \
67 LDAP_SLAPI_F (int) slapi_int_register_plugin
LDAP_P((Backend
*be
, Slapi_PBlock
*pPB
));
68 LDAP_SLAPI_F (int) slapi_int_call_plugins
LDAP_P((Backend
*be
, int funcType
, Slapi_PBlock
* pPB
));
69 LDAP_SLAPI_F (int) slapi_int_get_plugins
LDAP_P((Backend
*be
, int functype
, SLAPI_FUNC
**ppFuncPtrs
));
70 LDAP_SLAPI_F (int) slapi_int_register_extop
LDAP_P((Backend
*pBE
, ExtendedOp
**opList
, Slapi_PBlock
*pPB
));
71 LDAP_SLAPI_F (int) slapi_int_get_extop_plugin
LDAP_P((struct berval
*reqoid
, SLAPI_FUNC
*pFuncAddr
));
72 LDAP_SLAPI_F (struct berval
*) slapi_int_get_supported_extop
LDAP_P(( int ));
73 LDAP_SLAPI_F (int) slapi_int_read_config
LDAP_P((Backend
*be
, const char *fname
, int lineno
,
74 int argc
, char **argv
));
75 LDAP_SLAPI_F (void) slapi_int_plugin_unparse
LDAP_P((Backend
*be
, BerVarray
*out
));
76 LDAP_SLAPI_F (int) slapi_int_initialize
LDAP_P((void));
79 LDAP_SLAPI_F (int) slapi_int_init_object_extensions
LDAP_P((void));
80 LDAP_SLAPI_F (int) slapi_int_free_object_extensions
LDAP_P((int objecttype
, void *object
));
81 LDAP_SLAPI_F (int) slapi_int_create_object_extensions
LDAP_P((int objecttype
, void *object
));
82 LDAP_SLAPI_F (int) slapi_int_clear_object_extensions
LDAP_P((int objecttype
, void *object
));
85 LDAP_SLAPI_F (int) slapi_over_is_inst
LDAP_P((BackendDB
*));
86 LDAP_SLAPI_F (int) slapi_over_config
LDAP_P((BackendDB
*, ConfigReply
*));
90 #endif /* _PROTO_SLAPI_H */