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.3.5 Der Datei-Deskriptor (FD) TOS Die Dateideskriptoren müssen vom XFS angelegt und verwaltet werden. Alle Deskriptoren, die dem Kernel bekannt sind, haben Referenzzähler ungleich Null. Für den Kernel sieht ein FD genauso aus wie ein DD, weshalb im DOS_XFS die gleiche Datenstruktur verwendet wird. Für den Kernel sieht ein FD folgendermaßen aus, diese Einträge müssen vom XFS angelegt werden: fd_dmd: DS.L 1 /* 0x00: Zeiger auf DMD */ fd_refcnt: DS.W 1 /* 0x04: Ref.zähler fürs Schließen oder -1 */ fd_mode: DS.W 1 /* 0x06: Open- Modus und flags */ fd_dev: DS.L 1 /* 0x08: Zeiger auf MX_DEV */ Die vom DOS_XFS abgeleitete Klasse (ein "DOS-FD") hat darüber hinaus noch die zusätzlichen Felder: fd_ddev: DS.L 1 /* 0x0c: Zeiger auf MX_DDEV */ fd_name: DS.B 11 /* 0x10: DD_FD: Name im internen Format */ fd_attr: DS.B 1 /* 0x1b: Attribut */ fd_owner: DS.L 1 /* 0x1c: DD_FD: Eigner eines FD oder NULL */ fd_parent: DS.L 1 /* 0x20: Zeiger auf den Parent-DD_FD */ fd_children: DS.L 1 /* 0x24: DD_FD: Liste aller Kinder */ fd_next: DS.L 1 /* 0x28: Zeiger auf FDs im selben Verzeichn. */ fd_multi: DS.L 1 /* 0x2c: Zeiger auf FD derselben Datei */ fd_multi1: DS.L 1 /* 0x30: Zeiger auf erstes Listenelement */ fd_fpos: DS.L 1 /* 0x34: Position des Dateizeigers */ fd_dirch: DS.B 1 /* 0x38: Bit0: "dirty" */ fd_unused: DS.B 1 /* 0x39: */ fd_time: DS.W 1 /* 0x3a: Zeit (8086) */ fd_date: DS.W 1 /* 0x3c: Datum (8086) */ fd_stcl: DS.W 1 /* 0x3e: Start- Cluster */ fd_len: DS.L 1 /* 0x40: Dateilänge in Bytes */ fd_dirpos: DS.L 1 /* 0x44: Pos. des zug. Eintrags im Directory */ fd_user1: DS.L 1 /* 0x48: zur freien Verfügung */ fd_user2: DS.L 1 /* 0x4c: zur freien Verfügung */ Querverweis: XFS-Konzept in MagiC DMD MX_DDEV MX_DEV