Documentation changes for CLONE
[p5sagit/p5-mst-13.2.git] / NetWare / nwperlsys.h
CommitLineData
2986a63f 1/*
2 * Copyright © 2001 Novell, Inc. All Rights Reserved.
3 *
4 * You may distribute under the terms of either the GNU General Public
5 * License or the Artistic License, as specified in the README file.
6 *
7 */
8
9/*
10 * FILENAME : nwperlsys.h
11 * DESCRIPTION : Derives from iperlsys.h and define the platform specific function
12 * Author : SGP
13 * Date Created : June 12th 2001.
14 * Date Modified:
15 */
16
17#ifndef ___NWPerlSys_H___
18#define ___NWPerlSys_H___
19
20
21#include "iperlsys.h"
22
23//Socket related calls
24#include "nw5sck.h"
25
26//Store the Watcom hash list
27#include "nwtinfo.h"
28
29//Watcom hash list
30#include <wchash.h>
31
32/* IPerlMem - Memory management - Begin ==================================================*/
33
34void* PerlMemMalloc(struct IPerlMem* piPerl, size_t size);
35void* PerlMemRealloc(struct IPerlMem* piPerl, void* ptr, size_t size);
36void PerlMemFree(struct IPerlMem* piPerl, void* ptr);
37void* PerlMemCalloc(struct IPerlMem* piPerl, size_t num, size_t size);
38
39struct IPerlMem perlMem =
40{
41 PerlMemMalloc,
42 PerlMemRealloc,
43 PerlMemFree,
44 PerlMemCalloc,
45};
46
47/* IPerlMem - Memory management - End ==================================================*/
48
49/* IPerlDir - Directory Manipulation - Begin =============================================*/
50
51int PerlDirMakedir(struct IPerlDir* piPerl, const char *dirname, int mode);
52int PerlDirChdir(struct IPerlDir* piPerl, const char *dirname);
53int PerlDirRmdir(struct IPerlDir* piPerl, const char *dirname);
54int PerlDirClose(struct IPerlDir* piPerl, DIR *dirp);
55DIR* PerlDirOpen(struct IPerlDir* piPerl, char *filename);
56struct direct * PerlDirRead(struct IPerlDir* piPerl, DIR *dirp);
57void PerlDirRewind(struct IPerlDir* piPerl, DIR *dirp);
58void PerlDirSeek(struct IPerlDir* piPerl, DIR *dirp, long loc);
59long PerlDirTell(struct IPerlDir* piPerl, DIR *dirp);
60
61struct IPerlDir perlDir =
62{
63 PerlDirMakedir,
64 PerlDirChdir,
65 PerlDirRmdir,
66 PerlDirClose,
67 PerlDirOpen,
68 PerlDirRead,
69 PerlDirRewind,
70 PerlDirSeek,
71 PerlDirTell,
72};
73
74/* IPerlDir - Directory Manipulation - End =============================================*/
75
76/* IPerlEnv - Environment related functions - Begin ======================================*/
77
78char* PerlEnvGetenv(struct IPerlEnv* piPerl, const char *varname);
79int PerlEnvPutenv(struct IPerlEnv* piPerl, const char *envstring);
80char* PerlEnvGetenv_len(struct IPerlEnv* piPerl, const char* varname, unsigned long* len);
81int PerlEnvUname(struct IPerlEnv* piPerl, struct utsname *name);
82void PerlEnvClearenv(struct IPerlEnv* piPerl);
83
84//Uncomment the following prototypes and the function names in the structure below
85//whenever it is implemented.
86//The function definition to be put in nwperlsys.c
87
88/*void* PerlEnvGetChildenv(struct IPerlEnv* piPerl);
89void PerlEnvFreeChildenv(struct IPerlEnv* piPerl, void* childEnv);
90char* PerlEnvGetChilddir(struct IPerlEnv* piPerl);
91void PerlEnvFreeChilddir(struct IPerlEnv* piPerl, char* childDir);*/
92
93struct IPerlEnv perlEnv =
94{
95 PerlEnvGetenv,
96 PerlEnvPutenv,
97 PerlEnvGetenv_len,
98 PerlEnvUname,
99 PerlEnvClearenv,
100/* PerlEnvGetChildenv,
101 PerlEnvFreeChildenv,
102 PerlEnvGetChilddir,
103 PerlEnvFreeChilddir,*/
104};
105
106/* IPerlEnv - Environment related functions - Begin ======================================*/
107
108/* IPerlStdio - Stdio functions - Begin ================================================*/
109
110FILE* PerlStdIOStdin(struct IPerlStdIO* piPerl);
111FILE* PerlStdIOStdout(struct IPerlStdIO* piPerl);
112FILE* PerlStdIOStderr(struct IPerlStdIO* piPerl);
113FILE* PerlStdIOOpen(struct IPerlStdIO* piPerl, const char *path, const char *mode);
114int PerlStdIOClose(struct IPerlStdIO* piPerl, FILE* pf);
115int PerlStdIOEof(struct IPerlStdIO* piPerl, FILE* pf);
116int PerlStdIOError(struct IPerlStdIO* piPerl, FILE* pf);
117void PerlStdIOClearerr(struct IPerlStdIO* piPerl, FILE* pf);
118int PerlStdIOGetc(struct IPerlStdIO* piPerl, FILE* pf);
119char* PerlStdIOGetBase(struct IPerlStdIO* piPerl, FILE* pf);
120int PerlStdIOGetBufsiz(struct IPerlStdIO* piPerl, FILE* pf);
121int PerlStdIOGetCnt(struct IPerlStdIO* piPerl, FILE* pf);
122char* PerlStdIOGetPtr(struct IPerlStdIO* piPerl, FILE* pf);
123char* PerlStdIOGets(struct IPerlStdIO* piPerl, FILE* pf, char* s, int n);
124int PerlStdIOPutc(struct IPerlStdIO* piPerl, FILE* pf, int c);
125int PerlStdIOPuts(struct IPerlStdIO* piPerl, FILE* pf, const char *s);
126int PerlStdIOFlush(struct IPerlStdIO* piPerl, FILE* pf);
127int PerlStdIOUngetc(struct IPerlStdIO* piPerl, int c, FILE* pf);
128int PerlStdIOFileno(struct IPerlStdIO* piPerl, FILE* pf);
129FILE* PerlStdIOFdopen(struct IPerlStdIO* piPerl, int fd, const char *mode);
130FILE* PerlStdIOReopen(struct IPerlStdIO* piPerl, const char*path, const char*mode, FILE* pf);
131SSize_t PerlStdIORead(struct IPerlStdIO* piPerl, void *buffer, Size_t size, Size_t count, FILE* pf);
132SSize_t PerlStdIOWrite(struct IPerlStdIO* piPerl, const void *buffer, Size_t size, Size_t count, FILE* pf);
133void PerlStdIOSetBuf(struct IPerlStdIO* piPerl, FILE* pf, char* buffer);
134int PerlStdIOSetVBuf(struct IPerlStdIO* piPerl, FILE* pf, char* buffer, int type, Size_t size);
135void PerlStdIOSetCnt(struct IPerlStdIO* piPerl, FILE* pf, int n);
136void PerlStdIOSetPtr(struct IPerlStdIO* piPerl, FILE* pf, char * ptr);
137void PerlStdIOSetlinebuf(struct IPerlStdIO* piPerl, FILE* pf);
138int PerlStdIOPrintf(struct IPerlStdIO* piPerl, FILE* pf, const char *format,...);
139int PerlStdIOVprintf(struct IPerlStdIO* piPerl, FILE* pf, const char *format, va_list arglist);
140long PerlStdIOTell(struct IPerlStdIO* piPerl, FILE* pf);
141int PerlStdIOSeek(struct IPerlStdIO* piPerl, FILE* pf, off_t offset, int origin);
142void PerlStdIORewind(struct IPerlStdIO* piPerl, FILE* pf);
143FILE* PerlStdIOTmpfile(struct IPerlStdIO* piPerl);
144int PerlStdIOGetpos(struct IPerlStdIO* piPerl, FILE* pf, Fpos_t *p);
145int PerlStdIOSetpos(struct IPerlStdIO* piPerl, FILE* pf, const Fpos_t *p);
146void PerlStdIOInit(struct IPerlStdIO* piPerl);
147void PerlStdIOInitOSExtras(struct IPerlStdIO* piPerl);
148int PerlStdIOOpenOSfhandle(struct IPerlStdIO* piPerl, long osfhandle, int flags);
149int PerlStdIOGetOSfhandle(struct IPerlStdIO* piPerl, int filenum);
150FILE* PerlStdIOFdupopen(struct IPerlStdIO* piPerl, FILE* pf);
151
152struct IPerlStdIO perlStdIO =
153{
154 PerlStdIOStdin,
155 PerlStdIOStdout,
156 PerlStdIOStderr,
157 PerlStdIOOpen,
158 PerlStdIOClose,
159 PerlStdIOEof,
160 PerlStdIOError,
161 PerlStdIOClearerr,
162 PerlStdIOGetc,
163 PerlStdIOGetBase,
164 PerlStdIOGetBufsiz,
165 PerlStdIOGetCnt,
166 PerlStdIOGetPtr,
167 PerlStdIOGets,
168 PerlStdIOPutc,
169 PerlStdIOPuts,
170 PerlStdIOFlush,
171 PerlStdIOUngetc,
172 PerlStdIOFileno,
173 PerlStdIOFdopen,
174 PerlStdIOReopen,
175 PerlStdIORead,
176 PerlStdIOWrite,
177 PerlStdIOSetBuf,
178 PerlStdIOSetVBuf,
179 PerlStdIOSetCnt,
180 PerlStdIOSetPtr,
181 PerlStdIOSetlinebuf,
182 PerlStdIOPrintf,
183 PerlStdIOVprintf,
184 PerlStdIOTell,
185 PerlStdIOSeek,
186 PerlStdIORewind,
187 PerlStdIOTmpfile,
188 PerlStdIOGetpos,
189 PerlStdIOSetpos,
190 PerlStdIOInit,
191 PerlStdIOInitOSExtras,
192 PerlStdIOFdupopen,
193};
194
195/* IPerlStdio - Stdio functions - End ================================================*/
196
197/* IPerlLIO - Low-level IO functions - Begin =============================================*/
198
199int PerlLIOAccess(struct IPerlLIO* piPerl, const char *path, int mode);
200int PerlLIOChmod(struct IPerlLIO* piPerl, const char *filename, int pmode);
201int PerlLIOChown(struct IPerlLIO* piPerl, const char *filename, uid_t owner, gid_t group);
202int PerlLIOChsize(struct IPerlLIO* piPerl, int handle, long size);
203int PerlLIOClose(struct IPerlLIO* piPerl, int handle);
204int PerlLIODup(struct IPerlLIO* piPerl, int handle);
205int PerlLIODup2(struct IPerlLIO* piPerl, int handle1, int handle2);
206int PerlLIOFlock(struct IPerlLIO* piPerl, int fd, int oper);
207int PerlLIOFileStat(struct IPerlLIO* piPerl, int handle, struct stat *buffer);
208int PerlLIOIOCtl(struct IPerlLIO* piPerl, int i, unsigned int u, char *data);
209int PerlLIOIsatty(struct IPerlLIO* piPerl, int fd);
210int PerlLIOLink(struct IPerlLIO* piPerl, const char*oldname, const char *newname);
211long PerlLIOLseek(struct IPerlLIO* piPerl, int handle, long offset, int origin);
212int PerlLIOLstat(struct IPerlLIO* piPerl, const char *path, struct stat *buffer);
213char* PerlLIOMktemp(struct IPerlLIO* piPerl, char *Template);
214int PerlLIOOpen(struct IPerlLIO* piPerl, const char *filename, int oflag);
215int PerlLIOOpen3(struct IPerlLIO* piPerl, const char *filename, int oflag, int pmode);
216int PerlLIORead(struct IPerlLIO* piPerl, int handle, void *buffer, unsigned int count);
217int PerlLIORename(struct IPerlLIO* piPerl, const char *OldFileName, const char *newname);
218int PerlLIOSetmode(struct IPerlLIO* piPerl, FILE *fp, int mode);
219int PerlLIONameStat(struct IPerlLIO* piPerl, const char *path, struct stat *buffer);
220char* PerlLIOTmpnam(struct IPerlLIO* piPerl, char *string);
221int PerlLIOUmask(struct IPerlLIO* piPerl, int pmode);
222int PerlLIOUnlink(struct IPerlLIO* piPerl, const char *filename);
223int PerlLIOUtime(struct IPerlLIO* piPerl, char *filename, struct utimbuf *times);
224int PerlLIOWrite(struct IPerlLIO* piPerl, int handle, const void *buffer, unsigned int count);
225
226struct IPerlLIO perlLIO =
227{
228 PerlLIOAccess,
229 PerlLIOChmod,
230 PerlLIOChown,
231 PerlLIOChsize,
232 PerlLIOClose,
233 PerlLIODup,
234 PerlLIODup2,
235 PerlLIOFlock,
236 PerlLIOFileStat,
237 PerlLIOIOCtl,
238 PerlLIOIsatty,
239 PerlLIOLink,
240 PerlLIOLseek,
241 PerlLIOLstat,
242 PerlLIOMktemp,
243 PerlLIOOpen,
244 PerlLIOOpen3,
245 PerlLIORead,
246 PerlLIORename,
247 PerlLIOSetmode,
248 PerlLIONameStat,
249 PerlLIOTmpnam,
250 PerlLIOUmask,
251 PerlLIOUnlink,
252 PerlLIOUtime,
253 PerlLIOWrite,
254};
255
256/* IPerlLIO - Low-level IO functions - End ==============================================*/
257
258/* IPerlProc - Process control functions - Begin =========================================*/
259
260void PerlProcAbort(struct IPerlProc* piPerl);
261char * PerlProcCrypt(struct IPerlProc* piPerl, const char* clear, const char* salt);
262void PerlProcExit(struct IPerlProc* piPerl, int status);
263void PerlProc_Exit(struct IPerlProc* piPerl, int status);
264int PerlProcExecl(struct IPerlProc* piPerl, const char *cmdname, const char *arg0, const char *arg1, const char *arg2, const char *arg3);
265int PerlProcExecv(struct IPerlProc* piPerl, const char *cmdname, const char *const *argv);
266int PerlProcExecvp(struct IPerlProc* piPerl, const char *cmdname, const char *const *argv);
267uid_t PerlProcGetuid(struct IPerlProc* piPerl);
268uid_t PerlProcGeteuid(struct IPerlProc* piPerl);
269gid_t PerlProcGetgid(struct IPerlProc* piPerl);
270gid_t PerlProcGetegid(struct IPerlProc* piPerl);
271char * PerlProcGetlogin(struct IPerlProc* piPerl);
272int PerlProcKill(struct IPerlProc* piPerl, int pid, int sig);
273int PerlProcKillpg(struct IPerlProc* piPerl, int pid, int sig);
274int PerlProcPauseProc(struct IPerlProc* piPerl);
275PerlIO* PerlProcPopen(struct IPerlProc* piPerl, const char *command, const char *mode);
276int PerlProcPclose(struct IPerlProc* piPerl, PerlIO *stream);
277int PerlProcPipe(struct IPerlProc* piPerl, int *phandles);
278int PerlProcSetuid(struct IPerlProc* piPerl, uid_t u);
279int PerlProcSetgid(struct IPerlProc* piPerl, gid_t g);
280int PerlProcSleep(struct IPerlProc* piPerl, unsigned int s);
281int PerlProcTimes(struct IPerlProc* piPerl, struct tms *timebuf);
282int PerlProcWait(struct IPerlProc* piPerl, int *status);
283int PerlProcWaitpid(struct IPerlProc* piPerl, int pid, int *status, int flags);
284Sighandler_t PerlProcSignal(struct IPerlProc* piPerl, int sig, Sighandler_t subcode);
285int PerlProcFork(struct IPerlProc* piPerl);
286int PerlProcGetpid(struct IPerlProc* piPerl);
287int PerlProcSpawn(struct IPerlProc* piPerl, char* cmds);
288int PerlProcSpawnvp(struct IPerlProc* piPerl, int mode, const char *cmdname, const char *const *argv);
289int PerlProcASpawn(struct IPerlProc* piPerl, void *vreally, void **vmark, void **vsp);
290
291struct IPerlProc perlProc =
292{
293 PerlProcAbort,
294 PerlProcCrypt,
295 PerlProcExit,
296 PerlProc_Exit,
297 PerlProcExecl,
298 PerlProcExecv,
299 PerlProcExecvp,
300 PerlProcGetuid,
301 PerlProcGeteuid,
302 PerlProcGetgid,
303 PerlProcGetegid,
304 PerlProcGetlogin,
305 PerlProcKill,
306 PerlProcKillpg,
307 PerlProcPauseProc,
308 PerlProcPopen,
309 PerlProcPclose,
310 PerlProcPipe,
311 PerlProcSetuid,
312 PerlProcSetgid,
313 PerlProcSleep,
314 PerlProcTimes,
315 PerlProcWait,
316 PerlProcWaitpid,
317 PerlProcSignal,
318 PerlProcFork,
319 PerlProcGetpid,
320 //PerlProcLastHost;
321 //PerlProcPopenList;
322};
323
324/* IPerlProc - Process control functions - End =========================================*/
325
326/* IPerlSock - Socket functions - Begin ==================================================*/
327
328u_long PerlSockHtonl(struct IPerlSock* piPerl, u_long hostlong);
329u_short PerlSockHtons(struct IPerlSock* piPerl, u_short hostshort);
330u_long PerlSockNtohl(struct IPerlSock* piPerl, u_long netlong);
331u_short PerlSockNtohs(struct IPerlSock* piPerl, u_short netshort);
332SOCKET PerlSockAccept(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* addr, int* addrlen);
333int PerlSockBind(struct IPerlSock* piPerl, SOCKET s, const struct sockaddr* name, int namelen);
334int PerlSockConnect(struct IPerlSock* piPerl, SOCKET s, const struct sockaddr* name, int namelen);
335void PerlSockEndhostent(struct IPerlSock* piPerl);
336void PerlSockEndnetent(struct IPerlSock* piPerl);
337void PerlSockEndprotoent(struct IPerlSock* piPerl);
338void PerlSockEndservent(struct IPerlSock* piPerl);
339struct hostent* PerlSockGethostbyaddr(struct IPerlSock* piPerl, const char* addr, int len, int type);
340struct hostent* PerlSockGethostbyname(struct IPerlSock* piPerl, const char* name);
341struct hostent* PerlSockGethostent(struct IPerlSock* piPerl);
342int PerlSockGethostname(struct IPerlSock* piPerl, char* name, int namelen);
343struct netent * PerlSockGetnetbyaddr(struct IPerlSock* piPerl, long net, int type);
344struct netent * PerlSockGetnetbyname(struct IPerlSock* piPerl, const char *name);
345struct netent * PerlSockGetnetent(struct IPerlSock* piPerl);
346int PerlSockGetpeername(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* name, int* namelen);
347struct protoent* PerlSockGetprotobyname(struct IPerlSock* piPerl, const char* name);
348struct protoent* PerlSockGetprotobynumber(struct IPerlSock* piPerl, int number);
349struct protoent* PerlSockGetprotoent(struct IPerlSock* piPerl);
350struct servent* PerlSockGetservbyname(struct IPerlSock* piPerl, const char* name, const char* proto);
351struct servent* PerlSockGetservbyport(struct IPerlSock* piPerl, int port, const char* proto);
352struct servent* PerlSockGetservent(struct IPerlSock* piPerl);
353int PerlSockGetsockname(struct IPerlSock* piPerl, SOCKET s, struct sockaddr* name, int* namelen);
354int PerlSockGetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, char* optval, int* optlen);
355unsigned long PerlSockInetAddr(struct IPerlSock* piPerl, const char* cp);
356char* PerlSockInetNtoa(struct IPerlSock* piPerl, struct in_addr in);
357int PerlSockListen(struct IPerlSock* piPerl, SOCKET s, int backlog);
358int PerlSockRecv(struct IPerlSock* piPerl, SOCKET s, char* buffer, int len, int flags);
359int PerlSockRecvfrom(struct IPerlSock* piPerl, SOCKET s, char* buffer, int len, int flags, struct sockaddr* from, int* fromlen);
360int PerlSockSelect(struct IPerlSock* piPerl, int nfds, char* readfds, char* writefds, char* exceptfds, const struct timeval* timeout);
361int PerlSockSend(struct IPerlSock* piPerl, SOCKET s, const char* buffer, int len, int flags);
362int PerlSockSendto(struct IPerlSock* piPerl, SOCKET s, const char* buffer, int len, int flags, const struct sockaddr* to, int tolen);
363void PerlSockSethostent(struct IPerlSock* piPerl, int stayopen);
364void PerlSockSetnetent(struct IPerlSock* piPerl, int stayopen);
365void PerlSockSetprotoent(struct IPerlSock* piPerl, int stayopen);
366void PerlSockSetservent(struct IPerlSock* piPerl, int stayopen);
367int PerlSockSetsockopt(struct IPerlSock* piPerl, SOCKET s, int level, int optname, const char* optval, int optlen);
368int PerlSockShutdown(struct IPerlSock* piPerl, SOCKET s, int how);
369SOCKET PerlSockSocket(struct IPerlSock* piPerl, int af, int type, int protocol);
370int PerlSockSocketpair(struct IPerlSock* piPerl, int domain, int type, int protocol, int* fds);
371int PerlSockIoctlsocket(struct IPerlSock* piPerl, SOCKET s, long cmd, u_long *argp);
372
373struct IPerlSock perlSock =
374{
375 PerlSockHtonl,
376 PerlSockHtons,
377 PerlSockNtohl,
378 PerlSockNtohs,
379 PerlSockAccept,
380 PerlSockBind,
381 PerlSockConnect,
382 PerlSockEndhostent,
383 PerlSockEndnetent,
384 PerlSockEndprotoent,
385 PerlSockEndservent,
386 PerlSockGethostname,
387 PerlSockGetpeername,
388 PerlSockGethostbyaddr,
389 PerlSockGethostbyname,
390 PerlSockGethostent,
391 PerlSockGetnetbyaddr,
392 PerlSockGetnetbyname,
393 PerlSockGetnetent,
394 PerlSockGetprotobyname,
395 PerlSockGetprotobynumber,
396 PerlSockGetprotoent,
397 PerlSockGetservbyname,
398 PerlSockGetservbyport,
399 PerlSockGetservent,
400 PerlSockGetsockname,
401 PerlSockGetsockopt,
402 PerlSockInetAddr,
403 PerlSockInetNtoa,
404 PerlSockListen,
405 PerlSockRecv,
406 PerlSockRecvfrom,
407 PerlSockSelect,
408 PerlSockSend,
409 PerlSockSendto,
410 PerlSockSethostent,
411 PerlSockSetnetent,
412 PerlSockSetprotoent,
413 PerlSockSetservent,
414 PerlSockSetsockopt,
415 PerlSockShutdown,
416 PerlSockSocket,
417 PerlSockSocketpair,
418};
419
420/* IPerlSock - Socket functions - End ====================================================*/
421
422#endif /* ___NWPerlSys_H___ */