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.20.1.15 dfs_sfirst TOS Name: »dfs_sfirst« Parameter: a0 = FD * d a1 = DIR *dir d0 = long pos d1 = DTA *dta -> d0 = long errcode ggf. a0 = LINK *l Beschreibung: Der DOS_XFS hat bereits die Datei angesteuert. Das DFS braucht lediglich für den nächsten Fsnext die reservierten Einträge dta_usr1 und dta_usr2 zu initialisieren, damit die Stelle wiedergefunden wird. Dateideskriptoren (FDs) können in dta_usr nicht verwendet werden, weil das Freigeben bei einer "garbage collection" nicht verhindert werden kann. Die FDs einfach zu blockieren, ist auch nicht möglich, da man das Ende der Fsfirst/Fsnext Operation nicht vorhersagen kann. Eine bereits erfolglose Suche kann z.B. durch Löschen von dta_sname markiert werden. <pos> zeigt bereits auf den nächsten Eintrag, also 32 Bytes hinter <dir>. Bei symbolischen Links muß das DFS entsprechend reagieren, in d0 ELINK übergeben und in a0 einen Zeiger auf den Link. Ein Link beginnt mit einem Wort (16 Bit) für die Länge des Pfads, gefolgt vom Pfad selbst. Achtung: Die Länge muß INKLUSIVE abschließendes Nullbyte und außerdem gerade sein. Der Link muß auf einer geraden Speicheradresse liegen. Der Puffer für den Link kann statisch oder auch flüchtig sein, da der Kernel die Daten sofort umkopiert, ohne daß zwischendurch ein Kontextwechsel stattfinden kann. Gruppe: Aufbau eines DFS Querverweis: DFS-Konzept in MagiC