home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1993-10-23 | 5.5 KB | 109 lines |
- DEFINITION MODULE sys;
-
- (*****************************************************************************)
- (* Systeminformationen und -einstellungen. *)
- (* *)
- (* Ein Fehler ist immer dann aufgetreten, wenn bei Funktionen mit Typ INTEGER*)
- (* ein negativer Wert zurueckgegeben wird. *)
- (* Die genaue Fehlerursache kann bei Bedarf ueber "err.errno" und die ent- *)
- (* sprechenden Konstanten ermittelt werden. Die Funktionen veraendern "errno"*)
- (* nur dann, wenn ein Fehler aufgetreten ist, bei erfolgreicher Ausfuehrung *)
- (* wird "errno" nicht veraendert. *)
- (* *)
- (* "GEMDOS": *)
- (* Die Eigenschaften der Funktionen unter dem ``blanken'' "GEMDOS" sind z.T. *)
- (* stark eingeschraenkt; unter dem Stichwort "GEMDOS" ist deswegen immer *)
- (* angegeben, in wieweit die Funktion emuliert werden kann. Ist MiNT-Unter- *)
- (* stuetzung angegeben, so ist unter der Betriebssystemerweiterung "MiNT" *)
- (* eine bessere Unterstuetzung der Funktionen zu erwarten. *)
- (* --------------------------------------------------------------------------*)
- (* 14-Feb-93, Holger Kleinschmidt *)
- (*****************************************************************************)
-
- FROM types IMPORT
- (* TYPE *) UNSIGNEDLONG, SIGNEDLONG, WORDSET, timeT;
-
- (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
-
- CONST (* POSIX: "sysconf(scClkTck)" benutzen! *)
- CLKTCK = LC(200); (* Aufloesung von 'clockT': (CLKTCK Intervalle)/ Sekunde *)
-
- (* Das sind die einzigen beiden Werte, die zur Uebersetzungszeit definiert
- * sein muessen, alle anderen Werte koennen durch "sysconf()" und "pathconf()"
- * ermittelt werden.
- *)
- CONST
- NGROUPSMAX = 0; (* der von "sysconf()" gelieferte Wert kann groesser sein *)
- SSIZEMAX = 7FFFFFFFH; (* = MAX(ssizeT) *)
-
- (*==================== "pathconf()", "sysconf()" ============================*)
-
- CONST (* nicht POSIX: *)
- UNLIMITED = 7FFFFFFFH; (* <=> Wert nur durch Speicher o.ae. begrenzt *)
-
- TYPE
- PConfVal = (
- pcLinkMax, (* Max. Anzahl Links *)
- pcPathMax, (* Max. Laenge einer kompletten Pfadangabe *)
- pcNameMax, (* Max. Laenge eines Dateinamens ohne Pfad *)
- pcPipeBuf, (* Anzahl Bytes, die ``atomar'' in Pipe geschrieben werden *)
- pcNoTrunc, (* Werden Pfadangaben automatisch gekuerzt ? *)
- pcMaxCanon,
- pcMaxInput,
- pcChownRestricted,(* Kann Benutzer seine Dateien fuer andere freigeben ? *)
- pcVdisable
- );
-
- TYPE
- SConfVal = (
- scArgMax, (* max. Laenge fuer Argumente und Environment bei "exec*()" *)
- scOpenMax, (* max. Anzahl gleichzeitig offener Dateien *)
- scNGroupsMax,
- scChildMax, (* max. Anzahl gleichzeitig ex. Prozesse pro Benutzer *)
- scClkTck, (* = CLKTCK, Anzahl Intervalle/Sek bei Typ 'clockT' *)
- scJobControl,(* wird ``Job Control'' unterstuetzt ? *)
- scSavedIds,
- scVersion (* POSIX-Version, 6 dez. Digits, z.B. 198808 oder 199009 *)
- );
-
- (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
-
- PROCEDURE pathconf ((* EIN/ -- *) REF path : ARRAY OF CHAR;
- (* EIN/ -- *) which : PConfVal ): SIGNEDLONG;
-
- (*--------------------------------------------------------------------------
- | Ermittelt Maximalwerte (siehe Def. 'PConfVal') fuer das Dateisystem, auf |
- | dem sich <path> befindet. |
- | Wenn ein Wert unbegrenzt ist, wird UNLIMITED zurueckgegeben. |
- | |
- | "GEMDOS": Die Werte sind feste Konstanten. |
- | <path> ist auf die Laenge von 'PathName' begrenzt; ist der Pfad|
- | laenger (evtl. nach der Umwandlung vom "*IX"-Stil in den "DOS"-|
- | Stil), wird ein Fehler gemeldet, und 'errno' auf 'ENAMETOOLONG'|
- | gesetzt. |
- | ("MiNT"-Unterstuetzung.) |
- --------------------------------------------------------------------------*)
-
- PROCEDURE sysconf ((* EIN/ -- *) which : SConfVal ): SIGNEDLONG;
-
- (*--------------------------------------------------------------------------
- | Ermittelt Maximalwerte (siehe Def. 'SConfVal') fuer das System. |
- | Wenn ein Wert unbegrenzt ist, wird UNLIMITED zurueckgegeben. |
- | |
- | "GEMDOS": Die Werte sind feste Konstanten. |
- | ("MiNT"-Unterstuetzung.) |
- --------------------------------------------------------------------------*)
-
-
- PROCEDURE time ((* -- /AUS *) VAR time : timeT );
-
- (*--------------------------------------------------------------------------
- | Liefert in <time> das aktuelle Datum/die aktuelle Zeit in Sekunden seit |
- | dem 1.Jan.1970. |
- | |
- | "GEMDOS": Zeit und Datum sind im DOS-Format, siehe 'types.timeT' |
- --------------------------------------------------------------------------*)
-
-
- END sys.
-