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-File11.21.2.15 xfs_drv_open TOS Name: »xfs_drv_open« - DMD (Mediach) testen/initialisieren. Parameter: a0 = DMD * -> d0 = long errcode Beschreibung: MagiC unterstützt genau 26 gleichzeitig aktive Dateisysteme denen die Buchstaben 'A'..'Z' zugeordnet sind. Dieser Eintrag hat zwei Aufgaben: 1. Beim ersten Zugriff auf ein Laufwerk (etwa D:) legt der Kernel einen DMD (drive media descriptor) an und "bietet" diesen den XFSs an. Der Eintrag d_xfs ist noch ein Nullzeiger, d_drive ist initialisiert (zwischen 0 und 25, entsprechend 'A'..'Z'). Die XFS-Treiber versuchen nun, auf dem Laufwerk "ihr" Dateisystem zu erkennen. Falls dies gelingt, müssen d_xfs und d_root initialisiert werden, der Rückgabewert ist dann E_OK. Andernfalls wird EDRIVE gemeldet, und der Kernel probiert das nächste XFS. Achtung: Die root darf während der Lebensdauer eines gemounteten Dateisystems nicht freigegeben werden. Der Referenzzähler der root sollte mit 1 vorbesetzt werden, um zu verhindern, daß er per free_DD freigegeben wird. In den Versionen vor MagiC 4.01 war dies nicht notwendig, weil der Referenzzähler (in unsauberer Weise) vor dem Aufruf von path2DD nicht inkrementiert und nachher dekrementier wurde. 2. Beim wiederholten Zugriff ist d_xfs bereits initialisiert, und das XFS hat die Gelegenheit, auf Mediumwechsel zu testen. Ist alles in Ordnung, muß E_OK zurückgegeben werden. Ansonsten muß die Diskwechselroutine des Kernels aufgerufen und E_CHNG zurückgegeben werden. Den Zeiger auf die Diskwechselroutine des Kernels erhält man bei der Installation des XFS. Das interne DOS_XFS leitet den Aufruf an die gleichnamige Funktion des DFS weiter, d.h. alle DFS- Treiber werden durchprobiert. Gruppe: Aufbau eines XFS Querverweis: XFS-Konzept in MagiC