•  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.10  Dlock                                                     TOS

 Name:         »Dlock« - sperrt ein BIOS Gerät bzw. gibt es wieder 
               frei.

 Gemdosnummer: 309

 Deklaration:  int32_t Dlock ( int16_t mode, int16_t drv );

 Beschreibung: Die Funktion erlaubt es, das BIOS-Gerät drv zu sperren, 
               bzw. wieder freizugeben. Auf einem gelockten Laufwerk 
               sind keine GEMDOS File-Operationen zugelassen; Rwabs 
               ist nur für den sperrenden Prozess erlaubt.

               Der Sinn und Zweck der Funktion besteht darin, daß 
               Low-Level Programme (etwa zum Formatieren) (X)BIOS 
               Funktionen ausführen können, während das Gerät für 
               normale Dateizugriffe gesperrt bleibt.

                Bit 0 von mode = 1:  Gerät sperren 
                               = 0:  Gerät freigeben 

               Wird ein Prozeß beendet der noch eine Sperre auf einem 
               Gerät hält, so wird diese Sperre aufgehoben.

               Bit 1 von mode zeigt an, welche Rückgabewerte gewünscht 
               sind. Ist dieses Bit gesetzt, und das entsprechende 
               Gerät bereits von einem anderen Prozeß gesperrt (oder 
               hat ein anderer Prozeß Files auf diesem Gerät 
               geöffnet), dann wird dessen Prozeß-ID zurückgeliefert. 
               Dies erlaubt sinnvollere Fehlermeldungen an den 
               Benutzer, da nun mitgeteilt werden kann, welcher Prozeß 
               das Gerät benutzt, wenn das Sperren fehlschlagen 
               sollte.

               Alle anderen Bits von mode sind reserviert und müssen 
               auf 0 gesetzt werden.

               Ein Sperren eines Gerätes mit unmittelbar folgendem 
               Freigeben desselben, ist einem Medienwechsel sehr 
               ähnlich. Zu beachten ist lediglich, daß nicht gesperrt 
               werden kann, wenn auf dem angegebenen Gerät noch 
               Dateien geöffnet sind.

               Hinweis für MagiC: Vor Sperren des Laufwerks werden, 
               falls ein Dateisystem für das Laufwerk existiert, die 
               Caches über den Vektor xfs_sync zurückgeschrieben. Dann 
               stellt der Kernel über xfs_drv_close eine Anfrage, ob 
               das Laufwerk gesperrt werden kann. Wenn ja, gibt das 
               XFS seine Strukturen frei und signalisiert dann dem 
               Kernel, daß auch er seine Strukturen für das Laufwerk 
               freigeben und die Sperrung durchführen kann.

 Ergebnis:     Die Funktion kann die folgenden Werte zurückliefern:

                E_OK :     kein Fehler aufgetreten.
                EACCDN :   Gerät konnte nicht gesperrt werden, da 
                           offene Dateien bzw. Verzeichnisse vorhanden 
                           sind.
                EDRIVE :   drv ist kein gültiges BIOS-Gerät.
                ELOCKED :  Gerät ist bereits von einem Prozeß 
                           gesperrt.
                ENSLOCK :  Gerät ist bereits freigegeben.

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

 Gruppe:       Verzeichnisfunktionen

 Querverweis:  Binding   Fxattr   XFS-Konzept in MagiC