]> git.sur5r.net Git - openldap/blob - include/ac/unistd.h
b4baba4fe6a77797a5878750b6cf9cde39bb29f8
[openldap] / include / ac / unistd.h
1 /* Generic unistd.h */
2 /*
3  * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms are permitted only
7  * as authorized by the OpenLDAP Public License.  A copy of this
8  * license is available at http://www.OpenLDAP.org/license.html or
9  * in file LICENSE in the top-level directory of the distribution.
10  */
11
12 #ifndef _AC_UNISTD_H
13 #define _AC_UNISTD_H
14
15 #if HAVE_SYS_TYPES_H
16 #       include <sys/types.h>
17 #endif
18
19 #if HAVE_UNISTD_H
20 #       include <unistd.h>
21 #endif
22
23 /* crypt() may be defined in a separate include file */
24 #if HAVE_CRYPT_H
25 #       include <crypt.h>
26 #else
27         extern char *crypt();
28 #endif
29
30 #ifndef HAVE_GETPASS
31 extern char* getpass LDAP_P((const char *getpass));
32 #endif
33
34 /* getopt() defines may be in separate include file */
35 #if HAVE_GETOPT_H
36 #       include <getopt.h>
37
38 #elif !defined(HAVE_GETOPT)
39         /* no getopt, assume we need getopt-compat.h */
40 #       include <getopt-compat.h>
41
42 #else
43         /* assume we need to declare these externs */
44         extern char *optarg;
45         extern int optind, opterr, optopt;
46 #endif
47
48 #ifndef HAVE_TEMPNAM
49         extern char *tempnam(const char *tmpdir, const char *prefix);
50 #endif
51 #ifndef HAVE_MKTEMP
52         extern char *mktemp(char *);
53 #endif
54
55 /* use _POSIX_VERSION for POSIX.1 code */
56
57 /* Setup file locking macros */
58 #if defined (HAVE_LOCKF) && defined (F_LOCK) && defined (F_ULOCK)
59 #       define ldap_lockf(x) lockf(fileno(x),F_LOCK, 0)
60 #       define ldap_unlockf(x) lockf(fileno(x),F_ULOCK, 0)
61 #elif defined (HAVE_FCNTL_H) && defined (F_WRLCK) && defined (F_UNLCK)
62 #       ifndef  NEED_FCNTL_LOCKING
63 #               define NEED_FCNTL_LOCKING
64 #       endif
65 #       include <lutil_lockf.h>
66 #       define ldap_lockf(x) lutil_ldap_lockf(x)
67 #       define ldap_unlockf(x) lutil_ldap_unlockf(x)
68 #elif defined (HAVE_FLOCK) && defined (LOCK_EX) && defined (LOCK_UN)
69 #       if HAVE_SYS_FILE_H
70 #               include <sys/file.h>
71 #       endif
72 #       define ldap_lockf(x) flock(fileno(x),LOCK_EX)
73 #       define ldap_unlockf(x) flock(fileno(x),LOCK_UN)
74 #else
75 #error no_suitable_locking_found
76 #endif
77
78 #endif /* _AC_UNISTD_H */