source: trunk/third/perl/win32/win32iop.h @ 14545

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