diff options
Diffstat (limited to 'v4.0/src/INC/BUFFER.INC')
| -rw-r--r-- | v4.0/src/INC/BUFFER.INC | 77 |
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 | ||
| 2 | BREAK <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 | |||
| 9 | BUFFINFO STRUC | ||
| 10 | buf_next DW ? ; Pointer to next buffer in list | ||
| 11 | buf_prev DW ? ; Pointer to prev buffer in list | ||
| 12 | buf_ID DB ? ; Drive of buffer (bit 7 = 0) | ||
| 13 | ; SFT table index (bit 7 = 1) | ||
| 14 | ; = FFH if buffer free | ||
| 15 | buf_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 | ||
| 24 | buf_sector DD ? ; Sector number of buffer (bit 7 = 0) | ||
| 25 | ; The next two items are often refed as a word (bit 7 = 0) | ||
| 26 | buf_wrtcnt DB ? ; For FAT sectors, # times sector written out | ||
| 27 | buf_wrtcntinc DW ? ; " " " , # sectors between each write | ||
| 28 | buf_DPB DD ? ; Pointer to drive parameters | ||
| 29 | buf_fill DW ? ; How full buffer is (bit 7 = 1) | ||
| 30 | buf_reserved DB ? ; make DWORD boundary for 386 | ||
| 31 | BUFFINFO ENDS | ||
| 32 | |||
| 33 | buf_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 | |||
| 41 | BUFINSIZ EQU SIZE BUFFINFO | ||
| 42 | ; Size of structure in bytes | ||
| 43 | |||
| 44 | buf_Free EQU 0FFh ; buf_id of free buffer | ||
| 45 | |||
| 46 | ;Flag byte masks | ||
| 47 | buf_isnet EQU 10000000B | ||
| 48 | buf_dirty EQU 01000000B | ||
| 49 | ;*** | ||
| 50 | buf_visit EQU 00100000B | ||
| 51 | ;*** | ||
| 52 | buf_snbuf EQU 00010000B | ||
| 53 | |||
| 54 | buf_isDATA EQU 00001000B | ||
| 55 | buf_isDIR EQU 00000100B | ||
| 56 | buf_isFAT EQU 00000010B | ||
| 57 | buf_type_0 EQU 11110001B ; AND sets type to "none" | ||
| 58 | |||
| 59 | buf_NetID EQU BUFINSIZ | ||
| 60 | |||
| 61 | ; | ||
| 62 | ; Buffer Hash Entry Structure | ||
| 63 | |||
| 64 | BUFFER_HASH_ENTRY STRUC ; DOS 4.00 | ||
| 65 | EMS_PAGE_NUM DW -1 ; logical page number for EMS handle | ||
| 66 | BUFFER_BUCKET DD ? ; pointer to buffers | ||
| 67 | DIRTY_COUNT DB 0 ; number of dirty buffers | ||
| 68 | BUFFER_RESERVED DB 0 ; reserved | ||
| 69 | BUFFER_HASH_ENTRY ENDS | ||
| 70 | |||
| 71 | MaxBuffinBucket EQU 15 ; Max number of buffers per bucket | ||
| 72 | MaxBucketinPage 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 | ;----+----+----+----+----+----+----+----+----+----+----+----+----+----+----; | ||