45a31f7a486c2ba8442e06627123198de25badd1
[p5sagit/p5-mst-13.2.git] / win32 / win32io.h
1 #ifndef WIN32IO_H
2 #define WIN32IO_H
3
4 typedef struct {
5 int     signature_begin;
6 int *   (*pfnerrno)(void);
7 char ***(*pfnenviron)(void);
8 FILE*   (*pfnstdin)(void);
9 FILE*   (*pfnstdout)(void);
10 FILE*   (*pfnstderr)(void);
11 int     (*pfnferror)(FILE *fp);
12 int     (*pfnfeof)(FILE *fp);
13 char*   (*pfnstrerror)(int e);
14 int     (*pfnvfprintf)(FILE *pf, const char *format, va_list arg);
15 int     (*pfnvprintf)(const char *format, va_list arg);
16 size_t  (*pfnfread)(void *buf, size_t size, size_t count, FILE *pf);
17 size_t  (*pfnfwrite)(const void *buf, size_t size, size_t count, FILE *pf);
18 FILE*   (*pfnfopen)(const char *path, const char *mode);
19 FILE*   (*pfnfdopen)(int fh, const char *mode);
20 FILE*   (*pfnfreopen)(const char *path, const char *mode, FILE *pf);
21 int     (*pfnfclose)(FILE *pf);
22 int     (*pfnfputs)(const char *s,FILE *pf);
23 int     (*pfnfputc)(int c,FILE *pf);
24 int     (*pfnungetc)(int c,FILE *pf);
25 int     (*pfngetc)(FILE *pf);
26 int     (*pfnfileno)(FILE *pf);
27 void    (*pfnclearerr)(FILE *pf);
28 int     (*pfnfflush)(FILE *pf);
29 long    (*pfnftell)(FILE *pf);
30 int     (*pfnfseek)(FILE *pf,long offset,int origin);
31 int     (*pfnfgetpos)(FILE *pf,fpos_t *p);
32 int     (*pfnfsetpos)(FILE *pf,const fpos_t *p);
33 void    (*pfnrewind)(FILE *pf);
34 FILE*   (*pfntmpfile)(void);
35 void    (*pfnabort)(void);
36 int     (*pfnfstat)(int fd,struct stat *bufptr);
37 int     (*pfnstat)(const char *name,struct stat *bufptr);
38 int     (*pfnpipe)( int *phandles, unsigned int psize, int textmode );
39 FILE*   (*pfnpopen)( const char *command, const char *mode );
40 int     (*pfnpclose)( FILE *pf);
41 int     (*pfnsetmode)( int fd, int mode);
42 long    (*pfnlseek)( int fd, long offset, int origin);
43 long    (*pfntell)( int fd);
44 int     (*pfndup)( int fd);
45 int     (*pfndup2)(int h1, int h2);
46 int     (*pfnopen)(const char *path, int oflag,...);
47 int     (*pfnclose)(int fd);
48 int     (*pfneof)(int fd);
49 int     (*pfnread)(int fd, void *buf, unsigned int cnt);
50 int     (*pfnwrite)(int fd, const void *buf, unsigned int cnt);
51 int     (*pfnopenmode)(int mode);
52 int     (*pfn_open_osfhandle)(long handle, int flags);
53 long    (*pfn_get_osfhandle)(int fd);
54 int     (*pfnspawnvpe)(int mode, const char *cmdname, const char *const *argv, const char *const *envp);
55 int     (*pfnmkdir)(const char *path);
56 int     (*pfnrmdir)(const char *path);
57 int     (*pfnchdir)(const char *path);
58 int     (*pfnflock)(int fd, int oper);
59 int             signature_end;
60 } WIN32_IOSUBSYSTEM; 
61
62 typedef WIN32_IOSUBSYSTEM       *PWIN32_IOSUBSYSTEM;
63
64 #endif /* WIN32IO_H */