source: trunk/third/perl/wince/win32iop.h @ 20075

Revision 20075, 10.5 KB checked in by zacheiss, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20074, which included commits to RCS files with non-trunk default branches.
Line 
1/* Time-stamp: <01/08/01 21:00:16 keuchel@w2k> */
2
3#ifndef WIN32IOP_H
4#define WIN32IOP_H
5
6#ifndef START_EXTERN_C
7#ifdef __cplusplus
8#  define START_EXTERN_C extern "C" {
9#  define END_EXTERN_C }
10#  define EXTERN_C extern "C"
11#else
12#  define START_EXTERN_C
13#  define END_EXTERN_C
14#  define EXTERN_C
15#endif
16#endif
17
18#ifndef UNDER_CE
19#if defined(_MSC_VER) || defined(__MINGW32__)
20#  include <sys/utime.h>
21#else
22#  include <utime.h>
23#endif
24#endif
25
26/*
27 * defines for flock emulation
28 */
29#define LOCK_SH 1
30#define LOCK_EX 2
31#define LOCK_NB 4
32#define LOCK_UN 8
33
34/*
35 * Make this as close to original stdio as possible.
36 */
37
38/*
39 * function prototypes for our own win32io layer
40 */
41START_EXTERN_C
42
43DllExport  int *        win32_errno(void);
44DllExport  char ***     win32_environ(void);
45DllExport  FILE*        win32_stdin(void);
46DllExport  FILE*        win32_stdout(void);
47DllExport  FILE*        win32_stderr(void);
48DllExport  int          win32_ferror(FILE *fp);
49DllExport  int          win32_feof(FILE *fp);
50DllExport  char*        win32_strerror(int e);
51
52DllExport  int          win32_fprintf(FILE *pf, const char *format, ...);
53DllExport  int          win32_printf(const char *format, ...);
54DllExport  int          win32_vfprintf(FILE *pf, const char *format, va_list arg);
55DllExport  int          win32_vprintf(const char *format, va_list arg);
56DllExport  size_t       win32_fread(void *buf, size_t size, size_t count, FILE *pf);
57DllExport  size_t       win32_fwrite(const void *buf, size_t size, size_t count, FILE *pf);
58DllExport  FILE*        win32_fopen(const char *path, const char *mode);
59DllExport  FILE*        win32_fdopen(int fh, const char *mode);
60DllExport  FILE*        win32_freopen(const char *path, const char *mode, FILE *pf);
61DllExport  int          win32_fclose(FILE *pf);
62DllExport  int          win32_fputs(const char *s,FILE *pf);
63DllExport  int          win32_fputc(int c,FILE *pf);
64DllExport  int          win32_ungetc(int c,FILE *pf);
65DllExport  int          win32_getc(FILE *pf);
66DllExport  int          win32_fileno(FILE *pf);
67DllExport  void         win32_clearerr(FILE *pf);
68DllExport  int          win32_fflush(FILE *pf);
69DllExport  long         win32_ftell(FILE *pf);
70DllExport  int          win32_fseek(FILE *pf,long offset,int origin);
71DllExport  int          win32_fgetpos(FILE *pf,fpos_t *p);
72DllExport  int          win32_fsetpos(FILE *pf,const fpos_t *p);
73DllExport  void         win32_rewind(FILE *pf);
74DllExport  FILE*        win32_tmpfile(void);
75DllExport  int          win32_tmpfd(void);
76DllExport  void         win32_abort(void);
77DllExport  int          win32_fstat(int fd,struct stat *sbufptr);
78DllExport  int          win32_stat(const char *name,struct stat *sbufptr);
79DllExport  int          win32_pipe( int *phandles, unsigned int psize, int textmode );
80DllExport  PerlIO*      win32_popen( const char *command, const char *mode );
81DllExport  PerlIO*      win32_popenlist(const char *mode, IV narg, SV **args);
82DllExport  int          win32_pclose( FILE *pf);
83DllExport  int          win32_rename( const char *oname, const char *newname);
84DllExport  int          win32_setmode( int fd, int mode);
85DllExport  int          win32_chsize(int fd, Off_t size);
86DllExport  long         win32_lseek( int fd, long offset, int origin);
87DllExport  long         win32_tell( int fd);
88DllExport  int          win32_dup( int fd);
89DllExport  int          win32_dup2(int h1, int h2);
90DllExport  int          win32_open(const char *path, int oflag,...);
91DllExport  int          win32_close(int fd);
92DllExport  int          win32_eof(int fd);
93DllExport  int          win32_read(int fd, void *buf, unsigned int cnt);
94DllExport  int          win32_write(int fd, const void *buf, unsigned int cnt);
95DllExport  int          win32_spawnvp(int mode, const char *cmdname,
96                              const char *const *argv);
97DllExport  int          win32_mkdir(const char *dir, int mode);
98DllExport  int          win32_rmdir(const char *dir);
99DllExport  int          win32_chdir(const char *dir);
100DllExport  int          win32_flock(int fd, int oper);
101DllExport  int          win32_execv(const char *cmdname, const char *const *argv);
102DllExport  int          win32_execvp(const char *cmdname, const char *const *argv);
103DllExport  void         win32_perror(const char *str);
104DllExport  void         win32_setbuf(FILE *pf, char *buf);
105DllExport  int          win32_setvbuf(FILE *pf, char *buf, int type, size_t size);
106DllExport  int          win32_flushall(void);
107DllExport  int          win32_fcloseall(void);
108DllExport  char*        win32_fgets(char *s, int n, FILE *pf);
109DllExport  char*        win32_gets(char *s);
110DllExport  int          win32_fgetc(FILE *pf);
111DllExport  int          win32_putc(int c, FILE *pf);
112DllExport  int          win32_puts(const char *s);
113DllExport  int          win32_getchar(void);
114DllExport  int          win32_putchar(int c);
115DllExport  void*        win32_malloc(size_t size);
116DllExport  void*        win32_calloc(size_t numitems, size_t size);
117DllExport  void*        win32_realloc(void *block, size_t size);
118DllExport  void         win32_free(void *block);
119
120DllExport  int          win32_open_osfhandle(long handle, int flags);
121DllExport  long         win32_get_osfhandle(int fd);
122
123DllExport  DIR*         win32_opendir(char *filename);
124DllExport  struct direct* win32_readdir(DIR *dirp);
125DllExport  long         win32_telldir(DIR *dirp);
126DllExport  void         win32_seekdir(DIR *dirp, long loc);
127DllExport  void         win32_rewinddir(DIR *dirp);
128DllExport  int          win32_closedir(DIR *dirp);
129
130#ifndef USE_WIN32_RTL_ENV
131DllExport  char*        win32_getenv(const char *name);
132DllExport  int          win32_putenv(const char *name);
133#endif
134
135DllExport  unsigned     win32_sleep(unsigned int);
136DllExport  int          win32_times(struct tms *timebuf);
137DllExport  unsigned     win32_alarm(unsigned int sec);
138DllExport  int          win32_stat(const char *path, struct stat *buf);
139DllExport  char*        win32_longpath(char *path);
140DllExport  int          win32_ioctl(int i, unsigned int u, char *data);
141DllExport  int          win32_link(const char *oldname, const char *newname);
142DllExport  int          win32_gettimeofday(struct timeval *tp, void *not_used);
143DllExport  int          win32_unlink(const char *f);
144DllExport  int          win32_utime(const char *f, struct utimbuf *t);
145DllExport  int          win32_uname(struct utsname *n);
146DllExport  int          win32_wait(int *status);
147DllExport  int          win32_waitpid(int pid, int *status, int flags);
148DllExport  int          win32_kill(int pid, int sig);
149DllExport  unsigned long        win32_os_id(void);
150DllExport  void*        win32_dynaload(const char*filename);
151DllExport  int          win32_access(const char *path, int mode);
152DllExport  int          win32_chmod(const char *path, int mode);
153DllExport  int          win32_getpid(void);
154DllExport  Sighandler_t win32_signal(int sig, Sighandler_t subcode);
155
156DllExport char *        win32_crypt(const char *txt, const char *salt);
157
158END_EXTERN_C
159
160/*
161 * the following six(6) is #define in stdio.h
162 */
163#ifndef WIN32IO_IS_STDIO
164#undef errno
165#undef environ
166#undef stderr
167#undef stdin
168#undef stdout
169#undef ferror
170#undef feof
171#undef fclose
172#undef pipe
173#undef pause
174#undef sleep
175#undef times
176#undef alarm
177#undef ioctl
178#undef unlink
179#undef utime
180#undef uname
181#undef wait
182
183#ifdef __BORLANDC__
184#undef ungetc
185#undef getc
186#undef putc
187#undef getchar
188#undef putchar
189#undef fileno
190#endif
191
192#define stderr                          win32_stderr()
193#define stdout                          win32_stdout()
194#define stdin                           win32_stdin()
195#define feof(f)                         win32_feof(f)
196#define ferror(f)                       win32_ferror(f)
197#define errno                           (*win32_errno())
198#define environ                         (*win32_environ())
199#define strerror                        win32_strerror
200
201/*
202 * redirect to our own version
203 */
204#undef fprintf
205#define fprintf                 win32_fprintf
206#undef vfprintf
207#define vfprintf                win32_vfprintf
208#undef printf
209#define printf                  win32_printf
210#undef vprintf
211#define vprintf                 win32_vprintf
212#undef fread
213#define fread(buf,size,count,f)  win32_fread(buf,size,count,f)
214#undef fwrite
215#define fwrite(buf,size,count,f) win32_fwrite(buf,size,count,f)
216#undef fopen
217#define fopen                   win32_fopen
218#undef fdopen
219#define fdopen                  win32_fdopen
220#undef freopen
221#define freopen                 win32_freopen
222#define fclose(f)               win32_fclose(f)
223#undef fputs
224#define fputs(s,f)              win32_fputs(s,f)
225#undef fputc
226#define fputc(c,f)              win32_fputc(c,f)
227#undef ungetc
228#define ungetc(c,f)             win32_ungetc(c,f)
229#undef getc
230#define getc(f)                 win32_getc(f)
231#undef fileno
232#define fileno(f)               win32_fileno(f)
233#undef clearerr
234#define clearerr(f)             win32_clearerr(f)
235#undef fflush
236#define fflush(f)               win32_fflush(f)
237#undef ftell
238#define ftell(f)                win32_ftell(f)
239#undef fseek
240#define fseek(f,o,w)            win32_fseek(f,o,w)
241#undef fgetpos
242#define fgetpos(f,p)            win32_fgetpos(f,p)
243#undef fsetpos
244#define fsetpos(f,p)            win32_fsetpos(f,p)
245#undef rewind
246#define rewind(f)               win32_rewind(f)
247#define tmpfile()               win32_tmpfile()
248#define abort()                 win32_abort()
249#define fstat(fd,bufptr)        win32_fstat(fd,bufptr)
250#define stat(pth,bufptr)        win32_stat(pth,bufptr)
251#define longpath(pth)           win32_longpath(pth)
252#define rename(old,new)         win32_rename(old,new)
253#define setmode(fd,mode)        win32_setmode(fd,mode)
254#define lseek(fd,offset,orig)   win32_lseek(fd,offset,orig)
255#define tell(fd)                win32_tell(fd)
256#define dup(fd)                 win32_dup(fd)
257#define dup2(fd1,fd2)           win32_dup2(fd1,fd2)
258#define open                    win32_open
259#define close(fd)               win32_close(fd)
260#define eof(fd)                 win32_eof(fd)
261#define read(fd,b,s)            win32_read(fd,b,s)
262#define write(fd,b,s)           win32_write(fd,b,s)
263#define _open_osfhandle         win32_open_osfhandle
264#define _get_osfhandle          win32_get_osfhandle
265#define spawnvp                 win32_spawnvp
266#define mkdir                   win32_mkdir
267#define rmdir                   win32_rmdir
268#define chdir                   win32_chdir
269#define flock(fd,o)             win32_flock(fd,o)
270#define execv                   win32_execv
271#define execvp                  win32_execvp
272#define perror                  win32_perror
273#define setbuf                  win32_setbuf
274#undef setvbuf
275#define setvbuf                 win32_setvbuf
276#undef flushall
277#define flushall                win32_flushall
278#undef fcloseall
279#define fcloseall               win32_fcloseall
280#undef fgets
281#define fgets                   win32_fgets
282#undef gets
283#define gets                    win32_gets
284#undef fgetc
285#define fgetc                   win32_fgetc
286#undef putc
287#define putc                    win32_putc
288#undef puts
289#define puts                    win32_puts
290#undef getchar
291#define getchar                 win32_getchar
292#undef putchar
293#define putchar                 win32_putchar
294#define access(p,m)             win32_access(p,m)
295#define chmod(p,m)              win32_chmod(p,m)
296
297
298#if !defined(MYMALLOC) || !defined(PERL_CORE)
299#undef malloc
300#undef calloc
301#undef realloc
302#undef free
303#define malloc                  win32_malloc
304#define calloc                  win32_calloc
305#define realloc                 win32_realloc
306#define free                    win32_free
307#endif
308
309#define pipe(fd)                win32_pipe((fd), 512, O_BINARY)
310#define pause()                 win32_sleep((32767L << 16) + 32767)
311#define sleep                   win32_sleep
312#define times                   win32_times
313#define alarm                   win32_alarm
314#define ioctl                   win32_ioctl
315#define link                    win32_link
316#define unlink                  win32_unlink
317#define utime                   win32_utime
318#define uname                   win32_uname
319#define wait                    win32_wait
320#define waitpid                 win32_waitpid
321#define kill                    win32_kill
322
323#define opendir                 win32_opendir
324#define readdir                 win32_readdir
325#define telldir                 win32_telldir
326#define seekdir                 win32_seekdir
327#define rewinddir               win32_rewinddir
328#define closedir                win32_closedir
329#define os_id                   win32_os_id
330#define getpid                  win32_getpid
331
332#undef crypt
333#define crypt(t,s)              win32_crypt(t,s)
334
335#ifndef USE_WIN32_RTL_ENV
336#undef getenv
337#define getenv win32_getenv
338#undef putenv
339#define putenv win32_putenv
340#endif
341
342#endif /* WIN32IO_IS_STDIO */
343#endif /* WIN32IOP_H */
344
Note: See TracBrowser for help on using the repository browser.