Initial (untested) merge of all non-ansi changes on ansiperl branch
[p5sagit/p5-mst-13.2.git] / win32 / win32io.h
1 #ifndef WIN32IO_H
2 #define WIN32IO_H
3
4 #ifdef __BORLANDC__
5 #include <stdarg.h>
6 #define MSconst
7 #else
8 #define MSconst const
9 #endif
10
11 typedef struct {
12 int     signature_begin;
13 int *   (*pfnerrno)(void);
14 char ***(*pfnenviron)(void);
15 FILE*   (*pfnstdin)(void);
16 FILE*   (*pfnstdout)(void);
17 FILE*   (*pfnstderr)(void);
18 int     (*pfnferror)(FILE *fp);
19 int     (*pfnfeof)(FILE *fp);
20 char*   (*pfnstrerror)(int e);
21 int     (*pfnvfprintf)(FILE *pf, const char *format, va_list arg);
22 int     (*pfnvprintf)(const char *format, va_list arg);
23 size_t  (*pfnfread)(void *buf, size_t size, size_t count, FILE *pf);
24 size_t  (*pfnfwrite)(const void *buf, size_t size, size_t count, FILE *pf);
25 FILE*   (*pfnfopen)(const char *path, const char *mode);
26 FILE*   (*pfnfdopen)(int fh,  MSconst char *mode); 
27 FILE*   (*pfnfreopen)(const char *path, const char *mode, FILE *pf);
28 int     (*pfnfclose)(FILE *pf);
29 int     (*pfnfputs)(const char *s,FILE *pf);
30 int     (*pfnfputc)(int c,FILE *pf);
31 int     (*pfnungetc)(int c,FILE *pf);
32 int     (*pfngetc)(FILE *pf);
33 int     (*pfnfileno)(FILE *pf);
34 void    (*pfnclearerr)(FILE *pf);
35 int     (*pfnfflush)(FILE *pf);
36 long    (*pfnftell)(FILE *pf);
37 int     (*pfnfseek)(FILE *pf,long offset,int origin);
38 int     (*pfnfgetpos)(FILE *pf,fpos_t *p);
39 int     (*pfnfsetpos)(FILE *pf,const fpos_t *p);
40 void    (*pfnrewind)(FILE *pf);
41 FILE*   (*pfntmpfile)(void);
42 void    (*pfnabort)(void);
43 int     (*pfnfstat)(int fd,struct stat *bufptr);
44 int     (*pfnstat)(const char *name,struct stat *bufptr);
45 int     (*pfnpipe)( int *phandles, unsigned int psize, int textmode );
46 FILE*   (*pfnpopen)( const char *command, const char *mode );
47 int     (*pfnpclose)( FILE *pf);
48 int     (*pfnsetmode)( int fd, int mode);
49 long    (*pfnlseek)( int fd, long offset, int origin);
50 long    (*pfntell)( int fd);
51 int     (*pfndup)( int fd);
52 int     (*pfndup2)(int h1, int h2);
53 int     (*pfnopen)(const char *path, int oflag,...);
54 int     (*pfnclose)(int fd);
55 int     (*pfneof)(int fd);
56 int     (*pfnread)(int fd, void *buf, unsigned int cnt);
57 int     (*pfnwrite)(int fd, const void *buf, unsigned int cnt);
58 int     (*pfnopenmode)(int mode);
59 int     (*pfn_open_osfhandle)(long handle, int flags);
60 long    (*pfn_get_osfhandle)(int fd);
61 int     (*pfnspawnvp)(int mode, const char *cmdname, MSconst char * const *argv);
62 int     (*pfnmkdir)(const char *path);
63 int     (*pfnrmdir)(const char *path);
64 int     (*pfnchdir)(const char *path);
65 int     (*pfnflock)(int fd, int oper);
66 int     (*pfnexecvp)(const char *cmdname, MSconst char *const *argv);
67 void    (*pfnperror)(const char *str);
68 void    (*pfnsetbuf)(FILE *pf, char *buf);
69 int     (*pfnsetvbuf)(FILE *pf, char *buf, int type, size_t size);
70 int     (*pfnflushall)(void);
71 int     (*pfnfcloseall)(void);
72 char*   (*pfnfgets)(char *s, int n, FILE *pf);
73 char*   (*pfngets)(char *s);
74 int     (*pfnfgetc)(FILE *pf);
75 int     (*pfnputc)(int c, FILE *pf);
76 int     (*pfnputs)(const char *s);
77 int     (*pfngetchar)(void);
78 int     (*pfnputchar)(int c);
79 int     (*pfnfscanf)(FILE *pf, const char *format, ...);
80 int     (*pfnscanf)(const char *format, ...);
81 void*   (*pfnmalloc)(size_t size);
82 void*   (*pfncalloc)(size_t numitems, size_t size);
83 void*   (*pfnrealloc)(void *block, size_t size);
84 void    (*pfnfree)(void *block);
85 int     signature_end;
86 } WIN32_IOSUBSYSTEM; 
87
88 typedef WIN32_IOSUBSYSTEM       *PWIN32_IOSUBSYSTEM;
89
90 #endif /* WIN32IO_H */
91