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 >
Wrap
Text File
|
1993-10-23
|
6KB
|
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.