•  Back 
  •  Datenstrukturen für ein XFS 
  •  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-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