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