More fixes to the extlinux installer; change back to writable types
[profile/ivi/syslinux.git] / kernel.inc
1 ;; $Id$
2 ;; -----------------------------------------------------------------------
3 ;;   
4 ;;   Copyright 1994-2002 H. Peter Anvin - All Rights Reserved
5 ;;
6 ;;   This program is free software; you can redistribute it and/or modify
7 ;;   it under the terms of the GNU General Public License as published by
8 ;;   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
9 ;;   Boston MA 02111-1307, USA; either version 2 of the License, or
10 ;;   (at your option) any later version; incorporated herein by reference.
11 ;;
12 ;; -----------------------------------------------------------------------
13
14 ;;
15 ;; kernel.inc
16 ;; 
17 ;; Header file for the kernel interface definitions
18 ;;
19
20 %ifndef _KERNEL_INC
21 %define _KERNEL_INC
22
23 ;;
24 ;; Structure of the real_mode_seg
25 ;;
26
27                 struc real_mode_seg_t
28                 resb 20h-($-$$)         ; org 20h
29 kern_cmd_magic  resw 1                  ; 0020 Magic # for command line
30 kern_cmd_offset resw 1                  ; 0022 Offset for kernel command line
31                 resb 497-($-$$)         ; org 497d
32 bs_setupsecs    resb 1                  ; 01F1 Sectors for setup code (0 -> 4)
33 bs_rootflags    resw 1                  ; 01F2 Root readonly flag
34 bs_syssize      resw 1                  ; 01F4
35 bs_swapdev      resw 1                  ; 01F6 Swap device (obsolete)
36 bs_ramsize      resw 1                  ; 01F8 Ramdisk flags, formerly ramdisk size
37 bs_vidmode      resw 1                  ; 01FA Video mode
38 bs_rootdev      resw 1                  ; 01FC Root device
39 bs_bootsign     resw 1                  ; 01FE Boot sector signature (0AA55h)
40 su_jump         resb 1                  ; 0200 0EBh
41 su_jump2        resb 1                  ; 0201 Size of following header
42 su_header       resd 1                  ; 0202 New setup code: header
43 su_version      resw 1                  ; 0206 See linux/arch/i386/boot/setup.S
44 su_switch       resw 1                  ; 0208
45 su_setupseg     resw 1                  ; 020A
46 su_startsys     resw 1                  ; 020C
47 su_kver         resw 1                  ; 020E Kernel version pointer
48 su_loader       resb 1                  ; 0210 Loader ID
49 su_loadflags    resb 1                  ; 0211 Load high flag
50 su_movesize     resw 1                  ; 0212
51 su_code32start  resd 1                  ; 0214 Start of code loaded high
52 su_ramdiskat    resd 1                  ; 0218 Start of initial ramdisk
53 su_ramdisklen   equ $                   ; Length of initial ramdisk
54 su_ramdisklen1  resw 1                  ; 021C
55 su_ramdisklen2  resw 1                  ; 021E
56 su_bsklugeoffs  resw 1                  ; 0220
57 su_bsklugeseg   resw 1                  ; 0222
58 su_heapend      resw 1                  ; 0224
59 su_pad1         resw 1                  ; 0226
60 su_cmd_line_ptr resd 1                  ; 0228
61 su_ramdisk_max  resd 1                  ; 022C
62                 resb (9000h-12)-($-$$)  ; Were bootsect.S puts it...
63 linux_stack     equ $                   ; 8FF4
64 linux_fdctab    equ $
65                 resb 9000h-($-$$)
66 cmd_line_here   equ $                   ; 9000 Should be out of the way
67                 endstruc
68
69 ;
70 ; Kernel command line signature
71 ;
72 CMD_MAGIC       equ 0A33Fh              ; Command line magic
73
74 ;
75 ; Magic number of su_header field
76 ;
77 HEADER_ID       equ 'HdrS'              ; HdrS (in littleendian hex)
78
79 ;
80 ; Flags for the su_loadflags field
81 ;
82 LOAD_HIGH       equ 01h                 ; Large kernel, load high
83 CAN_USE_HEAP    equ 80h                 ; Boot loader reports heap size
84
85 ;
86 ; ID codes for various modules
87 ;
88 syslinux_id     equ 031h                ; 3 = SYSLINUX family; 1 = SYSLINUX
89 pxelinux_id     equ 032h                ; 3 = SYSLINUX family; 2 = PXELINUX
90 isolinux_id     equ 033h                ; 3 = SYSLINUX family; 3 = ISOLINUX
91 extlinux_id     equ 034h                ; 3 = SYSLINUX family; 4 = EXTLINUX
92
93 %endif ; _KERNEL_INC