5 ;FASTOPEN NAME CACHING Subfunctions
10 FONC_purge equ 5 ;reserved for the future use.
12 ;FASTOPEN EXTENT CACHING Subfunctions
13 FSK_Open equ 11 ;AN000;
14 FSK_Close equ 12 ;AN000;
15 FSK_Delete equ 13 ;AN000;
16 FSK_Lookup equ 14 ;AN000;
17 FSK_Insert equ 15 ;AN000;
18 FSK_Trunc equ 16 ;AN000;
20 HeaderSize equ 8 ; size of file header (8 bytes) ;AN000;
21 ExtendSize equ 8 ; size of extend (8 bytes) ;AN000;
22 Num_Of_Pages equ 1 ; number of pages ;AN000;
23 Num_Of_Segs equ 2 ; number of frame segments ;AN000;
24 Stayresident equ 04ch ; terminate and stay resident function code
28 FastOpen_Set equ 00000001B
29 FastOpen_Reset equ 11111110B
30 Lookup_Success equ 00000010B
31 Lookup_Reset equ 11111101B
32 Special_Fill_Set equ 00000100B
33 Special_Fill_Reset equ 11111011B
34 No_Lookup equ 00001000B
35 Set_For_Search equ 00010000B ;DCR 167
38 ;============= FastOpen Data Structures =====================
40 Fastopen_Entry STRUC ;Fastopen Entry pointer in DOS
41 Fastopen_Entry_size dw 4 ;size of the following
42 Fastopen_Name_Caching dd ?
43 ;Fastopen_FatChain_Caching dd ? ;reserved for future use
48 CMPCT_DIR_INFO STRUC ;compact version of Dir Info.
49 CDI_file_name db 11 dup (' ')
62 ODI_head db 17 dup (?)
63 ODI_skip db 5 dup (0) ;reserved for DOS. FASTOPEN does not
64 ODI_tail db 10 dup (?) ; use ODI_skip part.
73 FASTOPEN_EXTENDED_INFO STRUC
77 FEI_lastent dw 0 ; for search first
78 FEI_dirstart dw 0 ; for search first
79 FASTOPEN_EXTENDED_INFO ENDS
84 nMRU_ptr dw -1 ;reverse of nLRU_ptr
87 nBackward_ptr dw -1 ;points to preceding node
88 nCmpct_Dir_Info db size Cmpct_Dir_Info dup (' ')
89 nExtended_Info db size Fastopen_Extended_Info dup (?)
93 DRIVE_CACHE_HEADER STRUC ;drive cache header
94 DCH_LRU_ROOT dw 0 ;Header of the LRU chain of this drive
95 DCH_MRU_ROOT dw 0 ;offset to the last entry of LRU chain
96 DCH_Child_ptr dw -1 ;the first child in Name cache seg.
97 DCH_Sibling_ptr dw -1 ;points to the next drive cache header
98 DCH_Drive_letter db 'C' ;drive letter
99 DCH_Num_Entries dw 0 ;Number of entries in the Name cache.
100 DCH_Name_Buff dw 0 ;pointer to name cahe buffer
101 DRIVE_CACHE_HEADER ENDS
108 ;======== FAST SEEK FUNCTION DATA STRUCTURES =======================
110 DRIVE_HEADER STRUC ; Drive header structure ;AN000;
111 Drive_Number dw 0 ; drive number ;AN000;
112 Extent_Count dw 0 ; reserved for debugging
113 MRU_Hdr_Ptr dw 0 ; pointer to OPEN Queue
114 Free_ptr dw 0 ; pointer to FREE buffer ;AN000;
115 Close_Ptr dw 0 ; pointer to CLOSE Queue ;AN000;
116 Buff_Size dw 0 ; cache buffer size including header ;AN000;
117 Free_Size dw 0 ; size of Free area in bytes
118 Next_Drv_Hdr_Ptr dw 0 ; pointer to next drive header
123 FILE_HEADER STRUC ; File header structure ;AN000;
124 FH_Phys_Clus_Num dw 0 ; starting physcial clustnum of file ;AN000;
125 FH_Refer_Count dw 0 ; reference count ;AN000;
126 FH_Next_Extn_Ptr dw 0 ; pointer to first extent of the file;AN000;
127 FH_Next_Hdr_Ptr dw 0 ; pointer to next file header ;AN000;
128 FH_MRU_Extn_Ptr dw 0 ; pointer to MRU extent
132 FILE_HEADER ENDS ;AN000;
136 EXTENT_HEADER STRUC ; extend header structure ;AN000;
137 EH_Logic_Clus_Num dw 0 ; starting logical clus num of extent;AN000;
138 EH_Phys_Clus_Num dw 0 ; starting physical clus numof extnt;AN000;
139 EH_Count dw 0 ; range of logical clusnum in the extnt
140 EH_Next_Extn_Ptr dw 0 ; pointer to next extent ;AN000;
141 EH_Prev_Extn_Ptr dw 0 ; pointer to previous extent ;AN000;
142 EH_Next_LRU_Ptr dw 0 ; pointer to next LRU extent
143 EH_Prev_LRU_Ptr dw 0 ; pointer tp previous LRU extent