•  Back 
  •  Verzeichnisfunktionen 
  •  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.15.3  Dcntl                                                      TOS

 Name:         »Dcntl« - führt eine Filesystem spezifische Operation 
               auf einer Datei bzw. einem Verzeichnis durch.

 Gemdosnummer: 304

 Deklaration:  int32_t Dcntl ( int16_t cmd, int8_t *name, int32_t arg 
               );

 Beschreibung: Die Funktion führt das Kommando cmd auf dem File bzw. 
               Verzeichnis name aus. Einzelheiten sind vom Filesystem 
               abhängig, auf das sich name bezieht. Die Bedeutung des 
               Parameters arg ist wiederum von cmd abhängig.

               Standardmäßig wird der Dcntl-Aufruf von den 
               Filesystemen U:\\ und U:\DEV unterstützt.

               Das Unified-Filesystem U:\ kennt die folgenden 
               Kommandos:

                Kommando               Beschreibung

                FS_INSTALL (0xf001)    installiert ein neues 
                                       Filesystem

                                        name:  U:\
                                        arg:   Zeiger auf fs_descr 
                                               Struktur

                FS_MOUNT (0xf002)      Bindet ein bereits 
                                       existierendes Filesystem in das 
                                       Unified-System U:\ ein.

                                        name:  Name unter dem auf das 
                                               Filesystem zugegriffen 
                                               werden kann.
                                        arg:   Zeiger auf fs_descr 
                                               Struktur

                FS_UNMOUNT (0xf003)    entfernt ein per FS_MOUNT 
                                       eingehängtes System.

                                        name:  Name unter dem das 
                                               Filesystem eingebunden 
                                               wurde.
                                        arg:   Zeiger auf fs_descr 
                                               Struktur

                FS_UNINSTALL (0xf004)  Entfernt ein Filesystem 
                                       vollständig aus dem Kernel. 
                                       Dieser Befehl ist nur erlaubt, 
                                       wenn keine weiteren Verweise 
                                       auf das Filesystem existieren, 
                                       also beispielsweise etwaige 
                                       Mounts rückgängig gemacht 
                                       wurden.

                                        name:  U:\\
                                        arg:   Zeiger auf fs_descr 
                                               Struktur

                FUTIME (0x4603)        Ist das Pendant zur 
                                       gleichnamigen Fcntl()-Funktion. 
                                       Sie wird von MiNT sowie vom 
                                       DOS-XFS in MagiC unterstützt. 
                                       Als Parameter wird ein Zeiger 
                                       auf eine mutimbuf-Struktur 
                                       übergeben.

                KER_GETINFO (0x0100)   Ermittelt einen Zeiger auf die 
                                       Kernelfunktionen von MagiC. Bei 
                                       den Parametern name und arg 
                                       muss es sich um NULL-Werte 
                                       handeln. Zurückgeliefert wird 
                                       ein Zeiger auf eine MX_KERNEL- 
                                       Struktur. (*)

                                       Ab MagiC 6: MX_KER_GETINFO 
                                       (0x6d00) (1)

                KER_DOSLIMITS (0x0101) Fordert den Kernel von MagiC 
                                       auf, die Limits für FAT- 
                                       Dateisysteme zu ermitteln. Die 
                                       Parameter name und arg müssen 
                                       auf NULL gesetzt werden. 
                                       Zurückgeliefert wird ein Zeiger 
                                       auf einen Zeiger auf eine 
                                       MX_DOSLIMITS Struktur; dieser 
                                       kann daher auf eine eigene 
                                       Struktur umgebogen werden, 
                                       falls ein neuer Treiber 
                                       installiert wird. Dieser Opcode 
                                       wird normalerweise nur von 
                                       Festplattentreibern (wie dem 
                                       HDDRIVER) verwendet. (*)

                                       Ab MagiC 6: MX_KER_DOSLIMITS 
                                       (0x6d01) (1)

                KER_INTMAVAIL (0x102)

                KER_INTGARBC (0x103)   Diese Funktionen existierten 
                                       vor der Version 4.01 von MagiC, 
                                       und wurden auf Sconfig-Aufrufe 
                                       umgesetzt, um Konflikte mit 
                                       Treibern zu vermeiden, die 
                                       Probleme mit unbekannten 
                                       Opcodes besitzen (*).

                KER_DRVSTAT (0x0104)   Ermittelt einfache 
                                       Informationen über ein 
                                       Laufwerk. Es gilt:

                                        name:  wird ignoriert
                                        arg:   Zeiger auf zwei 
                                               int16_ts.

                                       Das erste int16_t muss dabei 
                                       eine Null enthalten, in das 
                                       zweite wird eine 
                                       Laufwerksnummer von 0..25 
                                       (A..Z) geschrieben. Die 
                                       möglichen Rückgabewerte für 
                                       diesen Opcode lauten:

                                        EDRIVE :   ungültige 
                                                   Laufwerksnummer
                                        ELOCKED :  Laufwerk z.Zt. 
                                                   gesperrt

                                       Ein Wert von 0 bzw. >0 zeigt 
                                       an, daß das Laufwerk z.Zt. 
                                       gemounted bzw. nicht gemounted 
                                       ist. Dieser Opcode steht erst 
                                       ab der MagiC-Version vom 
                                       09.09.95 zur Verfügung (*).

                                       Ab MagiC 6: MX_KER_DRVSTAT 
                                       (0x6d04) (1)

                KER_XFSNAME (0x0105)   Ermittelt den Namen des 
                                       Treibers, welcher für ein 
                                       bestimmtes Verzeichnis 
                                       zuständig ist.

                                        name:  Pfadname (kein 
                                               Dateiname!)
                                        arg:   Zeiger auf einen 
                                               mindestens 9 Zeichen 
                                               großen Puffer, der an 
                                               einer geraden Adresse 
                                               liegen muss.

                                       Ein Rückgabewert < 0 
                                       kennzeichnet einen Fehler; 
                                       ansonsten wird im angegebenen 
                                       Puffer der Name des Treibers 
                                       abgelegt; z.Zt. sind folgende 
                                       Treibernamen bekannt:

                                        (a) "DOS_XFS":   altes DOS-XFS
                                        (b) "VDOS_XFS":  DOS-XFS mit 
                                                         VFAT
                                        (c) "MMAC_HFS":  MagiCMac-HFS

                                       Dieser Opcode steht erst ab der 
                                       MagiC-Version vom 15.06.1996 
                                       zur Verfügung (*).

                                       Ab MagiC 6: MX_KER_XFSNAME 
                                       (0x6d05) (1)

                KER_INSTXFS (0x0200)   Fordert den Kernel von MagiC 
                                       auf, ein XFS zu installieren. 
                                       (*)

                                        name:  NULL-Zeiger
                                        arg:   einzubindender Treiber

                                       Ab MagiC 6: MX_KER_INSTXFS 
                                       (0x6d02) (1)

                KER_SETWBACK (0x0300)  Fordert den Kernel von MagiC 
                                       auf, den WriteBack zu 
                                       konfigurieren. Ab MagiC-Version 
                                       4.01 wurde dieser Opcode auf 
                                       einen Sconfig-Aufruf umgesetzt, 
                                       um Konflikte mit Treibern zu 
                                       vermeiden, die Probleme mit 
                                       unbekannten Opcodes besitzen 
                                       (*).

                DFS_GETINFO (0x1100)   Ermittelt einen Zeiger auf die 
                                       DOS_XFS-Funktionen von MagiC. 
                                       Bei den Parametern name und arg 
                                       muss es sich um NULL-Werte 
                                       handeln. Zurückgeliefert wird 
                                       ein Zeiger auf eine ???- 
                                       Struktur. (*)

                                       Ab MagiC 6: MX_DFS_GETINFO 
                                       (0x6d40) (1)

                DFS_INSTDFS (0x1200)   Installiert ein DFS unter MagiC 
                                       (*).

                                        name:  NULL-Zeiger
                                        arg:   einzubindender Treiber

                CDROMEJECT (0x4309)    Übernimmt das Auswerfen von 
                                       Medien.

                                        name:  Pfad des auszuwerf. 
                                               Mediums
                                        arg:   NULL

                                       Die Auswurffunktion wird für 
                                       alle Laufwerke unterstützt, die 
                                       über einen XHDI-kompatiblen 
                                       Treiber angesprochen werden, 
                                       sowie für Macintosh Volumes 
                                       (unter MagiCMac).

                                       Ab MagiC 6: MX_DFS_INSTDFS 
                                       (0x6d41) (1)

                VFAT_CNFDFLN (0x5600)  Konfiguriert ein VFAT- 
                                       Dateisystem.

                                        name:  U:\\
                                        arg:   Bitvektor der festlegt, 
                                               bei welchen Laufwerken 
                                               lange Dateinamen 
                                               zugelassen werden.

                                       Die Einstellung wird erst beim 
                                       mounten eines Dateisystems 
                                       aktiv, daher können bereits 
                                       gemountete Dateisysteme mit 
                                       diesem Befehl nicht beeinflußt 
                                       werden. Dieser Opcode steht 
                                       erst ab der MagiC-Version vom 
                                       02.01.96 zur Verfügung. (*).

                VFAT_CNFLN (0x5601)    Dient der Konfiguration eines 
                                       VFAT-Dateisystems. Genauer: 
                                       Legt fest, ob ein gemountetes 
                                       Laufwerk lange Dateinamen 
                                       unterstützt, oder nicht. Mit 
                                       diesem Opcode kann also der per 
                                       VFAT_CNFDFLN festgelegte 
                                       Defaultwert überladen werden. 
                                       Damit die Umstellung für den 
                                       Benutzer sichtbar wird, sollte 
                                       eine SH_WDRAW-Nachricht an die 
                                       System-Shell geschickt werden. 
                                       Dieser Opcode steht erst ab der 
                                       MagiC-Version vom 02.01.96 zur 
                                       Verfügung (*).

                PROC_CREATE (0xcc00)   Diese Funktion ist in MagiC für 
                                       zukünftige Zwecke reserviert 
                                       (*). Sie wird ab MagiC 6 nicht 
                                       mehr verwendet.

               Das Filesystem U:\DEV kennt folgende Kommandos:

                Kommando                Beschreibung



                DEV_INSTALL (0xde02)    installiert einen neuen 
                                        Treiber für ein Gerät.

                                         name:  vollständiger Pfadname 
                                                des Treibers
                                         arg:   Zeiger auf dev_descr- 
                                                Struktur

                                        Auf das so installierte Gerät, 
                                        darf nur über GEMDOS 
                                        Operationen zugegriffen 
                                        werden.

                DEV_M_INSTALL (0xcd00)  entspricht DEV_INSTALL und muß 
                                        aufgrund des inkompatiblen 
                                        Treiberformates zu MultiTOS in 
                                        MagiC benutzt werden. (*)

                                         name:  vollst. Pfadname des 
                                                Treibers
                                         arg:   Zeiger auf MX_DDEV- 
                                                Struktur

                                        Ab MagiC 6: MX_DEV_INSTALL 
                                        (0x6d20) (1)

                DEV_NEWTTY (0xde00)     installiert Treiber für ein 
                                        neues BIOS Terminal

                                         name:  Name des Terminals (in 
                                                der Form 
                                                'U:\DEV\DEVNAME')
                                         arg:   BIOS Gerätenummer des 
                                                Terminals

                                        Das BIOSmuß per Bconmap über 
                                        das Gerät informiert worden 
                                        sein, anderenfalls wird jeder 
                                        Versuch auf das Gerät 
                                        zuzugreifen mit EUNDEV 
                                        bestraft.

                DEV_NEWBIOS (0xde01)    installiert einen Treiber für 
                                        ein neues BIOS nicht-Terminal 
                                        Gerät.

                                         name:  vollständiger Name des 
                                                Geräts
                                         arg:   zugehörige BIOS 
                                                Gerätenummer

                                        Das BIOSmuß per Bconmap über 
                                        das Gerät informiert worden 
                                        sein, anderenfalls wird jeder 
                                        Versuch auf das Gerät 
                                        zuzugreifen mit EUNDEV 
                                        bestraft.

               Hinweis: Die mit (*) gekennzeichneten Opcodes stehen 
               dabei nur unter MagiC, alle anderen nur unter MiNT bzw. 
               MultiTOS zur Verfügung. Ausnahmen: Die Opcodes FUTIME 
               und CDROMEJECT stehen sowohl unter MiNT/MultiTOS als 
               auch unter MagiC zur Verfügung.

               (1): Leider gab es Kollisionen zwischen MagiC und dem 
               Minix-XFS für MiNT. Daher enthält MagiC ab der Version 
               6 neue Codes, die alten werden aber noch unterstützt. 
               Die neuen Codes haben ein 0x6d im oberen Word, diese 
               Kennung ist für MagiC reserviert.

 Ergebnis:     Der Rückgabewert ist abhängig von der gewünschten 
               Operation und dem zugrunde liegenden Filesystem. Bei 
               einem Wert >= 0 ist alles erfolgreich verlaufen. Eine 
               Ausnahme ist der Wert bei DEV_INSTALL, welcher entweder 
               auf eine Informationsstruktur des Kernels zeigt, oder 
               aber den Wert 0 besitzt.

               Bei einem ungültigen Opcode wird EINVFN 
               zurückgeliefert.

 Verfügbar:    Verfügbar, wenn ein 'MiNT' Cookie mit einer 
               Versionsnummer von mindestens 0.90 existiert und in 
               MagiC ab Version 3.0.

 Gruppe:       Verzeichnisfunktionen

 Querverweis:  Binding   XFS-Konzept in MagiC   Bconmap   Fcntl 
               MagiC   Metaioctl