DEADSOFTWARE

Lin interface modules generators added
[bbcp.git] / Trurl-based / _OpenBSD_ / Lin / Mod / gen-Libc / Libc.txt.templ
1 MODULE LinLibc ["libc.so.66.0"];
3 (*
4 A. V. Shiryaev, 2012.11
6 Based on Linux' LinLibc (OpenBUGS Lin/Mod/Libc.odc)
8 OpenBSD 5.2
9 32-bit
10 *)
12 IMPORT SYSTEM;
14 CONST
15 NULL* = 0H;
16 TRUE* = 1;
17 FALSE* = 0;
19 (* file constants *)
20 SEEK_SET* = 0;
21 SEEK_CUR* = 1;
22 SEEK_END* = 2;
23 NAME_MAX* = 255; (* OpenBSD /usr/include/sys/syslimits.h *)
25 (* The value of CLOCKS_PER_SEC is required to be 1 million on all XSI-conformant systems.*)
26 CLOCKS_PER_SEC* = 100; (* OpenBSD 5.2 /usr/include/time.h CLOCKS_PER_SEC *)
28 (* temp directory defined in stdio.h *)
29 P_tmpdir* = "/tmp";
31 (* signal constants *) (* Fake signal functions. *)
32 (* OpenBSD 5.2 /usr/include/sys/signal.h *)
33 SIG_ERR* = -1; (* Error return. *)
34 SIG_DFL* = 0; (* Default action. *)
35 SIG_IGN* = 1; (* Ignore signal. *)
36 SIG_HOLD* = 3; (* Add signal to hold mask. *) (* OpenBSD 5.2 /usr/include/sys/signalvar.h *)
38 (* Signals. *)
39 (* OpenBSD /usr/include/sys/signal.h *)
40 %%defs-signal%%
41 (* Bits in `sa_flags'. *)
42 %%defs-sa%%
43 (* Some aliases for the SA_ constants. *)
44 (*
45 SA_NOMASK* = SA_NODEFER;
46 SA_ONESHOT* = SA_RESETHAND;
47 SA_STACK* = SA_ONSTACK;
48 *)
50 (* code values for siginfo_t.si_code *)
51 (* OpenBSD /usr/include/sys/siginfo.h *)
52 %%defs-siginfo1%%
54 (* possible error constants for errno *)
55 (* OpenBSD /usr/include/sys/errno.h *)
56 %%defs-errno%%
58 (* OpenBSD 5.2 /usr/include/i386/setjmp.h *)
59 _JBLEN = 10;
61 (* OpenBSD 5.2 /usr/include/sys/mman.h *)
62 MAP_FAILED* = -1;
63 %%defs-mman%%
65 (* OpenBSD 5.2 /usr/include/i386/param.h *)
66 PAGE_SHIFT* = 12;
67 PAGE_SIZE* = 4096; (* LSL(1, PAGE_SHIFT) *)
68 PAGE_MASK* = PAGE_SIZE - 1;
70 (* OpenBSD 5.2: /usr/include/fcntl.h *)
71 %%defs-fcntl%%
73 (* OpenBSD 5.2 /usr/include/unistd.h *)
74 %%defs-sc%%
76 (* OpenBSD 5.2 /usr/include/sys/mman.h *)
77 %%defs-madv%%
78 MADV_NORMAL* = POSIX_MADV_NORMAL;
79 MADV_RANDOM* = POSIX_MADV_RANDOM;
80 MADV_SEQUENTIAL* = POSIX_MADV_SEQUENTIAL;
81 MADV_WILLNEED* = POSIX_MADV_WILLNEED;
82 MADV_DONTNEED* = POSIX_MADV_DONTNEED;
84 (* OpenBSD 5.2 /usr/include/sys/signal.h *)
85 MINSIGSTKSZ* = 8192; (* minimum allowable stack *)
86 SIGSTKSZ* = MINSIGSTKSZ + 32768; (* recommended stack size *)
88 (* OpenBSD 5.2 /usr/include/sys/signal.h *)
89 %%defs-sig%%
91 TYPE
92 (* OpenBSD OK *)
93 __ftw_func_t* = PROCEDURE (fileName: PtrSTR; VAR [nil] stat: stat_t; flag: INTEGER): INTEGER; (* OpenBSD 5.2: OK *)
94 PtrVoid* = INTEGER;
95 PtrSTR* = POINTER TO ARRAY [untagged] OF SHORTCHAR;
96 (* PtrWSTR* = POINTER TO ARRAY [untagged] OF CHAR; *)
97 PtrInt* = INTEGER;
98 StrArray* = POINTER TO ARRAY [untagged] OF PtrSTR;
99 PtrFILE* = INTEGER;
100 PtrDIR* = INTEGER;
101 PtrProc* = INTEGER;
102 clock_t* = INTEGER; (* OpenBSD 5.2 /usr/include/i386/_types.h: 32-bit *)
104 (* jmp_buf* = ARRAY [untagged] 6 OF INTEGER; (* bx, si, di, bp, sp, pc *) *)
105 jmp_buf* = ARRAY [untagged] _JBLEN OF INTEGER; (* OpenBSD 5.2 *)
107 mode_t* = SET; (* OpenBSD 5.2: 32-bit *)
108 off_t* = LONGINT; (* OpenBSD 5.2: 64-bit *)
110 SelectorFunc* = PROCEDURE (dirent: Dirent): INTEGER; (* OpenBSD 5.2: OK *)
111 CmpFunc* = PROCEDURE (VAR [nil] dirent1, dirent2: PtrDirent): INTEGER; (* OpenBSD 5.2: OK *)
113 size_t* = INTEGER; (* should be unsigned int *) (* OpenBSD 5.2: /usr/include/i386/_types.h: 32-bit *)
114 ssize_t* = INTEGER; (* signed int *) (* OpenBSD 5.2: /usr/include/i386/_types.h: 32-bit *)
116 sigjmp_buf* = RECORD [untagged] (* OpenBSD 5.2 *)
117 buf*: jmp_buf;
119 (* mask_was_saved*: INTEGER;
120 saved_mask*: sigset_t; *) (* OpenBSD *)
122 xxx: INTEGER;
123 END;
125 PtrDirent* = POINTER TO Dirent;
126 PtrDirentArray* = POINTER TO ARRAY [untagged] OF Dirent;
128 Dirent* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/sys/dirent.h *)
129 (*
130 d_ino*: INTEGER; (* inode number *)
131 d_off*: off_t; (* offset to this dirent *)
132 d_reclen*: SHORTINT; (* length of this d_name *)
133 d_type*: BYTE;
134 d_name*: ARRAY[untagged] NAME_MAX+1 OF SHORTCHAR; (* file name (null-terminated) *)
135 *)
137 d_fileno*: INTEGER;
138 d_reclen*: SHORTINT;
139 d_type*: BYTE;
140 d_namlen*: BYTE;
141 d_name*: ARRAY [untagged] NAME_MAX + 1 (* 256 *) OF SHORTCHAR;
142 END;
144 pid_t* = INTEGER; (* OpenBSD 5.2: 32-bit *)
145 uid_t* = INTEGER; (* OpenBSD 5.2: 32-bit *)
147 sigval_t* = INTEGER; (* OpenBSD: 32-bit (union sigval) *)
149 siginfo_t* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/sys/siginfo.h *)
150 si_signo*: INTEGER; (* Signal number *) (* OpenBSD: 32-bit *)
151 si_code*: INTEGER; (* Signal code *) (* OpenBSD: 32-bit *)
152 si_errno*: INTEGER; (* An errno value *) (* OpenBSD: 32-bit *)
154 (* OpenBSD 5.2: 29 * 4 B below *)
156 si_pid*: pid_t; (* Sending process ID *)
157 si_uid*: uid_t; (* Real user ID of sending process *)
158 si_status*: INTEGER; (* Exit value or signal *) (* OpenBSD 5.2: 32-bit *)
160 (* si_utime*: clock_t; (* User time consumed *) *) (* OpenBSD: XXX *)
161 si_stime*: clock_t; (* System time consumed *)
162 (* si_value*: sigval_t; (* Signal value *) *) (* OpenBSD: XXX *)
163 (* si_int*: INTEGER; (* POSIX.1b signal *) *) (* OpenBSD: XXX *)
164 (* si_ptr*: PtrVoid; (* POSIX.1b signal *) *) (* OpenBSD: XXX *)
165 (* si_addr*: PtrVoid; (* Memory location which caused fault *) *) (* OpenBSD: XXX *)
166 (* si_band*: INTEGER; (* Band event *) *) (* OpenBSD: XXX *)
167 (* si_fd*: INTEGER; (* File descriptor *) *) (* OpenBSD: XXX *)
169 xxx: ARRAY [untagged] 25 OF INTEGER; (* OpenBSD *)
170 END;
171 Ptrsiginfo_t* = POINTER TO siginfo_t;
173 (* sigset_t* = ARRAY [untagged] 128 OF BYTE; *)
174 (* OpenBSD 5.2 /usr/include/sys/signal.h *)
175 (* sigset_t* = ARRAY [untagged] 4 OF BYTE; *)
176 sigset_t* = SET;
178 Ptrsigset_t* = INTEGER;
179 sigaction_t* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/sys/signal.h *)
180 sa_sigaction*: PROCEDURE [ccall] (sig: INTEGER; siginfo: Ptrsiginfo_t; ptr: Ptrucontext_t); (* union with sa_handler*: PtrProc;*)
181 sa_mask*: sigset_t;
182 sa_flags*: SET;
183 (* sa_restorer*: LONGINT; *) (* OpenBSD *)
184 END;
186 stack_t* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/sys/signal.h *)
187 ss_sp*: PtrVoid;
188 ss_size*: size_t; (* OpenBSD *)
189 ss_flags*: INTEGER; (* OpenBSD *)
190 END;
192 dev_t* = INTEGER; (* OpenBSD: 32-bit *)
193 gid_t* = INTEGER; (* OpenBSD: 32-bit *)
195 stat_t* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/sys/stat.h *)
196 st_dev*: dev_t; (* device *) (* OpenBSD: 32-bit *)
197 (* __pad1: SHORTINT; *) (* OpenBSD *)
198 st_ino*: INTEGER; (* 64? inode *) (* OpenBSD: 32-bit *)
199 st_mode*: mode_t; (* protection *) (* OpenBSD: 32-bit *)
200 st_nlink*: INTEGER; (* number of hard links *) (* OpenBSD: 32-bit *)
201 st_uid*: uid_t; (* user ID of owner *) (* OpenBSD: 32-bit *)
202 st_gid*: gid_t; (* group ID of owner *) (* OpenBSD: 32-bit *)
203 st_rdev*: dev_t; (* device type (if inode device) *) (* OpenBSD: 32-bit *)
204 st_lspare0*: INTEGER; (* OpenBSD *)
205 (* __pad2: SHORTINT; *) (* OpenBSD *)
207 (* OpenBSD *)
208 st_atime*: time_t;
209 st_atimensec*: INTEGER;
210 st_mtime*: time_t;
211 st_mtimensec*: INTEGER;
212 st_ctime*: time_t;
213 st_ctimensec*: INTEGER;
215 st_size*: off_t; (* 64? total size, in bytes *) (* OpenBSD *)
216 st_blocks*: LONGINT; (* OpenBSD: 64-bit *)
217 st_blksize*: INTEGER; (* blocksize for filesystem I/O *)
218 (* st_blocks*: INTEGER; (* 64? number of blocks allocated *) *) (* OpenBSD *)
219 st_flags*: INTEGER; (* OpenBSD: 32-bit *)
220 st_gen*: INTEGER; (* OpenBSD: 32-bit *)
221 st_lspare1*: INTEGER; (* OpenBSD: 32-bit *)
223 (* OpenBSD
224 st_atime*: INTEGER; (* time of last access *)
225 __unused1: INTEGER;
226 st_mtime*: INTEGER; (* time of last modification *)
227 __unused2: INTEGER;
228 st_ctime*: INTEGER; (* time of last change *)
229 __unused3: INTEGER;
230 __unused4: INTEGER;
231 __unused5: INTEGER;
232 *)
234 (* OpenBSD *)
235 __st_birthtime*: time_t;
236 __st_birthtimensec*: INTEGER;
237 st_qspare*: ARRAY [untagged] 2 OF LONGINT;
238 END;
240 (* OpenBSD
241 fpreg* = RECORD [untagged]
242 significand*: ARRAY [untagged] 4 OF CHAR;
243 exponent*: CHAR;
244 END;
245 *)
247 (* OpenBSD *)
248 (*
249 fpstate* = RECORD [untagged]
250 cw*: INTEGER; (* unsigned long int *)
251 sw*: INTEGER; (* unsigned long int *)
252 tag*: INTEGER; (* unsigned long int *)
253 ipoff*: INTEGER; (* unsigned long int *)
254 cssel*: INTEGER; (* unsigned long int *)
255 dataoff*: INTEGER; (* unsigned long int *)
256 datasel*: INTEGER; (* unsigned long int *)
257 _st: ARRAY [untagged] 8 OF fpreg;
258 status*: INTEGER; (* unsigned long int *)
259 END;
260 *)
261 envxmm* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/i386/npx.h *)
262 (*0*)
263 en_cw*: SHORTINT; (* FPU Control Word *)
264 en_sw*: SHORTINT; (* FPU Status Word *)
265 en_tw*: BYTE; (* FPU Tag Word (abridged) *)
266 en_rsvd0*: BYTE;
267 en_opcode*: SHORTINT; (* FPU Opcode *)
268 en_fip*: INTEGER; (* FPU Instruction Pointer *)
269 en_fcs*: SHORTINT; (* FPU IP selector *)
270 en_rsvd1*: SHORTINT;
271 (*16*)
272 en_foo*: INTEGER; (* FPU Data pointer *)
273 en_fos*: SHORTINT; (* FPU Data pointer selector *)
274 en_rsvd2*: SHORTINT;
275 en_mxcsr*: INTEGER; (* MXCSR Register State *)
276 en_mxcsr_mask*: INTEGER; (* Mask for valid MXCSR bits (may be 0) *)
277 END;
278 (* FPU regsters in the extended save format. *)
279 fpaccxmm* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/i386/npx.h *)
280 fp_bytes*: ARRAY [untagged] 10 OF BYTE;
281 fp_rsvd*: ARRAY [untagged] 6 OF BYTE;
282 END;
283 (* SSE/SSE2 registers. *)
284 xmmreg* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/i386/npx.h *)
285 sse_bytes*: ARRAY [untagged] 16 OF BYTE;
286 END;
287 fpstate* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/i386/npx.h savefpu.savexmm *)
288 sv_env*: envxmm; (* control/status context *)
289 sv_ac*: ARRAY [untagged] 8 OF fpaccxmm; (* ST/MM regs *)
290 sv_xmmregs*: ARRAY [untagged] 8 OF xmmreg; (* XMM regs *)
291 sv_rsvd*: ARRAY [untagged] 16 * 14 OF BYTE;
292 (* 512-bytes --- end of hardware portion of save area *)
293 sv_ex_sw*: INTEGER; (* saved SW from last exception *)
294 sv_ex_tw*: INTEGER; (* saved TW from last exception *)
295 END;
297 (* OpenBSD
298 gregset_t* = ARRAY [untagged] 19 OF INTEGER;
299 *)
300 fpregset_t* = POINTER TO fpstate;
302 (* OpenBSD
303 mcontext_t* = RECORD [untagged]
304 gregs*: gregset_t;
305 fpregs*: fpregset_t;
306 oldmask*: INTEGER; (* unsigned long int *)
307 cr2*: INTEGER; (* unsigned long int *)
308 END;
309 *)
311 Ptrucontext_t* = POINTER TO ucontext_t;
312 ucontext_t* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/i386/signal.h struct sigcontext *)
313 (*
314 uc_flags*: INTEGER; (* unsigned long int *)
315 uc_link*: Ptrucontext_t;
316 uc_stack*: stack_t;
317 uc_mcontext*: mcontext_t;
318 uc_sigmask: sigset_t;
319 __fpregs_mem*: fpstate;
320 *)
322 sc_gs*: INTEGER;
323 sc_fs*: INTEGER;
324 sc_es*: INTEGER;
325 sc_ds*: INTEGER;
326 sc_edi*: INTEGER;
327 sc_esi*: INTEGER;
328 sc_ebp*: INTEGER;
329 sc_ebx*: INTEGER;
330 sc_edx*: INTEGER;
331 sc_ecx*: INTEGER;
332 sc_eax*: INTEGER;
333 (* XXX *)
334 sc_eip*: INTEGER;
335 sc_cs*: INTEGER;
336 sc_eflags*: INTEGER;
337 sc_esp*: INTEGER;
338 sc_ss*: INTEGER;
340 sc_onstack*: INTEGER; (* sigstack state to restore *)
341 sc_mask*: INTEGER; (* signal mask to restore *)
342 sc_trapno*: INTEGER; (* XXX should be above *)
343 sc_err*: INTEGER;
345 sc_fpstate*: fpregset_t; (* POINTER TO savefpu *)
346 END;
348 (* Times and Dates *)
350 tm* = POINTER TO tmDesc;
351 tmDesc* = RECORD [untagged] (* OpenBSD 5.2 /usr/include/time.h *)
352 tm_sec*: INTEGER; (* seconds *)
353 tm_min*: INTEGER; (* minutes *)
354 tm_hour*: INTEGER; (* hours *)
355 tm_mday*: INTEGER; (* day of the month *)
356 tm_mon*: INTEGER; (* month *)
357 tm_year*: INTEGER; (* year *)
358 tm_wday*: INTEGER; (* day of the week *)
359 tm_yday*: INTEGER; (* day in the year *)
360 tm_isdst*: INTEGER; (* daylight saving time *)
362 tm_gmtoff*: INTEGER; (* OpenBSD *)
363 tm_zone*: PtrSTR; (* OpenBSD *)
364 END;
366 time_t* = INTEGER; (* OpenBSD 5.2 /usr/include/i386/_types.h: 32-bit *)
368 FILE = ARRAY [untagged] 88 OF BYTE; (* OpenBSD 5.2 /usr/include/stdio.h *)
370 wchar_t* = INTEGER; (* OpenBSD 5.2: 32-bit *)
371 PtrWSTR* = POINTER TO ARRAY [untagged] OF wchar_t;
373 (* OpenBSD 5.2 *)
374 sigaltstack_t* = RECORD [untagged]
375 ss_sp*: PtrVoid;
376 ss_size*: size_t;
377 ss_flags*: INTEGER;
378 END;
380 VAR
381 (* timezone*: INTEGER; (* seconds from GMT *) *) (* OpenBSD: not present *)
382 (* stdin*, stdout*, stderr* : PtrFILE; (* OpenBSD: not present *) *)
384 (* OpenBSD: stdin, stdout, stderr *)
385 __sF*: ARRAY [untagged] 3 OF FILE; (* OpenBSD 5.2 /usr/include/stdio.h *)
386 (*
387 stdin = SYSTEM.ADR(__sF[0])
388 stdout = SYSTEM.ADR(__sF[1])
389 stderr = SYSTEM.ADR(__sF[2])
390 *)
392 PROCEDURE [ccall] calloc* (nmemb, size: size_t): PtrVoid;
393 PROCEDURE [ccall] clock* (): clock_t;
395 PROCEDURE [ccall] closedir* (dir: PtrDIR): INTEGER;
397 PROCEDURE [ccall] chmod* (path: PtrSTR; mode: mode_t);
398 PROCEDURE [ccall] exit* (status: INTEGER);
400 PROCEDURE [ccall] fclose* (fp: PtrFILE): INTEGER;
401 PROCEDURE [ccall] fflush* (fp: PtrFILE): INTEGER;
402 PROCEDURE [ccall] fopen* (filename, mode: PtrSTR): PtrFILE;
403 PROCEDURE [ccall] feof* (fp: PtrFILE): INTEGER;
404 PROCEDURE [ccall] fread* (ptr: PtrVoid; size, nmemb: size_t; stream: PtrFILE): size_t;
405 PROCEDURE [ccall] fseek* (stream: PtrFILE; offset, origin: INTEGER): INTEGER;
406 PROCEDURE [ccall] free* (p: PtrVoid);
408 PROCEDURE [ccall] ftell* (stream: PtrFILE): (* LONGINT; *) INTEGER; (* OpenBSD 5.2 *)
410 PROCEDURE [ccall] ftw* (filename: PtrSTR; func: __ftw_func_t; maxfds: INTEGER): INTEGER;
411 PROCEDURE [ccall] fwrite* (ptr: PtrVoid; size, nmemb: size_t; stream: PtrFILE): size_t;
412 PROCEDURE [ccall] getcwd* (buf: PtrSTR; size: size_t): PtrSTR;
414 (* PROCEDURE [ccall] getcontext* (ucontext_t: Ptrucontext_t): INTEGER; *) (* OpenBSD *)
416 (* PROCEDURE [ccall] gets* (s: PtrSTR); *)
417 PROCEDURE [ccall] gets* (s: PtrSTR): PtrSTR; (* OpenBSD 5.2 *)
419 PROCEDURE [ccall] fgets* (s: PtrSTR; n: INTEGER; fp: PtrFILE): PtrSTR;
420 PROCEDURE [ccall] gmtime* (VAR timep: time_t): tm;
421 PROCEDURE [ccall] kill* (pid: pid_t; sig: INTEGER): INTEGER;
422 PROCEDURE [ccall] localtime* (VAR timep: time_t): tm;
423 PROCEDURE [ccall] malloc* (size: size_t): PtrVoid;
424 PROCEDURE [ccall] mkdir* (path: PtrSTR; mode: mode_t): INTEGER;
425 PROCEDURE [ccall] mktime* (timeptr: tm): time_t;
426 PROCEDURE [ccall] opendir* (filename: PtrSTR): PtrDIR;
427 PROCEDURE [ccall] printf* (s: PtrSTR): INTEGER;
428 PROCEDURE [ccall] readdir* (dir: PtrDIR): PtrDirent;
429 PROCEDURE [ccall] remove* (path: PtrSTR): INTEGER;
430 PROCEDURE [ccall] rename* (from, to: PtrSTR): INTEGER;
431 PROCEDURE [ccall] scandir* (dir: PtrDIR; namelist: PtrDirentArray; selector: SelectorFunc; cmp: CmpFunc): INTEGER;
433 (* PROCEDURE [ccall] setcontext* (ucontext_t: Ptrucontext_t): INTEGER; *) (* OpenBSD *)
435 PROCEDURE [ccall] setjmp* (VAR env: jmp_buf): INTEGER;
436 PROCEDURE [ccall] sigaction* (sig_num: INTEGER; VAR [nil] act: sigaction_t; VAR [nil] oldact: sigaction_t): INTEGER;
437 PROCEDURE [ccall] sigaddset* (set: Ptrsigset_t; sig: INTEGER): INTEGER;
438 PROCEDURE [ccall] sigdelset* (set: Ptrsigset_t; sig: INTEGER): INTEGER;
439 PROCEDURE [ccall] sigemptyset* (set: Ptrsigset_t): INTEGER;
440 PROCEDURE [ccall] sigfillset* (set: Ptrsigset_t): INTEGER;
441 PROCEDURE [ccall] sigismemeber* (set: Ptrsigset_t; sig: INTEGER): INTEGER;
442 PROCEDURE [ccall] siglongjmp* (VAR env: sigjmp_buf; val: INTEGER);
444 PROCEDURE [ccall] signal* (sig_num: INTEGER; sighandler: PtrProc): PtrProc;
445 (* PROCEDURE [ccall] sigsetjmp* ["__sigsetjmp"] (VAR env: sigjmp_buf; savemask: INTEGER): INTEGER; *)
446 PROCEDURE [ccall] sigsetjmp* (VAR env: sigjmp_buf; savemask: INTEGER): INTEGER; (* OpenBSD *)
448 (* OpenBSD *)
449 PROCEDURE [ccall] stat* (filename: PtrSTR; VAR buf: stat_t): INTEGER; (* stat is a macro and expands to __xstat(3, filename, buf) *)
450 (* OpenBSD: __xstat not present
451 PROCEDURE [ccall] __xstat* (version: INTEGER; filename: PtrSTR; VAR buf: stat_t): INTEGER;
452 *)
454 PROCEDURE [ccall] strftime* (s: PtrSTR; max: size_t; format: PtrSTR; ptm: tm): size_t;
455 PROCEDURE [ccall] time* (VAR [nil] t: time_t): time_t;
457 (* PROCEDURE [ccall] __errno_location*(): INTEGER; *)
458 PROCEDURE [ccall] __errno_location* ["__errno"] (): INTEGER; (* OpenBSD *)
460 PROCEDURE [ccall] open* (path: PtrSTR; flags: SET; mode: mode_t): INTEGER;
461 PROCEDURE [ccall] close* (d: INTEGER): INTEGER;
462 PROCEDURE [ccall] read* (d: INTEGER; buf: PtrVoid; nbytes: size_t): ssize_t;
463 PROCEDURE [ccall] write* (d: INTEGER; buf: PtrVoid; nBytes: size_t): ssize_t;
465 (* OpenBSD *)
466 PROCEDURE [ccall] mprotect* (addr: PtrVoid; len: size_t; prot: SET): INTEGER;
468 (* OpenBSD 5.2 *)
469 PROCEDURE [ccall] madvise* (addr: PtrVoid; len: size_t; behav: INTEGER): INTEGER;
471 PROCEDURE [ccall] mmap* (addr: PtrVoid; len: size_t; prot: SET; flags: SET; fd: INTEGER; offset: off_t): PtrVoid;
472 PROCEDURE [ccall] munmap* (addr: PtrVoid; len: size_t): INTEGER;
474 PROCEDURE [ccall] getenv* (name: PtrSTR): PtrSTR;
476 (* OpenBSD 5.2: Ok *)
477 PROCEDURE [ccall] wctomb* (s: PtrSTR; wchar: wchar_t): INTEGER;
478 PROCEDURE [ccall] wcstombs* (s: PtrSTR; pwcs: PtrWSTR; n: size_t): size_t;
479 PROCEDURE [ccall] mbtowc* (pwc: PtrWSTR; s: PtrSTR; n: size_t): INTEGER;
480 PROCEDURE [ccall] mbstowcs* (pwcs: PtrWSTR; s: PtrSTR; n: size_t): size_t;
482 (* OpenBSD 5.2 *)
483 PROCEDURE [ccall] sysconf* (name: INTEGER): INTEGER;
485 PROCEDURE [ccall] sigaltstack* (VAR [nil] ss: sigaltstack_t; VAR [nil] oss: sigaltstack_t): INTEGER;
487 PROCEDURE [ccall] sigreturn* (ucontext_t: Ptrucontext_t): INTEGER;
489 PROCEDURE [ccall] sigprocmask* (how: INTEGER; VAR [nil] set: sigset_t; VAR [nil] oset: sigset_t): INTEGER;
491 END LinLibc.