-#ifdef MACOS
-#define SAFEMEMCPY( d, s, n ) BlockMoveData( (Ptr)s, (Ptr)d, n )
-#else /* MACOS */
-#ifdef sunos4
-#define SAFEMEMCPY( d, s, n ) bcopy( s, d, n )
-#else /* sunos4 */
-#define SAFEMEMCPY( d, s, n ) memmove( d, s, n )
-#endif /* sunos4 */
-#endif /* MACOS */
-
-
-#ifdef __cplusplus
-}
-#endif
+typedef int (*BERDecodeCallback) LDAP_P((
+ BerElement *ber,
+ void *data,
+ int mode ));
+
+LDAP_F( unsigned long )
+ber_get_tag LDAP_P((
+ BerElement *ber ));
+
+LDAP_F( unsigned long )
+ber_skip_tag LDAP_P((
+ BerElement *ber,
+ unsigned long *len ));
+
+LDAP_F( unsigned long )
+ber_peek_tag LDAP_P((
+ LDAP_CONST BerElement *ber, /* not const in c-api-02 */
+ unsigned long *len ));
+
+LDAP_F( unsigned long )
+ber_get_int LDAP_P((
+ BerElement *ber,
+ long *num ));
+
+LDAP_F( unsigned long )
+ber_get_stringb LDAP_P((
+ BerElement *ber,
+ char *buf,
+ unsigned long *len ));
+
+LDAP_F( unsigned long )
+ber_get_stringa LDAP_P((
+ BerElement *ber, char **buf ));
+
+LDAP_F( unsigned long )
+ber_get_stringal LDAP_P((
+ BerElement *ber,
+ struct berval **bv ));
+
+LDAP_F( unsigned long )
+ber_get_bitstringa LDAP_P((
+ BerElement *ber,
+ char **buf,
+ unsigned long *len ));
+
+LDAP_F( unsigned long )
+ber_get_null LDAP_P((
+ BerElement *ber ));
+
+LDAP_F( unsigned long )
+ber_get_boolean LDAP_P((
+ BerElement *ber,
+ int *boolval ));
+
+LDAP_F( unsigned long )
+ber_first_element LDAP_P((
+ BerElement *ber,
+ unsigned long *len,
+ char **last ));
+
+LDAP_F( unsigned long )
+ber_next_element LDAP_P((
+ BerElement *ber,
+ unsigned long *len,
+ char *last ));
+
+LDAP_F( unsigned long )
+ber_scanf LDAP_P((
+ BerElement *ber,
+ LDAP_CONST char *fmt,
+ ... ));
+
+LDAP_F( void )
+ber_bvfree LDAP_P((
+ struct berval *bv ));
+
+LDAP_F( void )
+ber_bvecfree LDAP_P((
+ struct berval **bv ));
+
+LDAP_F( struct berval * )
+ber_bvdup LDAP_P((
+ LDAP_CONST struct berval *bv ));
+
+LDAP_F( void )
+ber_set_string_translators LDAP_P((
+ BerElement *ber,
+ BERTranslateProc encode_proc,
+ BERTranslateProc decode_proc ));
+
+/*
+ * in encode.c
+ */
+typedef int (*BEREncodeCallback) LDAP_P((
+ BerElement *ber,
+ void *data ));
+
+LDAP_F( int )
+ber_put_enum LDAP_P((
+ BerElement *ber,
+ long num,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_put_int LDAP_P((
+ BerElement *ber,
+ long num,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_put_ostring LDAP_P((
+ BerElement *ber,
+ LDAP_CONST char *str,
+ unsigned long len,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_put_berval LDAP_P((
+ BerElement *ber,
+ LDAP_CONST struct berval *bv,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_put_string LDAP_P((
+ BerElement *ber,
+ LDAP_CONST char *str,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_put_bitstring LDAP_P((
+ BerElement *ber,
+ LDAP_CONST char *str,
+ unsigned long bitlen,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_put_null LDAP_P((
+ BerElement *ber,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_put_boolean LDAP_P((
+ BerElement *ber,
+ int boolval,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_start_seq LDAP_P((
+ BerElement *ber,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_start_set LDAP_P((
+ BerElement *ber,
+ unsigned long tag ));
+
+LDAP_F( int )
+ber_put_seq LDAP_P((
+ BerElement *ber ));
+
+LDAP_F( int )
+ber_put_set LDAP_P((
+ BerElement *ber ));
+
+LDAP_F( int )
+ber_printf LDAP_P((
+ BerElement *ber,
+ LDAP_CONST char *fmt,
+ ... ));
+/*
+ * in io.c:
+ */
+
+LDAP_F( long )
+ber_read LDAP_P((
+ BerElement *ber,
+ char *buf,
+ unsigned long len ));
+
+LDAP_F( long )
+ber_write LDAP_P((
+ BerElement *ber,
+ LDAP_CONST char *buf,
+ unsigned long len,
+ int nosos ));
+
+LDAP_F( void )
+ber_free LDAP_P((
+ BerElement *ber,
+ int freebuf ));
+
+LDAP_F( void )
+ber_clear LDAP_P((
+ BerElement *ber,
+ int freebuf ));
+
+LDAP_F( int )
+ber_flush LDAP_P((
+ Sockbuf *sb, BerElement *ber, int freeit ));
+
+LDAP_F( BerElement * )
+ber_alloc LDAP_P(( void )); /* DEPRECATED */
+
+LDAP_F( BerElement * )
+der_alloc LDAP_P(( void )); /* DEPRECATED */
+
+LDAP_F( BerElement * )
+ber_alloc_t LDAP_P((
+ int options ));
+
+LDAP_F( BerElement * )
+ber_dup LDAP_P((
+ LDAP_CONST BerElement *ber ));
+
+LDAP_F( unsigned long )
+ber_get_next LDAP_P((
+ Sockbuf *sb,
+ unsigned long *len,
+ BerElement *ber ));
+
+LDAP_F( void )
+ber_init_w_nullc LDAP_P((
+ BerElement *ber,
+ int options ));
+
+LDAP_F( void )
+ber_reset LDAP_P((
+ BerElement *ber,
+ int was_writing ));
+
+/*
+ * LBER draft-ietf-ldapext-ldap-c-api-01 routines
+ */
+LDAP_F( BerElement * )
+ber_init LDAP_P((
+ struct berval *bv ));
+
+LDAP_F( int )
+ber_flatten LDAP_P((
+ LDAP_CONST BerElement *ber,
+ struct berval **bvPtr ));
+
+/*
+ * LBER ber accessor functions
+ */
+
+LDAP_F( int )
+ber_get_option LDAP_P((
+ void *item,
+ int option,
+ void *outvalue));
+
+LDAP_F( int )
+ber_set_option LDAP_P((
+ void *item,
+ int option,
+ LDAP_CONST void *invalue));
+
+/*
+ * LBER sockbuf.c
+ */
+
+LDAP_F( Sockbuf * )
+ber_sockbuf_alloc( void );
+
+LDAP_F( Sockbuf * )
+ber_sockbuf_alloc_fd(
+ int fd );
+
+LDAP_F( void )
+ber_sockbuf_free(
+ Sockbuf *sb );
+
+
+LDAP_END_DECL
+