1 /* -*- c-basic-offset:2; tab-width:2; indent-tabs-mode:nil -*- */
2 
3 #ifndef __BL_UNISTD_H__
4 #define __BL_UNISTD_H__
5 
6 /* Wrapper functions of <unistd.h> */
7 
8 #include "bl_def.h"
9 #include "bl_types.h"
10 
11 #ifdef HAVE_USLEEP
12 
13 #include <unistd.h>
14 
15 #define bl_usleep(microsec) usleep(microsec)
16 
17 #else
18 
19 #define bl_usleep(microsec) __bl_usleep(microsec)
20 
21 int __bl_usleep(u_int microseconds);
22 
23 #endif
24 
25 #ifdef HAVE_SETENV
26 
27 #include <stdlib.h>
28 
29 #define bl_setenv(name, value, overwrite) setenv(name, value, overwrite)
30 
31 #else /* HAVE_SETENV */
32 
33 #ifdef USE_WIN32API
34 
35 /* getenv() doesn't get the value set by bl_setenv(). */
36 #define bl_setenv(name, value, overwrite) SetEnvironmentVariableA(name, value)
37 
38 #else /* USE_WIN32API */
39 
40 #define bl_setenv __bl_setenv
41 
42 int __bl_setenv(const char *name, const char *value, int overwrite);
43 
44 #endif /* USE_WIN32API */
45 
46 #endif /* HAVE_SETENV */
47 
48 #ifdef HAVE_UNSETENV
49 
50 #include <stdlib.h>
51 
52 #define bl_unsetenv(name) unsetenv(name)
53 
54 #else /* HAVE_SETENV */
55 
56 #ifdef USE_WIN32API
57 
58 #define bl_unsetenv(name) SetEnvironmentVariableA(name, NULL)
59 
60 #else /* USE_WIN32API */
61 
62 #define bl_unsetenv(name) bl_setenv(name, "", 1);
63 
64 #endif /* USE_WIN32API */
65 
66 #endif /* HAVE_UNSETENV */
67 
68 #ifdef HAVE_GETUID
69 
70 #include <unistd.h>
71 
72 #define bl_getuid getuid
73 
74 #else
75 
76 #define bl_getuid __bl_getuid
77 
78 uid_t __bl_getuid(void);
79 
80 #endif
81 
82 #ifdef HAVE_GETGID
83 
84 #include <unistd.h>
85 
86 #define bl_getgid getgid
87 
88 #else
89 
90 #define bl_getgid __bl_getgid
91 
92 gid_t __bl_getgid(void);
93 
94 #endif
95 
96 /* XXX vt_pty_unix.c which uses bl_killpg() has already included it. */
97 /* #include  <signal.h> */
98 
99 #ifdef HAVE_KILLPG
100 
101 #define bl_killpg(pid, sig) killpg(pid, sig)
102 
103 #else
104 
105 #define bl_killpg(pid, sig) kill(-pid, sig)
106 
107 #endif
108 
109 #endif
110