summaryrefslogtreecommitdiff
path: root/v4.0/src/INC/BUFFER.INC
diff options
context:
space:
mode:
Diffstat (limited to 'v4.0/src/INC/BUFFER.INC')
-rw-r--r--v4.0/src/INC/BUFFER.INC77
1 files changed, 77 insertions, 0 deletions
diff --git a/v4.0/src/INC/BUFFER.INC b/v4.0/src/INC/BUFFER.INC
new file mode 100644
index 0000000..bd64882
--- /dev/null
+++ b/v4.0/src/INC/BUFFER.INC
@@ -0,0 +1,77 @@
1; SCCSID = @(#)buffer.asm 1.1 85/04/09
2BREAK <Disk I/O Buffer Header>
3;----+----+----+----+----+----+----+----+----+----+----+----+----+----+----;
4; C A V E A T P R O G R A M M E R ;
5; ;
6
7; Field definition for I/O buffer information
8
9BUFFINFO STRUC
10buf_next DW ? ; Pointer to next buffer in list
11buf_prev DW ? ; Pointer to prev buffer in list
12buf_ID DB ? ; Drive of buffer (bit 7 = 0)
13 ; SFT table index (bit 7 = 1)
14 ; = FFH if buffer free
15buf_flags DB ? ; Bit 7 = 1 if Remote file buffer
16 ; = 0 if Local device buffer
17 ; Bit 6 = 1 if buffer dirty
18 ; Bit 5 = Reserved
19 ; Bit 4 = Search bit (bit 7 = 1)
20 ; Bit 3 = 1 if buffer is DATA
21 ; Bit 2 = 1 if buffer is DIR
22 ; Bit 1 = 1 if buffer is FAT
23 ; Bit 0 = Reserved
24buf_sector DD ? ; Sector number of buffer (bit 7 = 0)
25; The next two items are often refed as a word (bit 7 = 0)
26buf_wrtcnt DB ? ; For FAT sectors, # times sector written out
27buf_wrtcntinc DW ? ; " " " , # sectors between each write
28buf_DPB DD ? ; Pointer to drive parameters
29buf_fill DW ? ; How full buffer is (bit 7 = 1)
30buf_reserved DB ? ; make DWORD boundary for 386
31BUFFINFO ENDS
32
33buf_offset EQU DWORD PTR buf_sector
34 ;For bit 7 = 1, this is the byte
35 ;offset of the start of the buffer in
36 ;the file pointed to by buf_ID. Thus
37 ;the buffer starts at location
38 ;buf_offset in the file and contains
39 ;buf_fill bytes.
40
41BUFINSIZ EQU SIZE BUFFINFO
42 ; Size of structure in bytes
43
44buf_Free EQU 0FFh ; buf_id of free buffer
45
46;Flag byte masks
47buf_isnet EQU 10000000B
48buf_dirty EQU 01000000B
49;***
50buf_visit EQU 00100000B
51;***
52buf_snbuf EQU 00010000B
53
54buf_isDATA EQU 00001000B
55buf_isDIR EQU 00000100B
56buf_isFAT EQU 00000010B
57buf_type_0 EQU 11110001B ; AND sets type to "none"
58
59buf_NetID EQU BUFINSIZ
60
61;
62; Buffer Hash Entry Structure
63
64BUFFER_HASH_ENTRY STRUC ; DOS 4.00
65EMS_PAGE_NUM DW -1 ; logical page number for EMS handle
66BUFFER_BUCKET DD ? ; pointer to buffers
67DIRTY_COUNT DB 0 ; number of dirty buffers
68BUFFER_RESERVED DB 0 ; reserved
69BUFFER_HASH_ENTRY ENDS
70
71MaxBuffinBucket EQU 15 ; Max number of buffers per bucket
72MaxBucketinPage EQU 2 ; Max number of buckets per 16kb page
73
74
75; ;
76; C A V E A T P R O G R A M M E R ;
77;----+----+----+----+----+----+----+----+----+----+----+----+----+----+----;