home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / m2posx14 / src / posix1.dpp < prev    next >
Encoding:
Modula Definition  |  1994-05-14  |  18.0 KB  |  632 lines

  1. DEFINITION MODULE POSIX1;
  2. __DEF_SWITCHES__
  3. #ifdef HM2
  4. #ifdef __LONG_WHOLE__
  5. (*$!i+: Modul muss mit $i- uebersetzt werden! *)
  6. (*$!w+: Modul muss mit $w- uebersetzt werden! *)
  7. #else
  8. (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
  9. (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
  10. #endif
  11. #endif
  12. #if no_reexport
  13. #  error *** compiler does not allow reexporting!
  14. #endif
  15. (****************************************************************************)
  16. (* Das Modul fasst alle POSIX.1-Aufrufe, -Typen und -Konstanten und ein paar*)
  17. (* weitere Definitionen, die zwar nicht POSIX sind, aber fuer die Ausfueh-  *)
  18. (* rung der Prozeduren benoetigt werden, aus den unterliegenden Modulen zu- *)
  19. (* sammen. Fuer Leute, die lieber aus einem einzigen Modul importieren wol- *)
  20. (* len, und deren Compiler den Reexport erlaubt.                            *)
  21. (* Fuer die Beschreibung der Funktionen sollten die entsprechenden Defini-  *)
  22. (* tionsmodule konsultiert werden.                                          *)
  23. (* -------------------------------------------------------------------------*)
  24. (* 14-Mai-94, Holger Kleinschmidt & Ulrich Kaiser                           *)
  25. (****************************************************************************)
  26. #if !ISO_proc_const
  27. FROM SYSTEM IMPORT ADDRESS;
  28. FROM PORTAB IMPORT SIGNEDLONG,UNSIGNEDWORD;
  29. FROM types  IMPORT int,StrPtr,StrArray;
  30. #endif
  31. IMPORT types,e,loc,tim,file,dir,proc,sys,term,sig,jump;
  32.  
  33. (*===========================================================================*)
  34. (* Modul: 'e'                                                                *)
  35. (*===========================================================================*)
  36. (*
  37. VAR
  38.   errno : int; -- kann als Variable nicht reexportiert werden.
  39. *)
  40.  
  41. CONST
  42.   E2BIG        = e.E2BIG;
  43.   EACCES       = e.EACCES;
  44.   EAGAIN       = e.EAGAIN;
  45.   EBADF        = e.EBADF;
  46.   EBUSY        = e.EBUSY;
  47.   ECHILD       = e.ECHILD;
  48.   EDEADLK      = e.EDEADLK;
  49.   EDOM         = e.EDOM;
  50.   EEXIST       = e.EEXIST;
  51.   EFAULT       = e.EFAULT;
  52.   EFBIG        = e.EFBIG;
  53.   EINTR        = e.EINTR;
  54.   EINVAL       = e.EINVAL;
  55.   EIO          = e.EIO;
  56.   EISDIR       = e.EISDIR;
  57.   EMFILE       = e.EMFILE;
  58.   EMLINK       = e.EMLINK;
  59.   ENAMETOOLONG = e.ENAMETOOLONG;
  60.   ENFILE       = e.ENFILE;
  61.   ENODEV       = e.ENODEV;
  62.   ENOENT       = e.ENOENT;
  63.   ENOEXEC      = e.ENOEXEC;
  64.   ENOLCK       = e.ENOLCK;
  65.   ENOMEM       = e.ENOMEM;
  66.   ENOSPC       = e.ENOSPC;
  67.   ENOSYS       = e.ENOSYS;
  68.   ENOTDIR      = e.ENOTDIR;
  69.   ENOTEMPTY    = e.ENOTEMPTY;
  70.   ENOTTY       = e.ENOTTY;
  71.   ENXIO        = e.ENXIO;
  72.   EPERM        = e.EPERM;
  73.   EPIPE        = e.EPIPE;
  74.   ERANGE       = e.ERANGE;
  75.   EROFS        = e.EROFS;
  76.   ESPIPE       = e.ESPIPE;
  77.   ESRCH        = e.ESRCH;
  78.   EXDEV        = e.EXDEV;
  79.   ELOOP        = e.ELOOP;
  80.  
  81. (*===========================================================================*)
  82. (* Modul: 'types'                                                            *)
  83. (*===========================================================================*)
  84.  
  85. CONST
  86.   NULL = types.NULL;
  87.  
  88. CONST
  89.   PosixArgMax      = types.PosixArgMax;
  90.   PosixChildMax    = types.PosixChildMax;
  91.   PosixLinkMax     = types.PosixLinkMax;
  92.   PosixMaxCanon    = types.PosixMaxCanon;
  93.   PosixMaxInput    = types.PosixMaxInput;
  94.   PosixNameMax     = types.PosixNameMax;
  95.   PosixNGroupsMax  = types.PosixNGroupsMax;
  96.   PosixOpenMax     = types.PosixOpenMax;
  97.   PosixPathMax     = types.PosixPathMax;
  98.   PosixPipeBuf     = types.PosixPipeBuf;
  99.   PosixStreamMax   = types.PosixStreamMax;
  100.   PosixSsizeMax    = types.PosixSsizeMax;
  101.  
  102. CONST
  103.   ClkTck     = types.ClkTck;
  104.   NGroupsMax = types.NGroupsMax;
  105.   SsizeMax   = types.SsizeMax;
  106.  
  107. TYPE
  108.   uidT   = types.uidT;
  109.   gidT   = types.gidT;
  110.   inoT   = types.inoT;
  111.   timeT  = types.timeT;
  112.   offT   = types.offT;
  113.   sizeT  = types.sizeT;
  114.   ssizeT = types.ssizeT;
  115.   devT   = types.devT;
  116.   nlinkT = types.nlinkT;
  117.   pidT   = types.pidT;
  118.   clockT = types.clockT;
  119.  
  120. (*===========================================================================*)
  121. (* Modul: 'tim'                                                              *)
  122. (*===========================================================================*)
  123. (*
  124. VAR
  125.   tzname : TZstr; -- kann als Variable nicht reexportiert werden.
  126. *)
  127.  
  128. TYPE
  129.   TmRec = tim.TmRec;
  130.   TmPtr = tim.TmPtr;
  131.  
  132. #if ISO_proc_const
  133. CONST
  134.   tzset     = tim.tzset;
  135.   localtime = tim.localtime;
  136.   gmtime    = tim.gmtime;
  137.   asctime   = tim.asctime;
  138.   ctime     = tim.ctime;
  139.   mktime    = tim.mktime;
  140.   strftime  = tim.strftime;
  141. #else
  142. VAR (* READ ONLY! *)
  143.  tzset     : PROCEDURE;
  144.  localtime : PROCEDURE(timeT):TmPtr;
  145.  gmtime    : PROCEDURE(timeT):TmPtr;
  146.  asctime   : PROCEDURE(TmPtr):StrPtr;
  147.  ctime     : PROCEDURE(timeT):StrPtr;
  148.  mktime    : PROCEDURE(TmPtr):timeT;
  149.  strftime  : PROCEDURE(StrPtr,sizeT,StrPtr,TmPtr):sizeT;
  150. #endif
  151.  
  152. (*===========================================================================*)
  153. (* Modul: 'file'                                                             *)
  154. (*===========================================================================*)
  155.  
  156. TYPE
  157.   FileModes = file.FileModes;
  158.   modeT     = file.modeT;
  159.  
  160. CONST
  161.   sIRWXU = file.sIRWXU;
  162.   sIRWXG = file.sIRWXG;
  163.   sIRWXO = file.sIRWXO;
  164.  
  165. CONST
  166.   sIFMT  = file.sIFMT;
  167.   sIFCHR = file.sIFCHR;
  168.   sIFDIR = file.sIFDIR;
  169.   sIFBLK = file.sIFBLK;
  170.   sIFREG = file.sIFREG;
  171.   sIFIFO = file.sIFIFO;
  172.   sIFLNK = file.sIFLNK;
  173.  
  174. TYPE
  175.   StatRec = file.StatRec;
  176.  
  177. TYPE
  178.   AccessModes = file.AccessModes;
  179.   AccessMode  = file.AccessMode;
  180.  
  181. CONST
  182.   fOK = file.fOK;
  183.  
  184. TYPE
  185.   UTimBuf = file.UTimBuf;
  186.   UTimPtr = file.UTimPtr;
  187.  
  188. TYPE
  189.   OpenModes = file.OpenModes;
  190.   OpenMode  = file.OpenMode;
  191.  
  192. CONST
  193.   oACCMODE = file.oACCMODE;
  194.  
  195.   oRDONLY  = file.oRDONLY;
  196.   oWRONLY  = file.oWRONLY;
  197.   oRDWR    = file.oRDWR;
  198.  
  199. TYPE
  200.   SeekMode = file.SeekMode;
  201.  
  202. TYPE
  203.   FDFlags  = file.FDFlags;
  204.   FDFlag   = file.FDFlag;
  205.  
  206. TYPE
  207.   FcntlCmd = file.FcntlCmd;
  208.  
  209. TYPE
  210.   LockType = file.LockType;
  211.  
  212. TYPE
  213.   FlockRec = file.FlockRec;
  214.  
  215. TYPE
  216.   FcntlArg = file.FcntlArg;
  217.  
  218.  
  219. TYPE
  220.   PipeBuf = file.PipeBuf;
  221.  
  222. CONST
  223.   StdinFileNo  = file.StdinFileNo;
  224.   StdoutFileNo = file.StdoutFileNo;
  225.   StderrFileNo = file.StderrFileNo;
  226.  
  227.  
  228. #if ISO_proc_const
  229. CONST
  230.   creat     = file.creat;
  231.   open      = file.open;
  232.   fcntl     = file.fcntl;
  233.   close     = file.close;
  234.   read      = file.read;
  235.   write     = file.write;
  236.   lseek     = file.lseek;
  237.   ftruncate = file.ftruncate;
  238.   dup       = file.dup;
  239.   dup2      = file.dup2;
  240.   umask     = file.umask;
  241.   chmod     = file.chmod;
  242.   chown     = file.chown;
  243.   utime     = file.utime;
  244.   stat      = file.stat;
  245.   fstat     = file.fstat;
  246.   lstat     = file.lstat;
  247.   sISCHR    = file.sISCHR;
  248.   sISDIR    = file.sISDIR;
  249.   sISBLK    = file.sISBLK;
  250.   sISREG    = file.sISREG;
  251.   sISFIFO   = file.sISFIFO;
  252.   sISLNK    = file.sISLNK;
  253.   access    = file.access;
  254.   pipe      = file.pipe;
  255. #else
  256. VAR (* READ ONLY! *)
  257.   creat     : PROCEDURE(REF ARRAY OF CHAR,modeT):int;
  258.   open      : PROCEDURE(REF ARRAY OF CHAR,OpenMode,modeT):int;
  259.   fcntl     : PROCEDURE(int,FcntlCmd,VAR FcntlArg):int;
  260.   close     : PROCEDURE(int):types.int;
  261.   read      : PROCEDURE(int,ADDRESS,sizeT):ssizeT;
  262.   write     : PROCEDURE(int,ADDRESS,sizeT):ssizeT;
  263.   lseek     : PROCEDURE(int,offT,SeekMode):offT;
  264.   ftruncate : PROCEDURE(int,offT):int;
  265.   dup       : PROCEDURE(int):int;
  266.   dup2      : PROCEDURE(int,int):int;
  267.   umask     : PROCEDURE(modeT):modeT;
  268.   chmod     : PROCEDURE(REF ARRAY OF CHAR,modeT):int;
  269.   chown     : PROCEDURE(REF ARRAY OF CHAR,uidT,gidT):int;
  270.   utime     : PROCEDURE(REF ARRAY OF CHAR,UTimPtr):int;
  271.   stat      : PROCEDURE(REF ARRAY OF CHAR,VAR StatRec):int;
  272.   fstat     : PROCEDURE(int,VAR StatRec):int;
  273.   lstat     : PROCEDURE(REF ARRAY OF CHAR,VAR StatRec):int;
  274.   sISCHR    : PROCEDURE(modeT):BOOLEAN;
  275.   sISDIR    : PROCEDURE(modeT):BOOLEAN;
  276.   sISBLK    : PROCEDURE(modeT):BOOLEAN;
  277.   sISREG    : PROCEDURE(modeT):BOOLEAN;
  278.   sISFIFO   : PROCEDURE(modeT):BOOLEAN;
  279.   sISLNK    : PROCEDURE(modeT):BOOLEAN;
  280.   access    : PROCEDURE(REF ARRAY OF CHAR,AccessMode):int;
  281.   pipe      : PROCEDURE(VAR PipeBuf):int;
  282. #endif
  283.  
  284. (*===========================================================================*)
  285. (* Modul: 'dir'                                                              *)
  286. (*===========================================================================*)
  287.  
  288. TYPE
  289.   DIR       = dir.DIR;
  290.   DirentPtr = dir.DirentPtr;
  291.   DirentRec = dir.DirentRec;
  292.  
  293. #if ISO_proc_const
  294. CONST
  295.   mkdir     = dir.mkdir;
  296.   rmdir     = dir.rmdir;
  297.   link      = dir.link;
  298.   unlink    = dir.unlink;
  299.   rename    = dir.rename;
  300.   opendir   = dir.opendir;
  301.   readdir   = dir.readdir;
  302.   rewinddir = dir.rewinddir;
  303.   closedir  = dir.closedir;
  304.   symlink   = dir.symlink;
  305.   readlink  = dir.readlink;
  306. #else
  307. VAR (* READ ONLY! *)
  308.   mkdir     : PROCEDURE(REF ARRAY OF CHAR,modeT):int;
  309.   rmdir     : PROCEDURE(REF ARRAY OF CHAR):int;
  310.   link      : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):int;
  311.   unlink    : PROCEDURE(REF ARRAY OF CHAR):int;
  312.   rename    : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):int;
  313.   opendir   : PROCEDURE(REF ARRAY OF CHAR):DIR;
  314.   readdir   : PROCEDURE(DIR):DirentPtr;
  315.   rewinddir : PROCEDURE(DIR);
  316.   closedir  : PROCEDURE(VAR DIR):int;
  317.   symlink   : PROCEDURE(REF ARRAY OF CHAR,REF ARRAY OF CHAR):int;
  318.   readlink  : PROCEDURE(REF ARRAY OF CHAR,StrPtr,sizeT):int;
  319. #endif
  320.  
  321. (*===========================================================================*)
  322. (* Modul: 'proc'                                                             *)
  323. (*===========================================================================*)
  324.  
  325. TYPE
  326.   WaitVal     = proc.WaitVal;
  327.   WaitOptions = proc.WaitOptions;
  328.   WaitOption  = proc.WaitOption;
  329.  
  330. TYPE
  331.   TmsRec = proc.TmsRec;
  332.  
  333. #if ISO_proc_const
  334. CONST
  335.   chdir       = proc.chdir;
  336.   getcwd      = proc.getcwd;
  337.   getlogin    = proc.getlogin;
  338.   getpid      = proc.getpid;
  339.   getppid     = proc.getppid;
  340.   getuid      = proc.getuid;
  341.   getgid      = proc.getgid;
  342.   geteuid     = proc.geteuid;
  343.   getegid     = proc.getegid;
  344.   setuid      = proc.setuid;
  345.   setgid      = proc.setgid;
  346.   seteuid     = proc.seteuid;
  347.   setegid     = proc.setegid;
  348.   getpgrp     = proc.getpgrp;
  349.   setpgid     = proc.setpgid;
  350.   setsid      = proc.setsid;
  351.   fork        = proc.fork;
  352.   execve      = proc.execve;
  353.   execv       = proc.execv;
  354.   execvp      = proc.execvp;
  355.   waitpid     = proc.waitpid;
  356.   wait        = proc.wait;
  357.   WIFEXITED   = proc.WIFEXITED;
  358.   WEXITSTATUS = proc.WEXITSTATUS;
  359.   WIFSIGNALED = proc.WIFSIGNALED;
  360.   WTERMSIG    = proc.WTERMSIG;
  361.   WIFSTOPPED  = proc.WIFSTOPPED;
  362.   WSTOPSIG    = proc.WSTOPSIG;
  363.   times       = proc.times;
  364.   Exit        = proc.Exit;
  365. #else
  366. VAR (* READ ONLY! *)
  367.   chdir       : PROCEDURE(REF ARRAY OF CHAR):int;
  368.   getcwd      : PROCEDURE(StrPtr,sizeT):StrPtr;
  369.   getlogin    : PROCEDURE():StrPtr;
  370.   getpid      : PROCEDURE():pidT;
  371.   getppid     : PROCEDURE():pidT;
  372.   getuid      : PROCEDURE():uidT;
  373.   getgid      : PROCEDURE():gidT;
  374.   geteuid     : PROCEDURE():uidT;
  375.   getegid     : PROCEDURE():gidT;
  376.   setuid      : PROCEDURE(uidT):int;
  377.   setgid      : PROCEDURE(gidT):int;
  378.   seteuid     : PROCEDURE(uidT):int;
  379.   setegid     : PROCEDURE(gidT):int;
  380.   getpgrp     : PROCEDURE():pidT;
  381.   setpgid     : PROCEDURE(pidT,pidT):int;
  382.   setsid      : PROCEDURE():pidT;
  383.   fork        : PROCEDURE():pidT;
  384.   execve      : PROCEDURE(REF ARRAY OF CHAR,StrArray,StrArray):int;
  385.   execv       : PROCEDURE(REF ARRAY OF CHAR,StrArray):int;
  386.   execvp      : PROCEDURE(REF ARRAY OF CHAR,StrArray):int;
  387.   waitpid     : PROCEDURE(pidT,VAR WaitVal,WaitOption):pidT;
  388.   wait        : PROCEDURE(VAR WaitVal):pidT;
  389.   WIFEXITED   : PROCEDURE(WaitVal):BOOLEAN;
  390.   WEXITSTATUS : PROCEDURE(WaitVal):int;
  391.   WIFSIGNALED : PROCEDURE(WaitVal):BOOLEAN;
  392.   WTERMSIG    : PROCEDURE(WaitVal):int;
  393.   WIFSTOPPED  : PROCEDURE(WaitVal):BOOLEAN;
  394.   WSTOPSIG    : PROCEDURE(WaitVal):int;
  395.   times       : PROCEDURE(VAR TmsRec):clockT;
  396.   Exit        : PROCEDURE(int);
  397. #endif
  398.  
  399. (*===========================================================================*)
  400. (* Modul: 'term'                                                             *)
  401. (*===========================================================================*)
  402.  
  403. CONST
  404.   LCtermid = term.LCtermid;
  405.  
  406. TYPE
  407.   tciflags = term.tciflags;
  408.   tciflagT = term.tciflagT;
  409.  
  410. TYPE
  411.   tcoflags = term.tcoflags;
  412.   tcoflagT = term.tcoflagT;
  413.  
  414. TYPE
  415.   tccflags = term.tccflags;
  416.   tccflagT = term.tccflagT;
  417.  
  418. TYPE
  419.   tclflags = term.tclflags;
  420.   tclflagT = term.tclflagT;
  421.  
  422. TYPE
  423.   speedT = term.speedT;
  424.  
  425. TYPE
  426.   ccT   = term.ccT;
  427.   ccIdx = term.ccIdx;
  428.  
  429. CONST
  430.   NCCS = term.NCCS;
  431.  
  432. CONST
  433.   CR = term.CR;
  434.   NL = term.NL;
  435.  
  436. TYPE
  437.   TermiosRec = term.TermiosRec;
  438.  
  439. TYPE
  440.   AttrActions = term.AttrActions;
  441.  
  442. TYPE
  443.   FlowActions = term.FlowActions;
  444.  
  445. TYPE
  446.   QueueTypes = term.QueueTypes;
  447.  
  448.  
  449. #if ISO_proc_const
  450. CONST
  451.   isatty      = term.isatty;
  452.   ttyname     = term.ttyname;
  453.   ctermid     = term.ctermid;
  454.   cfgetispeed = term.cfgetispeed;
  455.   cfgetospeed = term.cfgetospeed;
  456.   cfsetispeed = term.cfsetispeed;
  457.   cfsetospeed = term.cfsetospeed;
  458.   tcgetattr   = term.tcgetattr;
  459.   tcsetattr   = term.tcsetattr;
  460.   tcsendbreak = term.tcsendbreak;
  461.   tcdrain     = term.tcdrain;
  462.   tcflow      = term.tcflow;
  463.   tcflush     = term.tcflush;
  464.   tcgetpgrp   = term.tcgetpgrp;
  465.   tcsetpgrp   = term.tcsetpgrp;
  466. #else
  467. VAR (* READ ONLY! *)
  468.   isatty      : PROCEDURE(int):int;
  469.   ttyname     : PROCEDURE(int):StrPtr;
  470.   ctermid     : PROCEDURE(StrPtr):StrPtr;
  471.   cfgetispeed : PROCEDURE(TermiosRec):speedT;
  472.   cfsetispeed : PROCEDURE(TermiosRec,speedT):int;
  473.   cfgetospeed : PROCEDURE(TermiosRec):speedT;
  474.   cfsetospeed : PROCEDURE(TermiosRec,speedT):int;
  475.   tcgetattr   : PROCEDURE(int,VAR TermiosRec):int;
  476.   tcsetattr   : PROCEDURE(int,AttrActions,TermiosRec):int;
  477.   tcsendbreak : PROCEDURE(int,int):int;
  478.   tcdrain     : PROCEDURE(int):int;
  479.   tcflow      : PROCEDURE(int,FlowActions):int;
  480.   tcflush     : PROCEDURE(int,QueueTypes):int;
  481.   tcgetpgrp   : PROCEDURE(int):pidT;
  482.   tcsetpgrp   : PROCEDURE(int,pidT):int;
  483. #endif
  484.  
  485. (*===========================================================================*)
  486. (* Modul: 'sig'                                                              *)
  487. (*===========================================================================*)
  488.  
  489. CONST
  490.   SigDfl = sig.SigDfl;
  491.   SigIgn = sig.SigIgn;
  492.  
  493. CONST
  494.   SIGHUP  = sig.SIGHUP;
  495.   SIGINT  = sig.SIGINT;
  496.   SIGQUIT = sig.SIGQUIT;
  497.   SIGILL  = sig.SIGILL;
  498.   SIGABRT = sig.SIGABRT;
  499.   SIGFPE  = sig.SIGFPE;
  500.   SIGKILL = sig.SIGKILL;
  501.   SIGSEGV = sig.SIGSEGV;
  502.   SIGPIPE = sig.SIGPIPE;
  503.   SIGALRM = sig.SIGALRM;
  504.   SIGTERM = sig.SIGTERM;
  505.   SIGSTOP = sig.SIGSTOP;
  506.   SIGTSTP = sig.SIGTSTP;
  507.   SIGCONT = sig.SIGCONT;
  508.   SIGCHLD = sig.SIGCHLD;
  509.   SIGTTIN = sig.SIGTTIN;
  510.   SIGTTOU = sig.SIGTTOU;
  511.   SIGUSR1 = sig.SIGUSR1;
  512.   SIGUSR2 = sig.SIGUSR2;
  513.  
  514. TYPE
  515.   SigsetPtr = sig.SigsetPtr;
  516.  
  517. TYPE
  518.   sigsetT = sig.sigsetT;
  519.  
  520. TYPE
  521.   SigHandler = sig.SigHandler;
  522.  
  523. TYPE
  524.   SignalHandler = sig.SignalHandler;
  525.  
  526. TYPE
  527.   SaFlag  = sig.SaFlag;
  528.   SaFlags = sig.SaFlags;
  529.  
  530. TYPE
  531.   SigactionPtr = sig.SigactionPtr;
  532.   SigactionRec = sig.SigactionRec;
  533.  
  534. TYPE
  535.   SigBlockType = sig.SigBlockType;
  536.  
  537. #if ISO_proc_const
  538. CONST
  539.   sigemptyset = sig.sigemptyset;
  540.   sigfillset  = sig.sigfillset;
  541.   sigaddset   = sig.sigaddset;
  542.   sigdelset   = sig.sigdelset;
  543.   sigismember = sig.sigismember;
  544.   sigaction   = sig.sigaction;
  545.   sigprocmask = sig.sigprocmask;
  546.   sigpending  = sig.sigpending;
  547.   kill        = sig.kill;
  548.   pause       = sig.pause;
  549.   sigsuspend  = sig.sigsuspend;
  550.   sleep       = sig.sleep;
  551.   alarm       = sig.alarm;
  552. #else
  553. VAR (* READ ONLY! *)
  554.   sigemptyset : PROCEDURE(VAR sigsetT);
  555.   sigfillset  : PROCEDURE(VAR sigsetT);
  556.   sigaddset   : PROCEDURE(VAR sigsetT,int):int;
  557.   sigdelset   : PROCEDURE(VAR sigsetT,int):int;
  558.   sigismember : PROCEDURE(sigsetT,int):int;
  559.   sigaction   : PROCEDURE(int,SigactionPtr,SigactionPtr):int;
  560.   sigprocmask : PROCEDURE(SigBlockType,SigsetPtr,SigsetPtr):int;
  561.   sigpending  : PROCEDURE(VAR sigsetT):int;
  562.   kill        : PROCEDURE(pidT,int):int;
  563.   pause       : PROCEDURE;
  564.   sigsuspend  : PROCEDURE(sigsetT);
  565.   sleep       : PROCEDURE(CARDINAL):CARDINAL;
  566.   alarm       : PROCEDURE(CARDINAL):CARDINAL;
  567. #endif
  568.  
  569. (*===========================================================================*)
  570. (* Modul: 'sys'                                                              *)
  571. (*===========================================================================*)
  572.  
  573. TYPE
  574.   PConfVal = sys.PConfVal;
  575.   SConfVal = sys.SConfVal;
  576.  
  577. TYPE
  578.   UtsnameRec = sys.UtsnameRec;
  579.  
  580. #if ISO_proc_const
  581. CONST
  582.   uname    = sys.uname;
  583.   pathconf = sys.pathconf;
  584.   sysconf  = sys.sysconf;
  585.   time     = sys.time;
  586. #else
  587. VAR (* READ ONLY! *)
  588.   uname    : PROCEDURE(VAR UtsnameRec):int;
  589.   pathconf : PROCEDURE(REF ARRAY OF CHAR,PConfVal):SIGNEDLONG;
  590.   sysconf  : PROCEDURE(SConfVal):SIGNEDLONG;
  591.   time     : PROCEDURE(ADDRESS):timeT;
  592. #endif
  593.  
  594. (*===========================================================================*)
  595. (* Modul: 'jump'                                                             *)
  596. (*===========================================================================*)
  597.  
  598. TYPE
  599.   JmpBuf    = jump.JmpBuf;
  600.   SigJmpBuf = jump.SigJmpBuf;
  601.  
  602. #if ISO_proc_const
  603. CONST
  604.   setjmp      = jump.setjmp;
  605.   longjmp     = jump.longjmp;
  606.   sigsetjmp   = jump.sigsetjmp;
  607.   siglongjmp  = jump.siglongjmp;
  608. #else
  609. VAR (* READ ONLY! *)
  610.   setjmp      : PROCEDURE(VAR JmpBuf):int;
  611.   longjmp     : PROCEDURE(VAR JmpBuf,int);
  612.   sigsetjmp   : PROCEDURE(VAR SigJmpBuf,UNSIGNEDWORD):int;
  613.   siglongjmp  : PROCEDURE(VAR SigJmpBuf,int);
  614. #endif
  615.  
  616. (*===========================================================================*)
  617. (* Modul: 'loc'                                                              *)
  618. (*===========================================================================*)
  619.  
  620. TYPE
  621.   LcType = loc.LcType;
  622.  
  623. #if ISO_proc_const
  624. CONST
  625.   setlocale = loc.setlocale;
  626. #else
  627. VAR (* READ ONLY! *)
  628.   setlocale : PROCEDURE(LcType,StrPtr):StrPtr;
  629. #endif
  630.  
  631. END POSIX1.
  632.