1/* $OpenLDAP$ */ 2/* This work is part of OpenLDAP Software <http://www.openldap.org/>. 3 * 4 * Copyright 2002-2011 The OpenLDAP Foundation. 5 * Portions Copyright 1997,2002-2003 IBM Corporation. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted only as authorized by the OpenLDAP 10 * Public License. 11 * 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>. 15 */ 16/* ACKNOWLEDGEMENTS: 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: 20 * Luke Howard 21 */ 22 23#ifndef _PROTO_SLAPI_H 24#define _PROTO_SLAPI_H 25 26LDAP_BEGIN_DECL 27 28/* slapi_utils.c */ 29LDAP_SLAPI_F (LDAPMod **) slapi_int_modifications2ldapmods LDAP_P(( Modifications * )); 30LDAP_SLAPI_F (Modifications *) slapi_int_ldapmods2modifications LDAP_P(( Operation *op, LDAPMod ** )); 31LDAP_SLAPI_F (int) slapi_int_count_controls LDAP_P(( LDAPControl **ctrls )); 32LDAP_SLAPI_F (char **) slapi_get_supported_extended_ops LDAP_P((void)); 33LDAP_SLAPI_F (int) slapi_int_access_allowed LDAP_P((Operation *op, Entry *entry, AttributeDescription *desc, struct berval *val, slap_access_t access, AccessControlState *state )); 34 35/* slapi_ops.c */ 36LDAP_SLAPI_F (int) slapi_int_response LDAP_P(( Slapi_Operation *op, SlapReply *rs )); 37LDAP_SLAPI_F (void) slapi_int_connection_init_pb LDAP_P(( Slapi_PBlock *pb, ber_tag_t OpType )); 38LDAP_SLAPI_F (void) slapi_int_connection_done_pb LDAP_P(( Slapi_PBlock *pb )); 39 40/* slapi_pblock.c */ 41LDAP_SLAPI_F (int) slapi_pblock_delete_param LDAP_P(( Slapi_PBlock *p, int param )); 42LDAP_SLAPI_F (void) slapi_pblock_clear LDAP_P(( Slapi_PBlock *pb )); 43 44LDAP_SLAPI_F (int) slapi_int_pblock_get_first LDAP_P(( Backend *be, Slapi_PBlock **pb )); 45LDAP_SLAPI_F (int) slapi_int_pblock_get_next LDAP_P(( Slapi_PBlock **pb )); 46 47#define PBLOCK_ASSERT_CONN( _pb ) do { \ 48 assert( (_pb) != NULL ); \ 49 assert( (_pb)->pb_conn != NULL ); \ 50 } while (0) 51 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 ); \ 56 if ( _tag != 0 ) \ 57 assert( (_pb)->pb_op->o_tag == (_tag)); \ 58 } while (0) 59 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 ); \ 64 } while (0) 65 66/* plugin.c */ 67LDAP_SLAPI_F (int) slapi_int_register_plugin LDAP_P((Backend *be, Slapi_PBlock *pPB)); 68LDAP_SLAPI_F (int) slapi_int_call_plugins LDAP_P((Backend *be, int funcType, Slapi_PBlock * pPB)); 69LDAP_SLAPI_F (int) slapi_int_get_plugins LDAP_P((Backend *be, int functype, SLAPI_FUNC **ppFuncPtrs)); 70LDAP_SLAPI_F (int) slapi_int_register_extop LDAP_P((Backend *pBE, ExtendedOp **opList, Slapi_PBlock *pPB)); 71LDAP_SLAPI_F (int) slapi_int_get_extop_plugin LDAP_P((struct berval *reqoid, SLAPI_FUNC *pFuncAddr )); 72LDAP_SLAPI_F (struct berval *) slapi_int_get_supported_extop LDAP_P(( int )); 73LDAP_SLAPI_F (int) slapi_int_read_config LDAP_P((Backend *be, const char *fname, int lineno, 74 int argc, char **argv )); 75LDAP_SLAPI_F (void) slapi_int_plugin_unparse LDAP_P((Backend *be, BerVarray *out )); 76LDAP_SLAPI_F (int) slapi_int_initialize LDAP_P((void)); 77 78/* slapi_ext.c */ 79LDAP_SLAPI_F (int) slapi_int_init_object_extensions LDAP_P((void)); 80LDAP_SLAPI_F (int) slapi_int_free_object_extensions LDAP_P((int objecttype, void *object)); 81LDAP_SLAPI_F (int) slapi_int_create_object_extensions LDAP_P((int objecttype, void *object)); 82LDAP_SLAPI_F (int) slapi_int_clear_object_extensions LDAP_P((int objecttype, void *object)); 83 84/* slapi_overlay.c */ 85LDAP_SLAPI_F (int) slapi_over_is_inst LDAP_P((BackendDB *)); 86LDAP_SLAPI_F (int) slapi_over_config LDAP_P((BackendDB *, ConfigReply *)); 87 88LDAP_END_DECL 89 90#endif /* _PROTO_SLAPI_H */ 91 92