summaryrefslogtreecommitdiffstats
path: root/innbbsd/clibrary.h
blob: 92ec82e018e6f7ea82db772d007b00aed50a97b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*  $Revision: 1.1 $
**
**  Here be declarations of routines and variables in the C library.
**  You must #include <sys/types.h> and <stdio.h> before this file.
*/

#if defined(DO_HAVE_UNISTD)
#include <unistd.h>
#endif  /* defined(DO_HAVE_UNISTD) */

#if defined(DO_HAVE_VFORK)
#include <vfork.h>
#endif  /* defined(DO_HAVE_VFORK) */

    /* Generic pointer, used by memcpy, malloc, etc. */
    /* =()<typedef @<POINTER>@ *POINTER;>()= */
typedef char *POINTER;
    /* What is a file offset?  Will not work unless long! */
    /* =()<typedef @<OFFSET_T>@ OFFSET_T;>()= */
typedef long OFFSET_T;
    /* What is the type of an object size? */
    /* =()<typedef @<SIZE_T>@ SIZE_T;>()= */
typedef int SIZE_T;
    /* What is the type of a passwd uid and gid, for use in chown(2)? */
    /* =()<typedef @<UID_T>@ UID_T;>()= */
typedef int UID_T;
    /* =()<typedef @<GID_T>@ GID_T;>()= */
typedef int GID_T;
    /* =()<typedef @<PID_T>@ PID_T;>()= */
typedef int PID_T;
    /* What should a signal handler return? */
    /* =()<#define SIGHANDLER   @<SIGHANDLER>@>()= */
#define SIGHANDLER  void

#if defined(SIG_DFL)
    /* What types of variables can be modified in a signal handler? */
    /* =()<typedef @<SIGVAR>@ SIGVAR;>()= */
typedef int SIGVAR;
#endif  /* defined(SIG_DFL) */

/* =()<#include @<STR_HEADER>@>()= */
#include <string.h>
/* =()<#include @<MEM_HEADER>@>()= */
#include <memory.h>


/*
**  It's a pity we have to go through these contortions, for broken
**  systems that have fd_set but not the FD_SET.
*/
#if defined(FD_SETSIZE)
#define FDSET       fd_set
#else
#include <sys/param.h>
#if !defined(NOFILE)
    error -- #define NOFILE to the number of files allowed on your machine!
#endif  /* !defined(NOFILE) */
#if !defined(howmany)
#define howmany(x, y)   (((x) + ((y) - 1)) / (y))
#endif  /* !defined(howmany) */
#define FD_SETSIZE  NOFILE
#define NFDBITS     (sizeof (long) * 8)
typedef struct _FDSET {
    long    fds_bits[howmany(FD_SETSIZE, NFDBITS)];
} FDSET;
#define FD_SET(n, p)    (p)->fds_bits[(n) / NFDBITS] |= (1 << ((n) % NFDBITS))
#define FD_CLR(n, p)    (p)->fds_bits[(n) / NFDBITS] &= ~(1 << ((n) % NFDBITS))
#define FD_ISSET(n, p)  ((p)->fds_bits[(n) / NFDBITS] & (1 << ((n) % NFDBITS)))
#define FD_ZERO(p)  (void)memset((POINTER)(p), 0, sizeof *(p))
#endif  /* defined(FD_SETSIZE) */


#if !defined(SEEK_SET)
#define SEEK_SET    0
#endif  /* !defined(SEEK_SET) */
#if !defined(SEEK_END)
#define SEEK_END    2
#endif  /* !defined(SEEK_END) */

/*
**  We must use #define to set FREEVAL, since "typedef void FREEVAL;" doesn't
**  work on some broken compilers, sigh.
*/
/* =()<#define FREEVAL @<FREEVAL>@>()= */
#define FREEVAL int

extern int      optind;
extern char     *optarg;
#if !defined(__STDC__)
extern int      errno;
#endif  /* !defined(__STDC__) */

extern char     *getenv();
extern char     *inet_ntoa();
extern char     *mktemp();
#if !defined(strerror)
extern char     *strerror();
#endif  /* !defined(strerror) */
extern long     atol();
extern time_t       time();
extern unsigned long    inet_addr();
extern FREEVAL      free();
extern POINTER      malloc();
extern POINTER      realloc();
#if defined(ACT_MMAP)
extern char     *mmap();
#endif  /* defined(ACT_MMAP) */

/* Some backward systems need this. */
extern FILE *popen();

/* This is in <mystring.h>, but not in some system string headers,
 * so we put it here just in case. */
extern int  strncasecmp();

/* =()<extern @<ABORTVAL>@  abort();>()= */
extern int  abort();
/* =()<extern @<ALARMVAL>@  alarm();>()= */
extern int  alarm();
/* =()<extern @<EXITVAL>@   exit();>()= */
extern void exit();
/* =()<extern @<GETPIDVAL>@ getpid();>()= */
extern int  getpid();
/* =()<extern @<LSEEKVAL>@  lseek();>()= */
extern off_t    lseek();
/* =()<extern @<QSORTVAL>@  qsort();>()= */
extern int  qsort();
/* =()<extern @<SLEEPVAL>@  sleep();>()= */
extern int  sleep();
/* =()<extern @<_EXITVAL>@  _exit();>()= */
extern int  _exit();