Clean up and document API for hashes
[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             signature_end;
55 } WIN32_IOSUBSYSTEM; 
56
57 typedef WIN32_IOSUBSYSTEM       *PWIN32_IOSUBSYSTEM;
58
59 #endif // WIN32IO_H