mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
4.5 KiB
150 lines
4.5 KiB
;
|
|
; EXPORT DATE: 9/11
|
|
;Equates for FASTOPEN.
|
|
|
|
;FASTOPEN NAME CACHING Subfunctions
|
|
FONC_Look_up equ 1
|
|
FONC_insert equ 2
|
|
FONC_delete equ 3
|
|
FONC_update equ 4
|
|
FONC_purge equ 5 ;reserved for the future use.
|
|
FONC_Rename equ 6 ;AN001
|
|
|
|
;FASTOPEN EXTENT CACHING Subfunctions
|
|
FSK_Open equ 11 ;AN000;
|
|
FSK_Close equ 12 ;AN000;
|
|
FSK_Delete equ 13 ;AN000;
|
|
FSK_Lookup equ 14 ;AN000;
|
|
FSK_Insert equ 15 ;AN000;
|
|
FSK_Trunc equ 16 ;AN000;
|
|
|
|
HeaderSize equ 8 ; size of file header (8 bytes) ;AN000;
|
|
ExtendSize equ 8 ; size of extend (8 bytes) ;AN000;
|
|
Num_Of_Pages equ 1 ; number of pages ;AN000;
|
|
Num_Of_Segs equ 2 ; number of frame segments ;AN000;
|
|
Stayresident equ 04ch ; terminate and stay resident function code
|
|
|
|
|
|
;Equates used in DOS.
|
|
FastOpen_Set equ 00000001B
|
|
FastOpen_Reset equ 11111110B
|
|
Lookup_Success equ 00000010B
|
|
Lookup_Reset equ 11111101B
|
|
Special_Fill_Set equ 00000100B
|
|
Special_Fill_Reset equ 11111011B
|
|
No_Lookup equ 00001000B
|
|
Set_For_Search equ 00010000B ;DCR 167
|
|
|
|
|
|
;============= FastOpen Data Structures =====================
|
|
|
|
Fastopen_Entry STRUC ;Fastopen Entry pointer in DOS
|
|
Fastopen_Entry_size dw 4 ;size of the following
|
|
Fastopen_Name_Caching dd ?
|
|
;Fastopen_FatChain_Caching dd ? ;reserved for future use
|
|
Fastopen_Entry ENDS
|
|
;
|
|
|
|
|
|
CMPCT_DIR_INFO STRUC ;compact version of Dir Info.
|
|
CDI_file_name db 11 dup (' ')
|
|
CDI_file_attr db ?
|
|
CDI_codepage dw ?
|
|
CDI_extcluster dw ?
|
|
CDI_attr2 db ?
|
|
CDI_time dw ?
|
|
CDI_date dw ?
|
|
CDI_cluster dw ?
|
|
CDI_filesize dd ?
|
|
CMPCT_DIR_INFO ENDS
|
|
;
|
|
|
|
ORIG_DIR_INFO STRUC
|
|
ODI_head db 17 dup (?)
|
|
ODI_skip db 5 dup (0) ;reserved for DOS. FASTOPEN does not
|
|
ODI_tail db 10 dup (?) ; use ODI_skip part.
|
|
ORIG_DIR_INFO ENDS
|
|
;
|
|
|
|
ODI_head_leng equ 17
|
|
ODI_skip_leng equ 5
|
|
ODI_tail_leng equ 10
|
|
;
|
|
|
|
FASTOPEN_EXTENDED_INFO STRUC
|
|
FEI_dirpos db 0
|
|
FEI_dirsec dd 0
|
|
FEI_clusnum dw 0
|
|
FEI_lastent dw 0 ; for search first
|
|
FEI_dirstart dw 0 ; for search first
|
|
FASTOPEN_EXTENDED_INFO ENDS
|
|
;
|
|
|
|
NAME_RECORD STRUC
|
|
nLRU_ptr dw -1
|
|
nMRU_ptr dw -1 ;reverse of nLRU_ptr
|
|
nChild_ptr dw -1
|
|
nSibling_ptr dw -1
|
|
nBackward_ptr dw -1 ;points to preceding node
|
|
nCmpct_Dir_Info db size Cmpct_Dir_Info dup (' ')
|
|
nExtended_Info db size Fastopen_Extended_Info dup (?)
|
|
NAME_RECORD ENDS
|
|
;
|
|
|
|
DRIVE_CACHE_HEADER STRUC ;drive cache header
|
|
DCH_LRU_ROOT dw 0 ;Header of the LRU chain of this drive
|
|
DCH_MRU_ROOT dw 0 ;offset to the last entry of LRU chain
|
|
DCH_Child_ptr dw -1 ;the first child in Name cache seg.
|
|
DCH_Sibling_ptr dw -1 ;points to the next drive cache header
|
|
DCH_Drive_letter db 'C' ;drive letter
|
|
DCH_Num_Entries dw 0 ;Number of entries in the Name cache.
|
|
DCH_Name_Buff dw 0 ;pointer to name cahe buffer
|
|
DRIVE_CACHE_HEADER ENDS
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
;======== FAST SEEK FUNCTION DATA STRUCTURES =======================
|
|
|
|
DRIVE_HEADER STRUC ; Drive header structure ;AN000;
|
|
Drive_Number dw 0 ; drive number ;AN000;
|
|
Extent_Count dw 0 ; reserved for debugging
|
|
MRU_Hdr_Ptr dw 0 ; pointer to OPEN Queue
|
|
Free_ptr dw 0 ; pointer to FREE buffer ;AN000;
|
|
Close_Ptr dw 0 ; pointer to CLOSE Queue ;AN000;
|
|
Buff_Size dw 0 ; cache buffer size including header ;AN000;
|
|
Free_Size dw 0 ; size of Free area in bytes
|
|
Next_Drv_Hdr_Ptr dw 0 ; pointer to next drive header
|
|
DRIVE_HEADER ENDS
|
|
|
|
|
|
|
|
FILE_HEADER STRUC ; File header structure ;AN000;
|
|
FH_Phys_Clus_Num dw 0 ; starting physcial clustnum of file ;AN000;
|
|
FH_Refer_Count dw 0 ; reference count ;AN000;
|
|
FH_Next_Extn_Ptr dw 0 ; pointer to first extent of the file;AN000;
|
|
FH_Next_Hdr_Ptr dw 0 ; pointer to next file header ;AN000;
|
|
FH_MRU_Extn_Ptr dw 0 ; pointer to MRU extent
|
|
dw 0
|
|
dw 0
|
|
dw 0
|
|
FILE_HEADER ENDS ;AN000;
|
|
|
|
|
|
|
|
EXTENT_HEADER STRUC ; extend header structure ;AN000;
|
|
EH_Logic_Clus_Num dw 0 ; starting logical clus num of extent;AN000;
|
|
EH_Phys_Clus_Num dw 0 ; starting physical clus numof extnt;AN000;
|
|
EH_Count dw 0 ; range of logical clusnum in the extnt
|
|
EH_Next_Extn_Ptr dw 0 ; pointer to next extent ;AN000;
|
|
EH_Prev_Extn_Ptr dw 0 ; pointer to previous extent ;AN000;
|
|
EH_Next_LRU_Ptr dw 0 ; pointer to next LRU extent
|
|
EH_Prev_LRU_Ptr dw 0 ; pointer tp previous LRU extent
|
|
dw 0
|
|
EXTENT_HEADER ENDS
|
|
|
|
|
|
|
|
|