•  Back 
  •  Dateifunktionen 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File5.9.5  Fcntl                                                       TOS

 Name:         »Fcntl« - Kontrolloperationen auf einem File ausführen.

 Gemdosnummer: 260

 Deklaration:  int32_t Fcntl ( int16_t fh, int32_t arg, int16_t cmd );

 Beschreibung: Die Funktion führt verschiedene Kontrolloperationen auf 
               der Datei mit der Handle fh duch. Der Parameter cmd 
               beschreibt die gewünschte Operation, und kann folgende 
               Werte annehmen (arg ist dabei vom gewählten Kommando 
               abhängig):

               F_DUPFD (0):
               Dupliziert das angegebene Datei-Handle. Für das neue 
               Intervall gilt: arg <= Handle < 32. Falls in dem 
               angegebenen Bereich keine freien Handles existieren, 
               wird die Fehlermeldung ENHNDL zurückgegeben. Ein Aufruf 
               von Fdup (handle) ist also äquivalent zu Fcntl (handle, 
               6L, F_DUPFD).

               F_GETFD (1):
               Dieses Kommando gibt das nicht-vererbungs-Flag für das 
               Handle fh zurück. Das Flag ist 0, wenn per Pexec 
               gestartete Tochterprozesse die angegebene Datei erben 
               sollen, anderenfalls hat es den Wert 1. Der Parameter 
               arg besitzt keine Bedeutung.

               F_SETFD (2):
               Dieses Kommando setzt das nicht-vererbungs-Flag für das 
               Handle f. arg gibt an, ob ein mittels Pexec gestarteter 
               Child Processes die Dateihandle erbt. Ein Wert von 1 
               steht für nicht vererben, ein Wert von 0 für vererben. 
               Der Defaultwert des Flags ist 0 für die Standard 
               GEMDOS-Handles im Bereich von 0...5 und 1 für alle 
               anderen, also nicht-Standard-Handles.

               F_GETFL (3):
               Dieses Kommando gibt die Dateihandle-Flags zurück, die 
               durch den Benutzer verändert werden können. Dabei 
               handelt es sich um den bei Fopen angegebenen Parameter 
               mode, sofern dieser nicht durch einen anderen Aufruf 
               von Fcntl verändert worden ist.

               F_SETFL (4):
               Dieses Kommando setzt die Dateihandle-Flags neu, die 
               durch den Benutzer verändert werden können (andere Bits 
               werden ignoriert, und sollten auf den Wert 0 gesetzt 
               werden). Es ist nicht möglich, den Schreib-Lese Modus 
               bzw. die Modi für Filesharing zu verändern.

               F_GETLK (5):
               Dieses Kommando testet auf einen Lock auf einer Datei. 
               Der Parameter arg ist ein Zeiger auf eine 
               flock-Struktur, in der Informationen über einen Datei- 
               Lock gespeichert sind. Falls ein Lock existiert, wird 
               er in die Struktur kopiert. Dabei wird in der 
               Komponenten l_pid die PID des sperrenden Prozesses 
               vermerkt. Falls kein Lock existiert, wird die 
               Komponente l_type auf den Wert F_UNLCK gesetzt. Für den 
               Fall, daß der Lock von einem anderen Rechner im 
               Netzwerk gehalten wird, wird die Komponente l_pid auf 
               einen vom NFS (Netzwerk-Filesystem) definierten Wert 
               gesetzt. Für diesen Wert gilt: 0x1000 <= l_pid <= 
               0xffff. Man denke daran, daß normale PID's einen Wert 
               kleiner als 1000 besitzen.

               F_SETLK (6):
               Dieses Kommando setzt (l_type = F_RDLCK oder F_WRLCK) 
               bzw. löscht (l_type = F_UNLCK) einen beratenden Lock 
               auf eine Datei. Falls diese eine FIFO-Queue (First-in- 
               First-Out) ist, muß die gesamte Datei auf einmal 
               behandelt werden. Für den Fall, daß der Lock mit von 
               anderen Prozessen gesetzten Locks kollidiert, wird der 
               Wert ELOCKED zurückgegeben. Wenn versucht wird, einen 
               nicht-existierenden Lock zu löschen, wird der Wert 
               ENSLOCK zurückgeliefert. Zu beachten ist, daß sich 
               Read-Locks überlappen dürfen, Write-Locks hingegen 
               nicht. Falls eine gelockte Datei geschlossen wird, oder 
               der entsprechende Prozess terminiert, werden alle 
               gesetzten Locks automatisch aufgehoben (d.h. 
               zurückgesetzt).

               F_SETLKW (7):
               Analog F_SETLK, mit dem Unterschied, daß wenn der Lock 
               mit solchen von anderen Prozessen kollidiert, nicht 
               ELOCKED zurückgeliefert wird, sondern der sperrende 
               Prozess suspendiert wird, bis das Locking vom anderen 
               Prozess aufgehoben wird.

               FSTAT (0x4600):
               Ermittelt die Attribute einer Datei. Im Parameter arg 
               wird ein Zeiger auf eine XATTR-Struktur 
               zurückgeliefert, so als ob ein Aufruf von Fxattr 
               gemacht worden wäre. Das Kommando wird in MagiC ab 
               Version 3.0 unterstützt.

               FIONREAD (0x4601):
               Im Parameter arg wird ein Zeiger auf einen Long-Wert 
               zurückgegeben, in dem die Anzahl der Bytes angegeben 
               ist, die z.Zt. vom angegebenen Datei-Handle gelesen 
               werden können, ohne daß der Prozess blockiert wird. Die 
               Angabe ist nicht zwingend korrekt, da die genaue Anzahl 
               in einigen Fällen nur geschätzt werden kann. Das 
               Kommando wird in MagiC ab Version 3.0 unterstützt.

               FIONWRITE (0x4602):
               Analog FIONREAD, nur wird hier die Anzahl der Bytes, 
               die z.Zt. geschrieben werden können, ausgegeben. Das 
               Kommando wird in MagiC ab Version 3.0 unterstützt.

               FUTIME (0x4603):
               z.Zt. keine Informationen bekannt.

               FTRUNCATE (0x4604):
               Der Parameter arg ist ein Zeiger auf einen Long-Wert, 
               der die neue Länge der zu verkürzenden Datei enthält. 
               Das Kommando wird in MagiC ab Version 3.0 unterstützt.

               FIOEXECPT (0x4605):
               Im Parameter arg wird ein Zeiger auf einen Long-Wert 
               zurückgegeben, in dem steht, ob sich die Datei in einem 
               Ausnahmezustand befindet (1) oder nicht (0).

               Die folgenden Kommandos sind auf alle Terminal-Devices 
               wie die Console oder ein Pseudo-Terminal anzuwenden:

               TIOCGETP (0x5400):
               Dieses Kommando gibt über den Parameter arg einen 
               Zeiger auf eine sgttyb-Struktur zurück, in der die 
               Parameter des Terminals definiert sind.

               TIOCSETN (0x5401):
               Über dieses Kommando kann ein neue sgttyb-Struktur 
               gesetzt werden, welche die Parameter des Terminals 
               festlegt. Es müssen zeurst die Parameter des Terminals 
               erfragt werden, die gewünschten verändert und dann mit 
               diesem Kommando gesetzt werden.

               TIOCGETC (0x5402):
               Dieses Kommando liefert über den Parameter arg einen 
               Zeiger auf eine tchars-Struktur zurück, in welcher die 
               Terminal-Kontrollzeichen definiert sind.

               TIOCSETC (0x5403):
               Über dieses Kommando können neue Terminal- 
               Kontrollzeichen gesetzt werden. Dazu übergibt man in 
               arg einen Zeiger auf eine tchars-Struktur, in welcher 
               die Kontrollzeichen definiert sind. Wird ein Zeichen 
               auf 0 gesetzt, so wird die entsprechende Funktion 
               gesperrt.

               TIOCGLTC (0x5404):
               Dieses Kommando liefert über den Parameter arg einen 
               Zeiger auf eine ltchars-Struktur zurück, in welcher die 
               erweiterten Terminal-Kontrollzeichen definiert sind.

               TIOCSLTC (0x5405):
               Über dieses Kommando können neue erweiterte Terminal- 
               Kontrollzeichen gesetzt werden. Dazu übergibt man in 
               arg einen Zeiger auf eine ltchars-Struktur, in welcher 
               die Kontrollzeichen definiert sind. Wird ein Zeichen 
               auf 0 gesetzt, so wird die entsprechende Funktion 
               gesperrt.

               TIOCGPGRP (0x5406):
               Dieses Kommando liefert über den Parameter arg einen 
               Zeiger auf die Prozess-Gruppe des Terminals zurück.

               TIOCSPGRP (0x5407):
               Über dieses Kommando kann die Prozess-Gruppe des 
               Terminals eingestellt werden. Dazu wird über den 
               Parameter arg ein Zeiger auf die entsprechende 
               Prozess-Gruppe übergeben. Sollten Prozesse aus anderen 
               Gruppen versuchen, auf dieses Terminal (lesend oder 
               schreibend) zuzugreifen, so werden ihnen Job-Control- 
               Signale (SIGTSTP etc.) gesendet.

               TIOCFLUSH (0x5408):
               Über dieses Kommando kann die Art des Flushings 
               spezifiziert werden. Dazu wird über den Parameter arg 
               ein Zeiger auf einen Long-Wert übergeben, der die 
               gewünschte Art beschreibt. Dabei gilt:

                Wert           Bedeutung

                0              Ein- und Ausgabe flushen
                Bit-0 gesetzt  Eingabe flushen
                Bit-1 gesetzt  Ausgabe flushen

               TIOCSTOP (0x5409):
               Dieses Kommando unterbricht die Ausgabe auf das 
               Terminal (ähnlich der Flußkontrolle per Control-S). Der 
               Parameter arg ist in diesem Zusammenhang ohne 
               Bedeutung.

               TIOCSTART (0x540a):
               Dieses Kommando sorgt dafür, daß die Ausgabe des 
               Terminals wieder aufgenommen wird (ähnlich der 
               Flußkontrolle per Control-Q). Der Parameter arg ist in 
               diesem Zusammenhang ohne Bedeutung.

               TIOCGWINSZ (0x540b):
               Über dieses Kommando kann die Fenstergröße für ein 
               Textfenster erfragt werden. Dazu wird über den 
               Parameter arg ein Zeiger auf eine winsize-Struktur 
               zurückgeliefert. Falls eine Komponente dieser Struktur 
               den Wert 0 besitzt, so bedeutet dies, daß der 
               entsprechende Wert unbekannt ist.

               TIOCSWINSZ (0x540c):
               Über dieses Kommando kann die Fenstergröße gesetzt 
               werden. Dazu wird über den Parameter arg ein Zeiger auf 
               eine winsize-Struktur übergeben, die die notwendigen 
               Informationen enthält. Zu beachten ist in diesem 
               Zusammenhang, daß der Kernel den Aufruf zwar 
               bearbeitet, die Ausführung aber Window-Managern 
               überläßt. Diese senden auch das Signal SIGWINCH, falls 
               notwendig.

               TIOCGXKEY (0x540d):
               Dieses Kommando ermittelt die Definition einer 
               Funktions- bzw. Cursortaste. Dazu wird über den 
               Parameter arg ein Zeiger auf eine xkey-Struktur 
               übergeben. Die Komponente xk_num der Struktur muß dabei 
               mit der gewünschten Taste gefüllt werden:

                xk_num  Taste 
                   0-9  F1-F10 
                 10-19  F11-F20 (über shift erreichbar) 
                    20  Cursor hoch 
                    21  Cursor runter 
                    22  Cursor nach rechts 
                    23  Cursor nach links 
                    24  Help 
                    25  Undo 
                    26  Insert 
                    27  Clr/Home 
                    28  Shift + Cursor hoch 
                    29  Shift + Cursor runter 
                    30  Shift + Cursor nach rechts 
                    31  Shift + Cursor nach links 

               Der zu der Taste gehörende String (es gilt die 
               Konvention der Sprache C) wird über die Komponente 
               xk_def zurückgeliefert.

               TIOCSXKEY (0x540e):
               Über dieses Kommando kann die Definition einer 
               Funktions- bzw. Cursortaste gesetzt werden. Dazu 
               übergibt man über den Parameter arg einen Zeiger auf 
               eine xkey-Struktur, in der die Komponenten xk_num und 
               xk_def bereits gesetzt sein müssen. Nach Ausführung des 
               Kommandos wird dann per Fread der in xk_def angegebene 
               String (statt ASCII-0) zurückgeliefert. Diese 
               Übersetzung findet jedoch nur statt, wenn das Programm 
               per Pdomain in die MiNT-Domain gesetzt wurde und die 
               Zeichen vom Terminal mittels Fread gelesen werden. Da 
               der in xk_def übergebene String nullterminiert sein 
               muß, können auf diese Art und Weise maximal 7 Zeichen 
               übergeben werden.

               TIOCIBAUD (0x5412):
               Über dieses Kommando kann die Baudrate für die Eingabe 
               des Terminals eingestellt werden. Dazu wird über den 
               Parameter arg ein Zeiger auf einen Long-Wert übergeben, 
               in dem die Baudrate angegeben ist.

               TIOCOBAUD (0x5413):
               Über dieses Kommando kann die Baudrate für die Ausgabe 
               des Terminals eingestellt werden. Dazu wird über den 
               Parameter arg ein Zeiger auf einen Long-Wert übergeben, 
               in dem die Baudrate angegeben ist.

               TIOCCBRK (0x5414):
               Dieses Kommando löscht Bit-3 des TSR-Registers des 
               Peripherie-Bausteins MFP68901.

               TIOCSBRK (0x5415):
               Dieses Kommando setzt Bit-3 des TSR-Registers des 
               Peripherie-Bausteins MFP68901. Dadurch wird ein Break 
               gesendet, sobald das Senderegister leer ist. Der 
               Parameter arg ist in diesem Zusammenhang ohne 
               Bedeutung.

               TIOCGFLAGS (0x5416):
               Dieses Kommando gibt über den Parameter arg einen 
               Zeiger auf die Terminal-Kontrollflags zurück. Dieses 
               Kommando gibt in den unteren Bits des LONGS, auf den 
               der Parameter arg zeigt, die Terminal-Kontrollflags 
               (z.B. Anzahl Stop-Bits und Daten-Bits) zurück. Folgend 
               Bitmasken sind möglich:

                Maske   Bedeutung 
                0x0001  1 Stop-Bit 
                0x0002  1.5 Stop-Bits 
                0x0003  2 Stop-Bits 
                0x0000  8 Daten-Bits 
                0x0004  7 Daten-Bits 
                0x0008  6 Daten-Bits 
                0x000C  5 Daten-Bits 

               TIOCSFLAGS (0x5417):
               Dieses Kommando setzt neue Terminal-Kontrollflags, die 
               über den Parameter arg übergeben werden.

               TIOCOUTQ (0x5418):
               Dieses Kommando gibt in arg einen Zeiger auf einen 
               Long-Wert zurück, in dem die Anzahl der Bytes im 
               Ausgabepuffer gespeichert ist.

               TIOCSETP (0x5419):
               Funktioniert analog zu TIOCSETN, mit dem Unterschied, 
               daß (wenn das Terminal TIOCOUTQ unterstützt) die 
               Funktion erst dann zurückkehrt, wenn der Ausgabepuffer 
               leer ist.

               TCURSOFF (0x6300):
               Dieses Kommando schaltet den Cursor des Terminals aus.

               TCURSON (0x6301):
               Dieses Kommando schaltet den Cursor des Terminals ein.

               TCURSBLINK (0x6302):
               Dieses Kommando schaltet den Cursor des Terminals auf 
               Blinken. Die Blinkrate läßt sich per TCURSSRATE 
               einstellen.

               TCURSSTEADY (0x6303):
               Dieses Kommando schaltet das Cursor-Blinken des 
               Terminals wieder aus.

               TCURSSRATE (0x6304):
               Dieses Kommando setzt die Cursor-Blinkrate des 
               Terminals. Dazu wird in arg ein Zeiger auf einen Word- 
               Wert übergeben, der angibt, nach wievielen Vertical- 
               Blanks der Cursor einmal invertiert werden soll.

               TCURSGRATE (0x6305):
               Dieses Kommando ermittelt die Cursor-Blinkrate des 
               Terminals. Diese wird in einem Word-Wert zurückgegeben, 
               auf den arg zeigt.

               Die folgenden Kommandos sind nur auf (als Dateien 
               geöffnete) Prozesse anwendbar. Um den eigenen Prozess 
               als Datei zu öffnen, muß als Pfad für Fopen 
               'U:PROC\prozessname.-1' angegeben werden. Dabei wählt 
               die Extension -1 den eigenen, und -2 den Parent- 
               Prozess.

               PBASEADDR (0x5002):
               Im Parameter arg wird ein Zeiger auf die Adresse der 
               Basepage, des als Datei geöffneten Prozesses 
               zurückgegeben. Das Kommando wird in MagiC ab Version 
               3.0 unterstützt.

               PPROCADDDR (0x5001):
               Im Parameter arg wird ein Zeiger auf die Adresse des 
               PCB (Prozess-Control-Blocks) zurückgegeben.

               PCTXTSIZE (0x5003):
               Im Parameter arg wird ein Zeiger auf einen Long-Wert 
               geliefert, in dem die Länge des Prozess-Context-Blocks 
               angegeben ist. Zwei dieser Strukturen befinden sich im 
               Speicher vor dem PCB, dessen Adresse mit PPROCADDR 
               erfragt werden kann. Die erste Struktur ist dabei für 
               den aktuellen Prozesskontext verantwortlich, während 
               die zweite den gespeicherten Kontext des letzten 
               Systemaufrufs enthält.

               PSETFLAGS (0x5004):
               Dieses Kommando setzt die Programmflags (entsprechend 
               denen im Programmheader. In arg wird dazu ein Zeiger 
               auf einen Long-Wert übergeben, dessen untere 16 Bits 
               die Programmflags darstellen.

               PGETFLAGS (0x5005):
               Dieses Kommando ermittelt die aktuellen Programmflags. 
               Über den Parameter arg wird dabei ein Zeiger auf diese 
               Flags zurückgegeben.

               PTRACESFLAGS (0x5006):
               Dieses Kommando setzt die Prozess-Tracing-Flags. Im 
               Parameter arg wird ein Zeiger auf einen Word-Wert 
               übergeben, der die Flags repräsentiert:

                P_ENABLE  = 1 (Tracen einschalten)
                P_DOS     = 2 (GEMDOS-Aufrufe tracen)
                P_BIOS    = 4 (BIOS-Aufrufe tracen)
                P_XBIOS   = 8 (XBIOS-Aufrufe tracen)

               PTRACEGFLAGS (0x5007):
               Dieses Kommando ermittelt die aktuellen Prozess-Tracing 
               Flags. Über den Parameter arg wird ein Zeiger auf diese 
               Flags zurückgegeben.

               PTRACEGO (0x5008): (ab MC-68020 Prozessor)
               PTRACEFLOW (0x5009):
               PTRACESTEP (0x500a):
               PTRACE11 (0x500b):
               Diese Funktionen sollen einmal das Tracen von Prozessen 
               ermöglichen. Der zu tracende Prozess muß sich dafür im 
               Zustand 'suspendiert' befinden. Er wird durch die Trace 
               Funktion wieder aufgeweckt. Diese Funktionen sind z.Zt. 
               jedoch noch nicht implementiert.

               PLOADINFO (0x500c):
               Dieses Kommando gibt in arg einen Zeiger auf die 
               ploadinfo Struktur zurück, in der Programmname und 
               Kommandozeile gespeichert sind.

               PFSTAT (0x500d):
               Dieses Kommando entspricht FSTAT. Es ermittelt die 
               erweiterten Attribute der zum Prozess gehörenden 
               Programmdatei.

               Die folgenden Kommandos sind nur auf Dateien anwendbar, 
               die Shared Memory repräsentieren:

               SHMGETBLK (0x4d00):
               Dieses Kommando liefert die Adresse eines per SHMSETBLK 
               allozierten Speicherblocks zurück (bzw. einen 
               Nullzeiger bei Fehlern). Aus Kompatibilitätsgründen muß 
               der Parameter arg auf den Wert 0 gesetzt werden. 
               Hinweis: Verschiedene Prozesse können den Speicherblock 
               an unterschiedlichen Stellen in ihrem Adressraum sehen. 
               Aus diesem Grund darf ein Shared-Memory-Bereich keine 
               absoluten Zeiger auf Daten enthalten! Das Kommando wird 
               in MagiC ab Version 3.0 unterstützt.

               SHMSETBLK (0x4d01):
               Im Parameter arg wird ein Zeiger auf einen 
               Speicherblock übergeben, welcher vorher per 
               Malloc/Mxalloc alloziert wurde. Der Speicher wird nun 
               unter dem Dateinamen der Datei mit Handle fh zum 
               Sharing angeboten. Die Datei muß dazu im 
               Unterverzeichnis U:\SHM angelegt werden. Der Block wird 
               derart markiert, daß er nicht beim Beenden des 
               Prozesses freigegeben wird. Die Länge wird ermittelt 
               und sowohl für die geöffnete Datei verwendet, als auch 
               in das Verzeichnis eingetragen. Ungültige Blockadressen 
               führen zum Fehlercode EIMBA oder zu einem Bus- oder 
               Adreßfehler. Das Kommando wird in MagiC ab Version 3.0 
               unterstützt.

               Die folgenden Kommandos sind im Zusammenhang mit CD- 
               ROM's interessant:

               CDROMREADOFFSET (0x4300):
               Dieses Kommando ermittelt die Blocknummer des ersten 
               Sektors der letzten Session einer Multi-Session-CD. Der 
               Parameter arg enthält nach dem Aufruf diese 
               Blocknummer.

               CDROMPAUSE (0x4301):
               Dieses Kommando veranlaßt ein CD-ROM beim Abspielen 
               einer Audio-CD in den Status Pause zu treten.

               CDROMRESUME (0x4302):
               Dieses Kommando veranlaßt ein CD-ROM das Abspielen 
               einer Audio-CD fortzusetzen (Pause wird aufgehoben).

               CDROMPLAYMSF (0x4303):
               Dieses Kommando startet eine Audio-Wiedergabe. Der 
               Parameter arg ist ein Zeiger auf eine cdrom_msf- 
               Struktur, in die Anfangs- und Endzeit in MSF-Notation 
               einzutragen sind.

               CDROMPLAYTRKIND (0x4304):
               Dieses Kommando startet eine Audio-Wiedergabe. Der 
               Parameter arg ist ein Zeiger auf eine cdrom_ti- 
               Struktur, in die Start- und Endposition in Track/ 
               Index-Schreibweise einzutragen sind. Bei den meisten 
               Audio-CD's aus dem POP Bereich sind die Tracks nicht 
               weiter eingeteilt. Viele Klassik-CD's haben aber auch 
               innerhalb der Tracks noch eine feinere Einstellung in 
               Indices. Achtung: Nicht jedes CD-ROM kann gezielt 
               Indizes ungleich Eins ansteuern!

               CDROMREADTOCHDR (0x4305):
               Dieses Kommando erlaubt es, Informationen über den 
               Aufbau einer CD zu ermitteln. Der Parameter arg ist ein 
               Zeiger auf eine cdrom_tochdr-Struktur, in welche der 
               erste und letzte Track der CD eingetragen werden.

               CDROMREADTOCENTRY (0x4306):
               Dieses Kommando erlaubt es, Informationen über den 
               Aufbau einer CD zu ermitteln. Der Parameter arg ist ein 
               Zeiger auf eine cdrom_tocentry-Struktur, in welche die 
               gewünschten Informationen eingetragen werden.

               CDROMSTOP (0x4307):
               Dieses Kommando stoppt das entsprechende Laufwerk.

               CDROMSTART (0x4308):
               Dieses Kommando startet das entsprechende Laufwerk, und 
               zieht ggfs. die Schublade wieder ein.

               CDROMEJECT (0x4309):
               Dieses Kommando sorgt für das Ausfahren der Schublade 
               des entsprechenden Laufwerkes.

               CDROMVOLCTRL (0x430a):
               Dieses Kommando erlaubt es, die Lautstärke und 
               Kanalzuordnungen der einzelnen Audio-Kanäle zu 
               verändern. Der Parameter arg ist ein Zeiger auf eine 
               cdrom_volctrl-Struktur. Das Kommando ist zum 
               entsprechenden SunOS-Aufruf kompatibel. Achtung: Das 
               Verstellen der Lautstärke ist nicht bei allen Geräten 
               möglich!

               CDROMSUBCHNL (0x430b):
               Dieses Kommando ermittelt die aktuellen Positionsdaten, 
               sowie den Audio-Status. Der Parameter arg ist ein 
               Zeiger auf eine cdrom_subchnl-Struktur.

               CDROMREADMODE2 (0x430c):
               Dieses Kommando ermöglicht das Lesen von Modus-2 
               Sektoren. Solche Sektoren werden bei XA-CDs (Beispiel: 
               Photo-CD ohne Fehlerkorrektur oder Video-CD) verwendet 
               und enthalten 2336 Bytes. Der Parameter arg ist ein 
               Zeiger auf eine cdrom_read Struktur. Achtung: Nicht 
               alle Geräte können diese Sektortypen lesen, und nicht 
               alle Treiber bieten diese Funktion an.

               CDROMREADMODE1 (0x430d):
               Dieses Kommando ermöglicht das Lesen von Modus-1 
               Sektoren. Solche Sektoren sind 2048 Bytes groß, und 
               werden auf normalen CD-ROMs benutzt. Der Parameter arg 
               ist ein Zeiger auf eine cdrom_read-Struktur. Achtung: 
               Nicht alle Geräte können diese Sektortypen lesen, und 
               nicht alle Treiber bieten diese Funktion an.

               CDROMPREVENTREMOVAL (0x430e):
               Dieses Kommando sperrt die Auswurffunktion des 
               entsprechenden CD-ROMs. Dies kann z.B. nützlich sein, 
               wenn das Gerät an einem öffentlichen Ort steht, und man 
               dem CD-Klau vorbeugen will.

               CDROMALLOWRMOVAL (0x430f):
               Dieses Kommando gibt den Auswurf des entsprechenden 
               CD-ROMs wieder frei.

               CDROMAUDIOCTRL (0x4310):
               Diese Kommando erlaubt es, die Lautstärke und 
               Kanalzuordnungen der einzelnen Audio-Kanäle zu 
               verändern. Der Parameter arg ist ein Zeiger auf eine 
               cdrom_audioctrl-Struktur. Indem man die Komponente set 
               dieser Struktur auf den Wert Null setzt, können die 
               aktuellen Einstellungen erfragt werden. Achtung: Das 
               Verstellen der Lautstärke ist nicht bei allen Geräten 
               möglich!

               CDROMREADDA (0x4311):
               Dieses Kommando ermöglicht das Lesen von Digital-Audio 
               (DA) Sektoren. Solche Sektoren sind 2352 Bytes groß, 
               und enthalten pro Sektor 588 Samples im 16-Bit-Stereo- 
               PCM Format. Der Parameter arg ist ein Zeiger auf eine 
               cdrom_read Struktur. Achtung: Nicht alle Geräte können 
               diese Sektortypen lesen, und nicht alle Treiber bieten 
               diese Funktion an.

               CDROMGETMCN (0x4313):
               Dieses Kommando ermittelt die Media Catalog Number, die 
               theoretisch benutzt werden kann, um eine CD einwandfrei 
               zu identifizieren. Leider ist diese Information auf den 
               allerwenigsten CDs vorhanden. Der Parameter arg ist ein 
               Zeiger auf eine cdrom_mcn-Struktur.

               CDROMGETTISRC (0x4314):
               Dieses Kommando ermittelt den Track-International- 
               Standard Recording-Code, der eine eindeutige 
               Kennzeichnung für einzelne Tracks darstellen soll. Der 
               Parameter arg ist ein Zeiger auf eine cdrom_tisrc- 
               Struktur.

 Ergebnis:     Die Funktion kann folgende Rückgabewerte liefern:

                >= 0 :    kein Fehler aufgetreten (Abweichungen s.o.)
                EIHNDL :  ungültiges Datei-Handle.
                EINVFN :  Kommando kann mit dem Handle fh nicht 
                          ausgeführt werden.

 Verfügbar:    Seit der ersten in MultiTOS integrierten MiNT Version 
               1.04 und MagiC ab Version 3.0.

 Gruppe:       Dateifunktionen

 Querverweis:  Binding   Fdup   Flock   Fopen   Fxattr   Pgetpgrp 
               Psetpgrp   Metaioctl   CD-ROM Definitionen