DEADSOFTWARE

fileno added
[bbcp.git] / BlackBox / _Linux_ / Lin / Mod / Libc.txt
1 MODULE LinLibc ["libc.so.6"];
3 (* THIS IS TEXT COPY OF Libc.odc *)
4 (* DO NOT EDIT *)
6 IMPORT SYSTEM;
8 CONST
9 NULL* = 0H;
10 TRUE* = 1;
11 FALSE* = 0;
13 (* file constants *)
14 SEEK_SET* = 0;
15 SEEK_CUR* = 1;
16 SEEK_END* = 2;
17 NAME_MAX* = 256;
19 (* The value of CLOCKS_PER_SEC is required to be 1 million on all XSI-conformant systems.*)
20 CLOCKS_PER_SECOND* = 1000000;
22 (* temp directory defined in stdio.h *)
23 P_tmpdir* = "/tmp";
25 (* signal constants *) (* Fake signal functions. *)
26 SIG_ERR* = -1; (* Error return. *)
27 SIG_DFL* = 0; (* Default action. *)
28 SIG_IGN* = 1; (* Ignore signal. *)
29 SIG_HOLD* = 2; (* Add signal to hold mask. *)
31 (* Signals. *)
32 SIGHUP* = 1; (* Hangup (POSIX). *)
33 SIGINT* = 2; (* Interrupt (ANSI). *)
34 SIGQUIT* = 3; (* Quit (POSIX). *)
35 SIGILL* = 4; (* Illegal instruction (ANSI). *)
36 SIGTRAP* = 5; (* Trace trap (POSIX). *)
37 SIGABRT* = 6; (* Abort (ANSI). *)
38 SIGIOT* = 6; (* IOT trap (4.2 BSD). *)
39 SIGBUS* = 7; (* BUS error (4.2 BSD). *)
40 SIGFPE* = 8; (* Floating-point exception (ANSI). *)
41 SIGKILL* = 9; (* Kill, unblockable (POSIX). *)
42 SIGUSR1* = 10; (* User-defined signal 1 (POSIX). *)
43 SIGSEGV* = 11; (* Segmentation violation (ANSI). *)
44 SIGUSR2* = 12; (* User-defined signal 2 (POSIX). *)
45 SIGPIPE* = 13; (* Broken pipe (POSIX). *)
46 SIGALRM* = 14; (* Alarm clock (POSIX). *)
47 SIGTERM* = 15; (* Termination (ANSI). *)
48 SIGSTKFLT* = 16; (* Stack fault. *)
49 SIGCHLD* = 17; (* Child status has changed (POSIX). *)
50 SIGCLD* = SIGCHLD; (* Same as SIGCHLD (System V). *)
51 SIGCONT* = 18; (* Continue (POSIX). *)
52 SIGSTOP* = 19; (* Stop, unblockable (POSIX). *)
53 SIGTSTP* = 20; (* Keyboard stop (POSIX). *)
54 SIGTTIN* = 21; (* Background read from tty (POSIX). *)
55 SIGTTOU* = 22; (* Background write to tty (POSIX). *)
56 SIGURG* = 23; (* Urgent condition on socket (4.2 BSD). *)
57 SIGXCPU* = 24; (* CPU limit exceeded (4.2 BSD). *)
58 SIGXFSZ* = 25; (* File size limit exceeded (4.2 BSD). *)
59 SIGVTALRM* =26; (* Virtual alarm clock (4.2 BSD). *)
60 SIGPROF* = 27; (* Profiling alarm clock (4.2 BSD). *)
61 SIGWINCH* = 28; (* Window size change (4.3 BSD, Sun). *)
62 SIGIO* = 29; (* I/O now possible (4.2 BSD). *)
63 SIGPOLL* = SIGIO; (* Pollable event occurred (System V). *)
64 SIGPWR* = 30; (* Power failure restart (System V). *)
65 SIGSYS* = 31; (* Bad system call. *)
66 SIGUNUSED* =31;
67 _NSIG* = 64; (* Biggest signal number + 1 (including real-time signals). *)
68 __SIGRTMIN*= 32;
69 __SIGRTMAX*=_NSIG - 1;
71 (* Bits in `sa_flags'. *)
72 SA_NOCLDSTOP* = {0}; (* = 1 Don't send SIGCHLD when children stop. *)
73 SA_NOCLDWAIT* = {1}; (* = 2 Don't create zombie on child death. *)
74 SA_SIGINFO* = {2}; (* = 4 Invoke signal-catching function wth three arguments instead of one. *)
75 SA_ONSTACK* = {27}; (* = 0x08000000 Use signal stack by using `sa_restorer'. *)
76 SA_RESTART* = {28}; (* = 0x10000000 Restart syscall on signal return. *)
77 SA_NODEFER* = {30}; (* = 0x40000000 Don't automatically block the signal when its handler is being executed. *)
78 SA_RESETHAND* = {31}; (* = 0x80000000 Reset to SIG_DFL on entry to handler. *)
79 SA_INTERRUPT* = {29}; (* = 0x20000000 Historical no-op. *)
80 (* Some aliases for the SA_ constants. *)
81 SA_NOMASK* = SA_NODEFER;
82 SA_ONESHOT* = SA_RESETHAND;
83 SA_STACK* = SA_ONSTACK;
85 (* code values for siginfo_t.si_code when sig = SIGFPE *)
86 FPE_INTDIV* = 1; (* Integer divide by zero. *)
87 FPE_INTOVF* = 2; (* Integer overflow. *)
88 FPE_FLTDIV* = 3; (* Floating point divide by zero. *)
89 FPE_FLTOVF* = 4; (* Floating point overflow. *)
90 FPE_FLTUND* = 5; (* Floating point underflow. *)
91 FPE_FLTRES* =6; (* Floating point inexact result. *)
92 FPE_FLTINV* = 7; (* Floating point invalid operation. *)
93 FPE_FLTSUB* = 8; (* Subscript out of range. *)
95 (* possible error constants for errno *)
96 EPERM* = 1; (* Operation not permitted *)
97 ENOENT* = 2; (* No such file or directory *)
98 ESRCH* = 3; (* No such process *)
99 EINTR* = 4; (* Interrupted system call *)
100 EIO* = 5; (* I/O error *)
101 ENXIO* = 6; (* No such device or address *)
102 E2BIG* = 7; (* Arg list too long *)
103 ENOEXEC* = 8; (* Exec format error *)
104 EBADF* = 9; (* Bad file number *)
105 ECHILD* = 10; (* No child processes *)
106 EAGAIN* = 11; (* Try again *)
107 ENOMEM* = 12; (* Out of memory *)
108 EACCES* = 13; (* Permission denied *)
109 EFAULT* = 14; (* Bad address *)
110 ENOTBLK* = 15; (* Block device required *)
111 EBUSY* = 16; (* Device or resource busy *)
112 EEXIST* = 17; (* File exists *)
113 EXDEV* = 18; (* Cross-device link *)
114 ENODEV* = 19; (* No such device *)
115 ENOTDIR* = 20; (* Not a directory *)
116 EISDIR* = 21; (* Is a directory *)
117 EINVAL* = 22; (* Invalid argument *)
118 ENFILE* = 23; (* File table overflow *)
119 EMFILE* = 24; (* Too many open files *)
120 ENOTTY* = 25; (* Not a typewriter *)
121 ETXTBSY* = 26; (* Text file busy *)
122 EFBIG* = 27; (* File too large *)
123 ENOSPC* = 28; (* No space left on device *)
124 ESPIPE* = 29; (* Illegal seek *)
125 EROFS* = 30; (* Read-only file system *)
126 EMLINK* = 31; (* Too many links *)
127 EPIPE* = 32; (* Broken pipe *)
128 EDOM* = 33; (* Math argument out of domain of func *)
129 ERANGE* = 34; (* Math result not representable *)
130 EDEADLK* = 35; (* Resource deadlock would occur *)
131 ENAMETOOLONG* = 36; (* File name too long *)
132 ENOLCK* = 37; (* No record locks available *)
133 ENOSYS* = 38; (* Function not implemented *)
134 ENOTEMPTY* = 39; (* Directory not empty *)
135 ELOOP* = 40; (* Too many symbolic links encountered *)
136 EWOULDBLOCK* = EAGAIN; (* Operation would block *)
137 ENOMSG* = 42; (* No message of desired type *)
138 EIDRM* = 43; (* Identifier removed *)
139 ECHRNG* = 44; (* Channel number out of range *)
140 EL2NSYNC* = 45; (* Level 2 not synchronized *)
141 EL3HLT* = 46; (* Level 3 halted *)
142 EL3RST* = 47; (* Level 3 reset *)
143 ELNRNG* = 48; (* Link number out of range *)
144 EUNATCH* = 49; (* Protocol driver not attached *)
145 ENOCSI* = 50; (* No CSI structure available *)
146 EL2HLT* = 51; (* Level 2 halted *)
147 EBADE* = 52; (* Invalid exchange *)
148 EBADR* = 53; (* Invalid request descriptor *)
149 EXFULL* = 54; (* Exchange full *)
150 ENOANO* = 55; (* No anode *)
151 EBADRQC* = 56; (* Invalid request code *)
152 EBADSLT* = 57; (* Invalid slot *)
153 EDEADLOCK* = EDEADLK;
154 EBFONT* = 59; (* Bad font file format *)
155 ENOSTR* = 60; (* Device not a stream *)
156 ENODATA* = 61; (* No data available *)
157 ETIME* = 62; (* Timer expired *)
158 ENOSR* = 63; (* Out of streams resources *)
159 ENONET* = 64; (* Machine is not on the network *)
160 ENOPKG* = 65; (* Package not installed *)
161 EREMOTE* = 66; (* Object is remote *)
162 ENOLINK* = 67; (* Link has been severed *)
163 EADV* = 68; (* Advertise error *)
164 ESRMNT* = 69; (* Srmount error *)
165 ECOMM* = 70; (* Communication error on send *)
166 EPROTO* = 71; (* Protocol error *)
167 EMULTIHOP* = 72; (* Multihop attempted *)
168 EDOTDOT* = 73; (* RFS specific error *)
169 EBADMSG* = 74; (* Not a data message *)
170 EOVERFLOW* = 75; (* Value too large for defined data type *)
171 ENOTUNIQ* = 76; (* Name not unique on network *)
172 EBADFD* = 77; (* File descriptor in bad state *)
173 EREMCHG* = 78; (* Remote address changed *)
174 ELIBACC* = 79; (* Can not access a needed shared library *)
175 ELIBBAD* = 80; (* Accessing a corrupted shared library *)
176 ELIBSCN* = 81; (* .lib section in a.out corrupted *)
177 ELIBMAX* = 82; (* Attempting to link in too many shared libraries *)
178 ELIBEXEC* = 83; (* Cannot exec a shared library directly *)
179 EILSEQ* = 84; (* Illegal byte sequence *)
180 ERESTART* = 85; (* Interrupted system call should be restarted *)
181 ESTRPIPE* = 86; (* Streams pipe error *)
182 EUSERS* = 87; (* Too many users *)
183 ENOTSOCK* = 88; (* Socket operation on non-socket *)
184 EDESTADDRREQ* = 89; (* Destination address required *)
185 EMSGSIZE* = 90; (* Message too long *)
186 EPROTOTYPE* = 91; (* Protocol wrong type for socket *)
187 ENOPROTOOPT* = 92; (* Protocol not available *)
188 EPROTONOSUPPORT* = 93; (* Protocol not supported *)
189 ESOCKTNOSUPPORT* = 94; (* Socket type not supported *)
190 EOPNOTSUPP* = 95; (* Operation not supported on transport endpoint *)
191 EPFNOSUPPORT* = 96; (* Protocol family not supported *)
192 EAFNOSUPPORT* = 97; (* Address family not supported by protocol *)
193 EADDRINUSE* = 98; (* Address already in use *)
194 EADDRNOTAVAIL* = 99; (* Cannot assign requested address *)
195 ENETDOWN* = 100; (* Network is down *)
196 ENETUNREACH* = 101; (* Network is unreachable *)
197 ENETRESET* = 102; (* Network dropped connection because of reset *)
198 ECONNABORTED* = 103; (* Software caused connection abort *)
199 ECONNRESET* = 104; (* Connection reset by peer *)
200 ENOBUFS* = 105; (* No buffer space available *)
201 EISCONN* = 106; (* Transport endpoint is already connected *)
202 ENOTCONN* = 107; (* Transport endpoint is not connected *)
203 ESHUTDOWN* = 108; (* Cannot send after transport endpoint shutdown *)
204 ETOOMANYREFS* = 109; (* Too many references: cannot splice *)
205 ETIMEDOUT* = 110; (* Connection timed out *)
206 ECONNREFUSED* = 111; (* Connection refused *)
207 EHOSTDOWN* = 112; (* Host is down *)
208 EHOSTUNREACH* = 113; (* No route to host *)
209 EALREADY* = 114; (* Operation already in progress *)
210 EINPROGRESS* = 115; (* Operation now in progress *)
211 ESTALE* = 116; (* Stale NFS file handle *)
212 EUCLEAN* = 117; (* Structure needs cleaning *)
213 ENOTNAM* = 118; (* Not a XENIX named type file *)
214 ENAVAIL* = 119; (* No XENIX semaphores available *)
215 EISNAM* = 120; (* Is a named type file *)
216 EREMOTEIO* = 121; (* Remote I/O error *)
217 EDQUOT* = 122; (* Quota exceeded *)
218 ENOMEDIUM* = 123; (* No medium found *)
219 EMEDIUMTYPE* = 124; (* Wrong medium type *)
221 PROT_NONE* = {}; (* No access *)
222 PROT_READ* = {2}; (* Pages can be read *)
223 PROT_WRITE* = {1}; (* Pages can be written *)
224 PROT_EXEC* = {0}; (* Pages can be executed *)
225 MAP_FILE* = {0}; (* Mapped from a file or device *)
226 MAP_ANON* = {1}; (* Allocated from anonymous virtual memory *)
227 MAP_COPY* = {5}; (* Virtual copy of region at mapping time *)
228 MAP_SHARED* = {4}; (* Share changes *)
229 MAP_PRIVATE* = {}; (* Changes private; copy pages on write *)
230 MAP_FIXED* = {8}; (* Map address must be exactly as requested *)
231 MAP_NOEXTEND* = {9} ; (* For MAP_FILE, don't change file size *)
232 MAP_HASSEMPHORE*= {10}; (* Region may contain semaphores *)
233 MAP_INHERIT* = {11} ; (* Region is retained after exec *)
234 MAP_FAILED* = -1;
236 O_RDONLY* = {} ; (* Open read-only *)
237 O_WRONLY* = {0} ; (* Open write-only *)
238 O_RDWR* = {1} ; (* Open read/write *)
239 O_NONBLOCK* = {11};
241 SIG_BLOCK* = 0; (* Block signals *)
242 SIG_UNBLOCK* = 1; (* Unblock signals *)
243 SIG_SETMASK* = 2; (* Set the set of blocked signals *)
245 _SC_PAGESIZE* = 30;
247 SIGSTKSZ* = 8192;
249 STDIN_FILENO* = 0;
250 STDOUT_FILENO* = 1;
251 STDERR_FILENO* = 2;
253 WAIT_ANY* = -1;
254 WCONTINUED* = {3};
255 WNOHANG* = {0};
256 WUNTRACED* = {1};
258 TYPE
259 __ftw_func_t* = PROCEDURE (fileName: PtrSTR; VAR [nil] stat: stat_t; flag: INTEGER): INTEGER;
260 PtrVoid* = INTEGER;
261 PtrSTR* = POINTER TO ARRAY [untagged] OF SHORTCHAR;
262 wchar_t* = INTEGER;
263 PtrWSTR* = POINTER TO ARRAY [untagged] OF wchar_t;
264 PtrInt* = INTEGER;
265 StrArray* = POINTER TO ARRAY [untagged] OF PtrSTR;
266 PtrFILE* = INTEGER;
267 PtrDIR* = INTEGER;
268 PtrProc* = INTEGER;
269 clock_t* = INTEGER;
270 jmp_buf* = ARRAY [untagged] 6 OF INTEGER; (* bx, si, di, bp, sp, pc *)
271 mode_t* = SET;
272 off_t* = INTEGER;
273 SelectorFunc* = PROCEDURE (dirent: Dirent): INTEGER;
274 CmpFunc* = PROCEDURE (VAR [nil] dirent1, dirent2: PtrDirent): INTEGER;
275 size_t* = INTEGER; (* should be unsigned int *)
276 ssize_t* = INTEGER;
277 sigjmp_buf* = RECORD [untagged]
278 buf*: jmp_buf;
279 mask_was_saved*: INTEGER;
280 saved_mask*: sigset_t;
281 END;
283 PtrDirent* = POINTER TO Dirent;
284 PtrDirentArray* = POINTER TO ARRAY [untagged] OF Dirent;
285 Dirent* = RECORD [untagged]
286 d_ino*: INTEGER; (* inode number *)
287 d_off*: off_t; (* offset to this dirent *)
288 d_reclen*: SHORTINT; (* length of this d_name *)
289 d_type*: BYTE;
290 d_name*: ARRAY[untagged] NAME_MAX+1 OF SHORTCHAR; (* file name (null-terminated) *)
291 END;
293 pid_t* = INTEGER;
294 uid_t* = INTEGER;
295 sigval_t* = INTEGER;
297 siginfo_t* = RECORD [untagged]
298 si_signo*: INTEGER; (* Signal number *)
299 si_errno*: INTEGER; (* An errno value *)
300 si_code*: INTEGER; (* Signal code *)
301 si_pid*: pid_t; (* Sending process ID *)
302 si_uid*: uid_t; (* Real user ID of sending process *)
303 si_status*: INTEGER; (* Exit value or signal *)
304 si_utime*: clock_t; (* User time consumed *)
305 si_stime*: clock_t; (* System time consumed *)
306 si_value*: sigval_t; (* Signal value *)
307 si_int*: INTEGER; (* POSIX.1b signal *)
308 si_ptr*: PtrVoid; (* POSIX.1b signal *)
309 si_addr*: PtrVoid; (* Memory location which caused fault *)
310 si_band*: INTEGER; (* Band event *)
311 si_fd*: INTEGER; (* File descriptor *)
312 END;
313 Ptrsiginfo_t* = POINTER TO siginfo_t;
315 sigset_t* = ARRAY [untagged] 128 OF BYTE;
316 Ptrsigset_t* = INTEGER;
317 sigaction_t* = RECORD [untagged]
318 sa_sigaction*: PROCEDURE [ccall] (sig: INTEGER; siginfo: Ptrsiginfo_t; ptr: Ptrucontext_t); (* union with sa_handler*: PtrProc;*)
319 sa_mask*: sigset_t;
320 sa_flags*: SET;
321 sa_restorer*: LONGINT;
322 END;
324 stack_t* = RECORD [untagged]
325 ss_sp*: PtrVoid;
326 ss_flags*: INTEGER;
327 ss_size*: size_t;
328 END;
330 stat_t* = RECORD [untagged]
331 st_dev*: LONGINT; (* device *)
332 __pad1: SHORTINT;
333 st_ino*: INTEGER; (* 64? inode *)
334 st_mode*: mode_t; (* protection *)
335 st_nlink*: INTEGER; (* number of hard links *)
336 st_uid*: uid_t; (* user ID of owner *)
337 st_gid*: INTEGER; (* group ID of owner *)
338 st_rdev*: LONGINT; (* device type (if inode device) *)
339 __pad2: SHORTINT;
340 st_size*: off_t; (* 64? total size, in bytes *)
341 st_blksize*: INTEGER; (* blocksize for filesystem I/O *)
342 st_blocks*: INTEGER; (* 64? number of blocks allocated *)
343 st_atime*: INTEGER; (* time of last access *)
344 __unused1: INTEGER;
345 st_mtime*: INTEGER; (* time of last modification *)
346 __unused2: INTEGER;
347 st_ctime*: INTEGER; (* time of last change *)
348 __unused3: INTEGER;
349 __unused4: INTEGER;
350 __unused5: INTEGER;
351 END;
353 fpreg* = RECORD [untagged]
354 significand*: ARRAY [untagged] 4 OF CHAR;
355 exponent*: CHAR;
356 END;
358 fpstate* = RECORD [untagged]
359 cw*: INTEGER; (* unsigned long int *)
360 sw*: INTEGER; (* unsigned long int *)
361 tag*: INTEGER; (* unsigned long int *)
362 ipoff*: INTEGER; (* unsigned long int *)
363 cssel*: INTEGER; (* unsigned long int *)
364 dataoff*: INTEGER; (* unsigned long int *)
365 datasel*: INTEGER; (* unsigned long int *)
366 _st: ARRAY [untagged] 8 OF fpreg;
367 status*: INTEGER; (* unsigned long int *)
368 END;
370 gregset_t* = ARRAY [untagged] 19 OF INTEGER;
371 fpregset_t* = POINTER TO fpstate;
373 mcontext_t* = RECORD [untagged]
374 gregs*: gregset_t;
375 fpregs*: fpregset_t;
376 oldmask*: INTEGER; (* unsigned long int *)
377 cr2*: INTEGER; (* unsigned long int *)
378 END;
380 Ptrucontext_t* = POINTER TO ucontext_t;
381 ucontext_t* = RECORD [untagged]
382 uc_flags*: INTEGER; (* unsigned long int *)
383 uc_link*: Ptrucontext_t;
384 uc_stack*: stack_t;
385 uc_mcontext*: mcontext_t;
386 uc_sigmask: sigset_t;
387 __fpregs_mem*: fpstate;
388 END;
390 (* Times and Dates *)
392 tm* = POINTER TO tmDesc;
393 tmDesc* = RECORD [untagged]
394 tm_sec*: INTEGER; (* seconds *)
395 tm_min*: INTEGER; (* minutes *)
396 tm_hour*: INTEGER; (* hours *)
397 tm_mday*: INTEGER; (* day of the month *)
398 tm_mon*: INTEGER; (* month *)
399 tm_year*: INTEGER; (* year *)
400 tm_wday*: INTEGER; (* day of the week *)
401 tm_yday*: INTEGER; (* day in the year *)
402 tm_isdst*: INTEGER; (* daylight saving time *)
403 END;
404 time_t* = INTEGER;
406 VAR
407 timezone*: INTEGER; (* seconds from GMT *)
408 (*
409 stdin*, stdout*, stderr* : PtrFILE;
410 *)
412 PROCEDURE [ccall] calloc* (num, size: size_t): PtrVoid;
413 PROCEDURE [ccall] clock* (): clock_t;
414 PROCEDURE [ccall] closedir* (dir: PtrDIR): INTEGER;
415 PROCEDURE [ccall] chmod* (path: PtrSTR; mode: mode_t): INTEGER;
416 PROCEDURE [ccall] fchmod* (fd: INTEGER; mode: mode_t): INTEGER;
417 PROCEDURE [ccall] exit* (status: INTEGER);
418 PROCEDURE [ccall] fclose* (fp: PtrFILE): INTEGER;
419 PROCEDURE [ccall] fflush* (fp: PtrFILE): INTEGER;
420 PROCEDURE [ccall] fopen* (filename, mode: PtrSTR): PtrFILE;
421 PROCEDURE [ccall] fdopen* (fildes: INTEGER; mode: PtrSTR): PtrFILE;
422 PROCEDURE [ccall] feof* (fp: PtrFILE): INTEGER;
423 PROCEDURE [ccall] fileno* (stream: PtrFILE): INTEGER;
424 PROCEDURE [ccall] fread* (ptr: PtrVoid; size, nobj: size_t; stream: PtrFILE): size_t;
425 PROCEDURE [ccall] fseek* (stream: PtrFILE; offset, origin: INTEGER): INTEGER;
426 PROCEDURE [ccall] free* (p: PtrVoid);
427 PROCEDURE [ccall] ftell* (stream: PtrFILE): LONGINT;
428 PROCEDURE [ccall] ftw* (filename: PtrSTR; func: __ftw_func_t; descriptors: INTEGER): INTEGER;
429 PROCEDURE [ccall] fwrite* (ptr: PtrVoid; size, nobj: size_t; stream: PtrFILE): size_t;
430 PROCEDURE [ccall] getcwd* (buf: PtrSTR; size: size_t): PtrSTR;
431 PROCEDURE [ccall] getcontext* (ucontext_t: Ptrucontext_t): INTEGER;
432 PROCEDURE [ccall] gets* (s: PtrSTR);
433 PROCEDURE [ccall] fgets* (s: PtrSTR; n: INTEGER; fp: PtrFILE): PtrSTR;
434 PROCEDURE [ccall] gmtime* (VAR timep: time_t): tm;
435 PROCEDURE [ccall] kill* (pid: pid_t; sig: INTEGER): INTEGER;
436 PROCEDURE [ccall] localtime* (VAR timep: time_t): tm;
437 PROCEDURE [ccall] malloc* (size: size_t): PtrVoid;
438 PROCEDURE [ccall] mkdir* (pathname: PtrSTR; mode: mode_t): INTEGER;
439 PROCEDURE [ccall] mktime* (timeptr: tm): time_t;
440 PROCEDURE [ccall] opendir* (name: PtrSTR): PtrDIR;
441 PROCEDURE [ccall] printf* (s: PtrSTR): INTEGER;
442 PROCEDURE [ccall] readdir* (dir: PtrDIR): PtrDirent;
443 PROCEDURE [ccall] remove* (filename: PtrSTR): INTEGER;
444 PROCEDURE [ccall] rename* (oldname, newname: PtrSTR): INTEGER;
445 PROCEDURE [ccall] scandir* (dir: PtrDIR; namelist: PtrDirentArray; selector: SelectorFunc; cmp: CmpFunc): INTEGER;
446 PROCEDURE [ccall] setcontext* (ucontext_t: Ptrucontext_t): INTEGER;
447 PROCEDURE [ccall] setjmp* (VAR env: jmp_buf): INTEGER;
448 PROCEDURE [ccall] sigaction* (sig_num: INTEGER; VAR [nil] act: sigaction_t; VAR [nil] oldact: sigaction_t): INTEGER;
449 PROCEDURE [ccall] sigaddset* (set: Ptrsigset_t; sig: INTEGER): INTEGER;
450 PROCEDURE [ccall] sigdelset* (set: Ptrsigset_t; sig: INTEGER): INTEGER;
451 PROCEDURE [ccall] sigemptyset* (set: Ptrsigset_t): INTEGER;
452 PROCEDURE [ccall] sigfillset* (set: Ptrsigset_t): INTEGER;
453 PROCEDURE [ccall] sigismemeber* (set: Ptrsigset_t; sig: INTEGER): INTEGER;
454 PROCEDURE [ccall] siglongjmp* (VAR env: sigjmp_buf; val: INTEGER);
455 PROCEDURE [ccall] signal* (sig_num: INTEGER; sighandler: PtrProc): PtrProc;
456 PROCEDURE [ccall] sigsetjmp* ["__sigsetjmp"] (VAR env: sigjmp_buf; savemask: INTEGER): INTEGER;
457 (*
458 PROCEDURE [ccall] stat* (filename: PtrSTR; VAR buf: stat_t): INTEGER; stat is a macro and expands to __xstat(3, filename, buf)
459 *)
460 PROCEDURE [ccall] __xstat* (version: INTEGER; filename: PtrSTR; VAR buf: stat_t): INTEGER;
461 PROCEDURE [ccall] strftime* (s: PtrSTR; max: size_t; format: PtrSTR; ptm: tm): size_t;
462 PROCEDURE [ccall] time* (VAR [nil] t: time_t): time_t;
464 PROCEDURE [ccall] __errno_location*(): INTEGER;
466 PROCEDURE [ccall] open* (name: PtrSTR; flags: SET; mode: mode_t): INTEGER;
467 PROCEDURE [ccall] close* (d: INTEGER): INTEGER;
468 PROCEDURE [ccall] read* (d: INTEGER; buf: PtrVoid; nbytes: size_t): ssize_t;
469 PROCEDURE [ccall] write* (d: INTEGER; buf: PtrVoid; nBytes: size_t): ssize_t;
471 PROCEDURE [ccall] mmap* (addr: PtrVoid; len: size_t; prot: SET; flags: SET; fd, offset: off_t): PtrVoid;
472 PROCEDURE [ccall] munmap* (addr: PtrVoid; len: size_t): INTEGER;
473 PROCEDURE [ccall] mprotect* (addr: PtrVoid; len: size_t; prot: SET): INTEGER;
475 PROCEDURE [ccall] getenv* (name: PtrSTR): PtrSTR;
477 PROCEDURE [ccall] sigaltstack* (VAR [nil] ss: stack_t; VAR [nil] oss: stack_t): INTEGER;
479 PROCEDURE [ccall] sigprocmask* (how: INTEGER; set: Ptrsigset_t; oldset: Ptrsigset_t): INTEGER;
481 PROCEDURE [ccall] fork* (): pid_t;
482 PROCEDURE [ccall] waitpid* (wpid: pid_t; VAR [nil] status: INTEGER; options: SET): pid_t;
484 PROCEDURE [ccall] execv* (path: PtrSTR; argv: POINTER [untagged] TO ARRAY [untagged] OF PtrSTR): INTEGER;
485 PROCEDURE [ccall] execvp* (file: PtrSTR; argv: POINTER [untagged] TO ARRAY [untagged] OF PtrSTR): INTEGER;
487 PROCEDURE [ccall] system* (string: PtrSTR): INTEGER;
489 PROCEDURE [ccall] sysconf* (name: INTEGER): INTEGER;
491 PROCEDURE [ccall] popen* (command, type: PtrSTR): PtrFILE;
492 PROCEDURE [ccall] pclose* (stream: PtrFILE): INTEGER;
494 END LinLibc.