Util0: module{ PATH: con "/dis/lib/util0.dis"; init: fn(); kill: fn(pid: int); killgrp: fn(pid: int); pid: fn(): int; warn: fn(s: string); fail: fn(s: string); hex: fn(d: array of byte): string; unhex: fn(s: string): array of byte; min, max: fn(a, b: int): int; abs: fn(a: int): int; eq: fn(a, b: array of byte): int; preadn: fn(fd: ref Sys->FD, buf: array of byte, n: int, o: big): int; readfile: fn(f: string, max: int): array of byte; # max -1 means no limit readfd: fn(fd: ref Sys->FD, max: int): array of byte; writefile: fn(f: string, create: int, buf: array of byte): string; writefd: fn(fd: ref Sys->FD, buf: array of byte): string; workdir: fn(): string; exists: fn(f: string): int; isdir: fn(f: string): int; rev: fn[T](l: list of T): list of T; revint: fn(l: list of int): list of int; revbig: fn(l: list of big): list of big; l2a: fn[T](l: list of T): array of T; a2l: fn[T](l: array of T): list of T; inssort, qsort: fn[T](a: array of T, ge: ref fn(a, b: T): int); prefix, suffix, index: fn(sub, s: string): int; strip, droptl, taketl: fn(s, cl: string): string; stripws: fn(s: string): string; join: fn(l: list of string, sep: string): string; hasstr: fn(l: list of string, s: string): int; sizefmt: fn(v: big): string; sizeparse: fn(s: string): big; g64, g64l: fn(d: array of byte, o: int): (big, int); g32, g32l: fn(d: array of byte, o: int): (big, int); g32i, g32il, g16, g16l, g8: fn(d: array of byte, o: int): (int, int); gbuf: fn(d: array of byte, o, n: int): (array of byte, int); p64, p64l: fn(d: array of byte, o: int, v: big): int; p32, p32l: fn(d: array of byte, o: int, v: big): int; p32i, p32il, p16, p16l: fn(d: array of byte, o: int, v: int): int;};
Util0: module
{
PATH: con "/dis/lib/util0.dis";
init: fn();
kill: fn(pid: int);
killgrp: fn(pid: int);
pid: fn(): int;
warn: fn(s: string);
fail: fn(s: string);
hex: fn(d: array of byte): string;
unhex: fn(s: string): array of byte;
min,
max: fn(a, b: int): int;
abs: fn(a: int): int;
eq: fn(a, b: array of byte): int;
preadn: fn(fd: ref Sys->FD, buf: array of byte, n: int, o: big): int;
readfile: fn(f: string, max: int): array of byte; # max -1 means no limit
readfd: fn(fd: ref Sys->FD, max: int): array of byte;
writefile: fn(f: string, create: int, buf: array of byte): string;
writefd: fn(fd: ref Sys->FD, buf: array of byte): string;
workdir: fn(): string;
exists: fn(f: string): int;
isdir: fn(f: string): int;
rev: fn[T](l: list of T): list of T;
revint: fn(l: list of int): list of int;
revbig: fn(l: list of big): list of big;
l2a: fn[T](l: list of T): array of T;
a2l: fn[T](l: array of T): list of T;
inssort,
qsort: fn[T](a: array of T, ge: ref fn(a, b: T): int);
prefix,
suffix,
index: fn(sub, s: string): int;
strip,
droptl,
taketl: fn(s, cl: string): string;
stripws: fn(s: string): string;
join: fn(l: list of string, sep: string): string;
hasstr: fn(l: list of string, s: string): int;
sizefmt: fn(v: big): string;
sizeparse: fn(s: string): big;
g64, g64l: fn(d: array of byte, o: int): (big, int);
g32, g32l: fn(d: array of byte, o: int): (big, int);
g32i, g32il,
g16, g16l,
g8: fn(d: array of byte, o: int): (int, int);
gbuf: fn(d: array of byte, o, n: int): (array of byte, int);
p64, p64l: fn(d: array of byte, o: int, v: big): int;
p32, p32l: fn(d: array of byte, o: int, v: big): int;
p32i, p32il,
p16, p16l: fn(d: array of byte, o: int, v: int): int;
};