<<>> <> <> <> <> <> <> DIRECTORY UnixTypes USING [CHARPtr, FD, FileFlags, IPCCtlCmd, Mode, RawVM, RES, SharedMemoryIdentifier, ShmIdDs, SockAddr, SockAddrPtr]; UnixSysCallExtensions: CEDAR DEFINITIONS ~ { OPEN UnixTypes; <> FDKind: TYPE ~ MACHINE DEPENDENT { std(0), -- file system, socket stream(1), -- System V stream error (CARD.LAST) }; <> Open4: PROC [path: CHARPtr, flags: FileFlags, mode: Mode, kind: FDKind] RETURNS [FD]; <> OpenStd: PROC [path: CHARPtr, flags: FileFlags, mode: Mode] RETURNS [FD] ~ INLINE { RETURN [Open4[path, flags, mode, std]]; }; <
> OpenStream: PROC [path: CHARPtr, flags: FileFlags, mode: Mode] RETURNS [FD] ~ INLINE { RETURN [Open4[path, flags, mode, stream]]; }; <> GetDescriptorKind: PROC [d: FD] RETURNS [FDKind]; GetDTableSize1: PROC [kind: FDKind] RETURNS [INT]; <> <<>> ExpandPath: PROC [path: CHARPtr] RETURNS [CHARPtr]; <> <> <<>> GetNumberOfFreeFDs: PROC [kind: FDKind] RETURNS [INT]; <> <> BlockingMode: TYPE ~ MACHINE DEPENDENT { someData(0), -- until eof/eom or > 0 bytes delivered allData(1), -- until eof/eom or all requested data delivered never(2), -- never (CARD.LAST) }; SetGetBlocking: PROC [s: FD, blocking: BlockingMode] RETURNS [RES]; <> GetGetBlocking: PROC [s: FD] RETURNS [BlockingMode]; <> SetPutBlocking: PROC [s: FD, blocking: BlockingMode] RETURNS [RES]; <> GetPutBlocking: PROC [s: FD] RETURNS [BlockingMode]; <> <> waitForever: CARD ~ 0; SetGetTimeout: PROC [s: FD, timeoutMsec: CARD ¬ waitForever] RETURNS [RES]; <> <<>> GetGetTimeout: PROC [s: FD] RETURNS [CARD]; <> <<>> SetPutTimeout: PROC [s: FD, timeoutMsec: CARD ¬ waitForever] RETURNS [RES]; <> <<>> GetPutTimeout: PROC [s: FD] RETURNS [CARD]; <> <<>> <> Spawn: PROC [cmd, stdin, stdout, stderr: CHARPtr] RETURNS [INT]; <> <> <<>> CDSpawn: PROC [cmd, wd, stdin, stdout, stderr: CHARPtr] RETURNS [INT]; <> <> <<>> PPOpen: PROC [cmd: CHARPtr] RETURNS [FD]; <> <> RExec2: PROC [host: SockAddrPtr, port: CARD, user: CHARPtr, passwd: CHARPtr, cmd: CHARPtr, errbuf: CHARPtr, errbufbytes: INT ¬ 0] RETURNS [FD]; <> <> <> <> <> <> <> <> <> <> <> <> <> <<>> <> VMReserve: PROC [nbytes: CARD] RETURNS [address: RawVM]; <> <> UNTHREADEDShmCtl: UNSAFE PROC [shmId: SharedMemoryIdentifier, cmd: IPCCtlCmd, buf: POINTER TO ShmIdDs] RETURNS [RES]; <> <> RegisterUNTHREADEDTerminationCleanupProc: UNSAFE PROC [cleanup: PROC [REF], data: REF ¬ NIL] RETURNS [RES]; <> <> }. <> <>