150 lines
4.7 KiB
PHP
150 lines
4.7 KiB
PHP
;
|
||
; 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
|
||
|
||
|
||
|
||
|