File: knl.h

package info (click to toggle)
sbm 3.7.1-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,060 kB
  • ctags: 1,590
  • sloc: asm: 11,940; ansic: 2,870; makefile: 531
file content (76 lines) | stat: -rw-r--r-- 3,076 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
; knl.h
;
; header file for knl.asm
;
; Copyright (C) 2000, Suzhe. See file COPYING and CREDITS for details.
;

%define MAX_NAME_LENGTH   15
%define MAX_KEYSTROKES    13

%define FAT16_DRVID_OFF   0x24               ; drive id offset in fat16
%define FAT16_HIDSEC_OFF  0x1C               ; hidden sector offset in fat16
%define FAT16_EXTBRID_OFF 0x26               ; EXBRID offset in fat16

%define FAT32_DRVID_OFF   0x40
%define FAT32_HIDSEC_OFF  0x1C
%define FAT32_EXTBRID_OFF 0x42

%define EXTBRID           0x29               ; ext boot record id for fat

%define INFOFLAG_SCHEDULED  0x8000       ; 1000,0000,0000,0000B
%define INFOFLAG_HAVEKEYS   0x4000       ; 0100,0000,0000,0000B
%define INFOFLAG_SWAPDRVID  0x2000       ; 0010,0000,0000,0000B
%define INFOFLAG_AUTOACTIVE 0x1000       ; 0001,0000,0000,0000B
%define INFOFLAG_ACTIVE     0x0800       ; 0000,1000,0000,0000B
%define INFOFLAG_AUTOHIDE   0x0400       ; 0000,0100,0000,0000B
%define INFOFLAG_HIDDEN     0x0200       ; 0000,0010,0000,0000B
%define INFOFLAG_LOGICAL    0x0100       ; 0000,0001,0000,0000B

%define INFOFLAG_ISDRIVER   0x0080       ; 0000,0000,1000,0000B
%define INFOFLAG_ISSPECIAL  0X0008       ; 0000,0000,0000,1000B

%define SPREC_BOOTPREV      0
%define SPREC_QUIT          1
%define SPREC_POWEROFF      2
%define SPREC_RESTART       3

%define NUM_OF_SPREC        4

%define NUM_OF_INFOFLAGS    9

; structure for boot record, including removable drives and partitions
struc struc_bootrecord
      .flags           : resw 1  ; type flags of this record, see INFOFLAG_x
      .drive_id        : resb 1  ; drive id = 0 to 255
                                 ; partition id used in linux,
      .part_id         : resb 1  ; 1-4 for primary partitions,
                                 ; > 5 for logical partitions,
                                 ; 0 for driver or special bootrecord.
      .type            : resb 1  ; partition type, = 0 : not a partition
      .reserved        : resb 1  ;
      .father_abs_addr : resd 1  ; father's LBA address
      .abs_addr        : resd 1  ; partition's abs LBA address
      .password        : resd 1  ; password of this record
      .schedule_time   : resd 1  ; schedule time
      .name            : resb 16 ; name of this record, zero ending.
      .keystrokes      : resw 13 ; keystrokes to be preloaded.
      .end_of_struc
endstruc

; structure for partition record
struc struc_partition
      .state           : resb 1  ; = 0 : inactive; = drive id : active
      .start_head      : resb 1  ; start chs address of the partition
      .start_cs        : resw 1  ;
      .type            : resb 1  ; equal to the same item in struc_bootrecord
      .end_head        : resb 1  ; end chs address of the partition
      .end_cs          : resw 1  ;
      .relative_addr   : resd 1  ; the relative address of this partition
      .sectors         : resd 1  ; the number of sectors of the partition
      .end_of_struc
endstruc

%define SIZE_OF_BOOTRECORD (struc_bootrecord.end_of_struc)
%define SIZE_OF_PARTITION  (struc_partition.end_of_struc)