libgphoto2 photo camera library (libgphoto2) API 2.5.24

gphoto2-port-portability.h
1
20 #ifndef __GPHOTO2_PORT_PORTABILITY_H__
21 #define __GPHOTO2_PORT_PORTABILITY_H__
22
23 #ifdef _GPHOTO2_INTERNAL_CODE
24
25 #if defined(WIN32) && !defined(__WINESRC__)
26
27 /************************************************************************
28 * Begin Windows definitions (but not during WINE compilation)
29 ************************************************************************/
30
31 # include <windows.h>
32 /* done by mingw/wine headers ... defined to struct ... tsaes*/
33 #undef interface
34 # include <sys/types.h>
35 # include <sys/stat.h>
36 # include <string.h>
37 # include <stdio.h>
38 # include <direct.h>
39
40 # ifndef IOLIBS
41 # define IOLIBS "."
42 # endif
43 # define strcasecmp _stricmp
44 # ifndef snprintf
45 # define snprintf _snprintf
46 # endif
47
48 #define __func__ __FUNCTION__
49
50 typedef SSIZE_T ssize_t;
51
52 /* Work-around for readdir() */
53 typedef struct {
54 HANDLE handle;
55 int got_first;
56 WIN32_FIND_DATA search;
57 char dir[1024];
58 char drive[32][2];
59 int drive_count;
60 int drive_index;
61 } GPPORTWINDIR;
62
63
64 /* Directory-oriented functions */
65 # define gp_system_dir GPPORTWINDIR *
66 # define gp_system_dirent WIN32_FIND_DATA *
67 # define gp_system_dir_delim '\\'
68
69 # define sleep(x) usleep((x) * 1000 * 1000)
70
71
72
73 /************************************************************************
74 * End WIN32 definitions
75 ************************************************************************/
76
77 #elif defined(__SOME_OS2_MAGIC_HERE__)
78
79 /************************************************************************
80 * Begin OS/2 definitions
81 ************************************************************************/
82
83 # define strcasecmp(foo,bar) stricmp(foo,bar)
84 # define gp_system_dir_delim '\\'
85
86 # ifndef GPIO_OS2_INCLUDED
87 # define GPIO_OS2_INCLUDED
88 # define IOLIBS getenv("IOLIBS")
89 /*#define IOLIBS "./libgphoto2_port"*/
90 # define RTLD_LAZY 0x001
91
92
93 # ifndef HAVE_TERMIOS_H
94 # define INCL_DOSDEVIOCTL /* DosDevIOCtl values */
95 # define IOCTL_ASYNC 0x0001
96 # define ASYNC_SETBAUDRATE 0x0041
97 /* c_cflag bit meaning */
98 # define CBAUD 0x0000100f
99 # define B0 0x00000000 /* hang up */
100 # define B50 0x00000001
101 # define B75 0x00000002
102 # define B110 0x00000003
103 # define B134 0x00000004
104 # define B150 0x00000005
105 # define B200 0x00000006
106 # define B300 0x00000007
107 # define B600 0x00000008
108 # define B1200 0x00000009
109 # define B1800 0x0000000a
110 # define B2400 0x0000000b
111 # define B4800 0x0000000c
112 # define B9600 0x0000000d
113 # define B19200 0x0000000e
114 # define B38400 0x0000000f
115 # define EXTA B19200
116 # define EXTB B38400
117 # define CSIZE 0x00000030
118 # define CS5 0x00000000
119 # define CS6 0x00000010
120 # define CS7 0x00000020
121 # define CS8 0x00000030
122 # define CSTOPB 0x00000040
123 # define CREAD 0x00000080
124 # define PARENB 0x00000100
125 # define PARODD 0x00000200
126 # define HUPCL 0x00000400
127 # define CLOCAL 0x00000800
128 # define CBAUDEX 0x00001000
129 # define B57600 0x00001001
130 # define B115200 0x00001002
131 # define B230400 0x00001003
132 # define B460800 0x00001004
133 # define B76800 0x00001005
134 # define B153600 0x00001006
135 # define B307200 0x00001007
136 # define B614400 0x00001008
137 # define B921600 0x00001009
138 # define B500000 0x0000100a
139 # define B576000 0x0000100b
140 # define B1000000 0x0000100c
141 # define B1152000 0x0000100d
142 # define B1500000 0x0000100e
143 # define B2000000 0x0000100f
144
145 # endif /* HAVE_TERMIOS_H */
146
147 # define CIBAUD 0x100f0000 /* input baud rate (not used) */
148 # define CMSPAR 0x40000000 /* mark or space (stick) parity */
149 /* #define CRTSCTS 0x80000000 */ /* flow control */
150
151 /* modem lines */
152 # define TIOCM_LE 0x001
153 # define TIOCM_DTR 0x002
154 # define TIOCM_RTS 0x004
155 # define TIOCM_ST 0x008
156 # define TIOCM_SR 0x010
157 # define TIOCM_CTS 0x020
158 # define TIOCM_CAR 0x040
159 # define TIOCM_RNG 0x080
160 # define TIOCM_DSR 0x100
161 # define TIOCM_CD TIOCM_CAR
162 # define TIOCM_RI TIOCM_RNG
163
164 # define TIOCMBIC 0x06C
165 # define TIOCMBIS 0x06B
166 # define TIOCMGET 0x06E
167
168 # endif /* GPIO_OS2_INCLUDED */
169
170 /************************************************************************
171 * End OS/2 definitions
172 ************************************************************************/
173
174 #else
175
176 /************************************************************************
177 * Begin POSIX/XOPEN definitions
178 ************************************************************************/
179
180 /* yummy. :) */
181
182 /* XOPEN needed for usleep */
183 #ifndef _XOPEN_SOURCE
184 # define _XOPEN_SOURCE 500
185 #else
186 # if ((_XOPEN_SOURCE - 0) < 500)
187 # undef _XOPEN_SOURCE
188 # define _XOPEN_SOURCE 500
189 # endif
190 #endif
191
192 /* for nanosleep */
193 # ifndef _POSIX_C_SOURCE
194 # define _POSIX_C_SOURCE 199309
195 # endif
196 # include <time.h>
197
198 # include <strings.h>
199 # include <sys/types.h>
200 # include <dirent.h>
201 #ifdef HAVE_SYS_PARAM_H
202 # include <sys/param.h>
203 #endif
204 # include <sys/stat.h>
205 # include <unistd.h>
206
207
208 /* Directory-oriented functions */
210 # define gp_system_dir DIR *
211
212 # define gp_system_dirent struct dirent *
213
214 # define gp_system_dir_delim '/'
215
216 /************************************************************************
217 * End POSIX/XOPEN definitions
218 ************************************************************************/
219
220 #endif /* else */
221
222
223 /************************************************************************
224 * Begin platform independent portability functions
225 ************************************************************************/
226
227 int gp_system_mkdir (const char *dirname);
228 int gp_system_rmdir (const char *dirname);
229 gp_system_dir gp_system_opendir (const char *dirname);
230 gp_system_dirent gp_system_readdir (gp_system_dir d);
231 const char* gp_system_filename (gp_system_dirent de);
232 int gp_system_closedir (gp_system_dir dir);
233 int gp_system_is_file (const char *filename);
234 int gp_system_is_dir (const char *dirname);
235
236 /************************************************************************
237 * End platform independent portability functions
238 ************************************************************************/
239 #endif /* _GPHOTO2_INTERNAL_CODE */
240
241 #endif /* ifndef __GPHOTO2_PORT_PORTABILITY_H__ */
242 /* end of file */
gp_system_closedir
int gp_system_closedir(gp_system_dir dir)
closedir UNIX functionality
Definition: gphoto2-port-portability.c:249
gp_system_filename
const char * gp_system_filename(gp_system_dirent de)
retrieve UNIX filename out of a directory entry
Definition: gphoto2-port-portability.c:237
gp_system_readdir
gp_system_dirent gp_system_readdir(gp_system_dir d)
readdir UNIX functionality
Definition: gphoto2-port-portability.c:225
gp_system_is_file
int gp_system_is_file(const char *filename)
check if passed filename is a file
Definition: gphoto2-port-portability.c:263
gp_system_rmdir
int gp_system_rmdir(const char *dirname)
rmdir UNIX functionality
Definition: gphoto2-port-portability.c:194
gp_system_mkdir
int gp_system_mkdir(const char *dirname)
mkdir UNIX functionality
Definition: gphoto2-port-portability.c:180
gp_system_opendir
gp_system_dir gp_system_opendir(const char *dirname)
opendir UNIX functionality
Definition: gphoto2-port-portability.c:211
gp_system_is_dir
int gp_system_is_dir(const char *dirname)
check if passed filename is a directory
Definition: gphoto2-port-portability.c:280