home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / program / m2posx02 / sys.dpp < prev    next >
Text File  |  1993-10-23  |  6KB  |  109 lines

  1. DEFINITION MODULE sys;
  2.  
  3. (*****************************************************************************)
  4. (* Systeminformationen und -einstellungen.                                   *)
  5. (*                                                                           *)
  6. (* Ein Fehler ist immer dann aufgetreten, wenn bei Funktionen mit Typ INTEGER*)
  7. (* ein negativer Wert zurueckgegeben wird.                                   *)
  8. (* Die genaue Fehlerursache kann bei Bedarf ueber "err.errno" und die ent-   *)
  9. (* sprechenden Konstanten ermittelt werden. Die Funktionen veraendern "errno"*)
  10. (* nur dann, wenn ein Fehler aufgetreten ist, bei erfolgreicher Ausfuehrung  *)
  11. (* wird "errno" nicht veraendert.                                            *)
  12. (*                                                                           *)
  13. (* "GEMDOS":                                                                 *)
  14. (* Die Eigenschaften der Funktionen unter dem ``blanken'' "GEMDOS" sind z.T. *)
  15. (* stark eingeschraenkt; unter dem Stichwort "GEMDOS" ist deswegen immer     *)
  16. (* angegeben, in wieweit die Funktion emuliert werden kann. Ist MiNT-Unter-  *)
  17. (* stuetzung angegeben, so ist unter der Betriebssystemerweiterung "MiNT"    *)
  18. (* eine bessere Unterstuetzung der Funktionen zu erwarten.                   *)
  19. (* --------------------------------------------------------------------------*)
  20. (* 14-Feb-93, Holger Kleinschmidt                                            *)
  21. (*****************************************************************************)
  22.  
  23. FROM types IMPORT
  24. (* TYPE *) UNSIGNEDLONG, SIGNEDLONG, WORDSET, timeT;
  25.  
  26. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  27.  
  28. CONST (* POSIX: "sysconf(scClkTck)" benutzen! *)
  29.   CLKTCK = LC(200); (* Aufloesung von 'clockT': (CLKTCK Intervalle)/ Sekunde *)
  30.  
  31. (* Das sind die einzigen beiden Werte, die zur Uebersetzungszeit definiert
  32.  * sein muessen, alle anderen Werte koennen durch "sysconf()" und "pathconf()"
  33.  * ermittelt werden.
  34.  *)
  35. CONST
  36.   NGROUPSMAX = 0; (* der von "sysconf()" gelieferte Wert kann groesser sein *)
  37.   SSIZEMAX   = 7FFFFFFFH; (* = MAX(ssizeT) *)
  38.  
  39. (*==================== "pathconf()", "sysconf()" ============================*)
  40.  
  41. CONST (* nicht POSIX: *)
  42.   UNLIMITED = 7FFFFFFFH; (* <=> Wert nur durch Speicher o.ae. begrenzt *)
  43.  
  44. TYPE
  45.   PConfVal = (
  46.     pcLinkMax,   (* Max. Anzahl Links *)
  47.     pcPathMax,   (* Max. Laenge einer kompletten Pfadangabe *)
  48.     pcNameMax,   (* Max. Laenge eines Dateinamens ohne Pfad *)
  49.     pcPipeBuf,   (* Anzahl Bytes, die ``atomar'' in Pipe geschrieben werden *)
  50.     pcNoTrunc,   (* Werden Pfadangaben automatisch gekuerzt ? *)
  51.     pcMaxCanon,
  52.     pcMaxInput,
  53.     pcChownRestricted,(* Kann Benutzer seine Dateien fuer andere freigeben ? *)
  54.     pcVdisable
  55.   );
  56.  
  57. TYPE
  58.   SConfVal = (
  59.     scArgMax,    (* max. Laenge fuer Argumente und Environment bei "exec*()" *)
  60.     scOpenMax,   (* max. Anzahl gleichzeitig offener Dateien *)
  61.     scNGroupsMax,
  62.     scChildMax,  (* max. Anzahl gleichzeitig ex. Prozesse pro Benutzer *)
  63.     scClkTck,    (* = CLKTCK, Anzahl Intervalle/Sek bei Typ 'clockT' *)
  64.     scJobControl,(* wird ``Job Control'' unterstuetzt ? *)
  65.     scSavedIds,
  66.     scVersion    (* POSIX-Version, 6 dez. Digits, z.B. 198808 oder 199009 *)
  67.   );
  68.  
  69. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  70.  
  71.  PROCEDURE pathconf ((* EIN/ -- *) REF path  : ARRAY OF CHAR;
  72.                      (* EIN/ -- *)     which : PConfVal      ): SIGNEDLONG;
  73.  
  74. (*--------------------------------------------------------------------------
  75.  | Ermittelt Maximalwerte (siehe Def. 'PConfVal') fuer das Dateisystem, auf |
  76.  | dem sich <path> befindet.                                                |
  77.  | Wenn ein Wert unbegrenzt ist, wird UNLIMITED zurueckgegeben.             |
  78.  |                                                                          |
  79.  | "GEMDOS": Die Werte sind feste Konstanten.                               |
  80.  |           <path> ist auf die Laenge von 'PathName' begrenzt; ist der Pfad|
  81.  |           laenger (evtl. nach der Umwandlung vom "*IX"-Stil in den "DOS"-|
  82.  |           Stil), wird ein Fehler gemeldet, und 'errno' auf 'ENAMETOOLONG'|
  83.  |           gesetzt.                                                       |
  84.  |           ("MiNT"-Unterstuetzung.)                                       |
  85.   --------------------------------------------------------------------------*)
  86.  
  87.  PROCEDURE sysconf ((* EIN/ -- *) which : SConfVal ): SIGNEDLONG;
  88.  
  89. (*--------------------------------------------------------------------------
  90.  | Ermittelt Maximalwerte (siehe Def. 'SConfVal') fuer das System.          |
  91.  | Wenn ein Wert unbegrenzt ist, wird UNLIMITED zurueckgegeben.             |
  92.  |                                                                          |
  93.  | "GEMDOS": Die Werte sind feste Konstanten.                               |
  94.  |           ("MiNT"-Unterstuetzung.)                                       |
  95.   --------------------------------------------------------------------------*)
  96.  
  97.  
  98.  PROCEDURE time ((* -- /AUS *) VAR time : timeT );
  99.  
  100. (*--------------------------------------------------------------------------
  101.  | Liefert in <time> das aktuelle Datum/die aktuelle Zeit in Sekunden seit  |
  102.  | dem 1.Jan.1970.                                                          |
  103.  |                                                                          |
  104.  | "GEMDOS": Zeit und Datum sind im DOS-Format, siehe 'types.timeT'         |
  105.   --------------------------------------------------------------------------*)
  106.  
  107.  
  108. END sys.
  109.