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