strreplace: clean up and simplify
[profile/ivi/syslinux.git] / core / kernel.inc
1 ;; -----------------------------------------------------------------------
2 ;;
3 ;;   Copyright 1994-2008 H. Peter Anvin - All Rights Reserved
4 ;;
5 ;;   This program is free software; you can redistribute it and/or modify
6 ;;   it under the terms of the GNU General Public License as published by
7 ;;   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
8 ;;   Boston MA 02111-1307, USA; either version 2 of the License, or
9 ;;   (at your option) any later version; incorporated herein by reference.
10 ;;
11 ;; -----------------------------------------------------------------------
12
13 ;;
14 ;; kernel.inc
15 ;;
16 ;; Header file for the kernel interface definitions
17 ;;
18
19 %ifndef _KERNEL_INC
20 %define _KERNEL_INC
21
22 ;;
23 ;; Structure of the real_mode_seg
24 ;;
25
26                 struc real_mode_seg_t
27                 resb 20h-($-$$)         ; org 20h
28 kern_cmd_magic  resw 1                  ; 0020 Magic # for command line
29 kern_cmd_offset resw 1                  ; 0022 Offset for kernel command line
30                 resb 497-($-$$)         ; org 497d
31 bs_setupsecs    resb 1                  ; 01F1 Sectors for setup code (0 -> 4)
32 bs_rootflags    resw 1                  ; 01F2 Root readonly flag
33 bs_syssize      resw 1                  ; 01F4
34 bs_swapdev      resw 1                  ; 01F6 Swap device (obsolete)
35 bs_ramsize      resw 1                  ; 01F8 Ramdisk flags, formerly ramdisk size
36 bs_vidmode      resw 1                  ; 01FA Video mode
37 bs_rootdev      resw 1                  ; 01FC Root device
38 bs_bootsign     resw 1                  ; 01FE Boot sector signature (0AA55h)
39 su_jump         resb 1                  ; 0200 0EBh
40 su_jump2        resb 1                  ; 0201 Size of following header
41 su_header       resd 1                  ; 0202 New setup code: header
42 su_version      resw 1                  ; 0206 See linux/arch/i386/boot/setup.S
43 su_switch       resw 1                  ; 0208
44 su_setupseg     resw 1                  ; 020A
45 su_startsys     resw 1                  ; 020C
46 su_kver         resw 1                  ; 020E Kernel version pointer
47 su_loader       resb 1                  ; 0210 Loader ID
48 su_loadflags    resb 1                  ; 0211 Load high flag
49 su_movesize     resw 1                  ; 0212
50 su_code32start  resd 1                  ; 0214 Start of code loaded high
51 su_ramdiskat    resd 1                  ; 0218 Start of initial ramdisk
52 su_ramdisklen   resd 1                  ; 021C Length of initial ramdisk
53 su_bsklugeoffs  resw 1                  ; 0220
54 su_bsklugeseg   resw 1                  ; 0222
55 su_heapend      resw 1                  ; 0224
56 su_pad1         resw 1                  ; 0226
57 su_cmd_line_ptr resd 1                  ; 0228
58 su_ramdisk_max  resd 1                  ; 022C
59                 resb (0f800h-12)-($-$$)
60 linux_stack     equ $                   ; F7F4
61 linux_fdctab    resb 12
62 cmd_line_here   equ $                   ; F800 Should be out of the way
63                 endstruc
64
65                 global cmd_line
66 cmd_line        equ core_real_mode + cmd_line_here
67
68 ;
69 ; Old kernel command line signature
70 ;
71 CMD_MAGIC       equ 0A33Fh              ; Command line magic
72
73 ;
74 ; If we're loading the command line old-style, we need a smaller
75 ; heap.
76 ;
77 old_cmd_line_here equ 9800h
78 old_max_cmd_len   equ 2047
79 old_linux_fdctab  equ old_cmd_line_here-12
80 old_linux_stack   equ old_linux_fdctab
81
82 ;
83 ; Magic number of su_header field
84 ;
85 HEADER_ID       equ 'HdrS'              ; HdrS (in littleendian hex)
86
87 ;
88 ; Flags for the su_loadflags field
89 ;
90 LOAD_HIGH       equ 01h                 ; Large kernel, load high
91 QUIET_FLAG      equ 20h                 ; Quiet the kernel
92 KEEP_SEGMENTS   equ 40h                 ; Don't reload segments
93 CAN_USE_HEAP    equ 80h                 ; Boot loader reports heap size
94
95 ;
96 ; ID codes for various modules
97 ;
98 syslinux_id     equ 031h                ; 3 = SYSLINUX family; 1 = SYSLINUX
99 pxelinux_id     equ 032h                ; 3 = SYSLINUX family; 2 = PXELINUX
100 isolinux_id     equ 033h                ; 3 = SYSLINUX family; 3 = ISOLINUX
101 extlinux_id     equ 034h                ; 3 = SYSLINUX family; 4 = EXTLINUX
102
103 ;
104 ; Types of vkernels
105 ;
106 VK_LOCALBOOT    equ -1                  ; localboot (no actual kernel loaded)
107 VK_KERNEL       equ 0                   ; Choose by filename
108 VK_LINUX        equ 1                   ; Linux kernel image
109 VK_BOOT         equ 2                   ; Boot sector
110 VK_BSS          equ 3                   ; BSS boot sector
111 VK_PXE          equ 4                   ; PXE NBP
112 VK_FDIMAGE      equ 5                   ; Floppy disk image
113 VK_COMBOOT      equ 6                   ; COMBOOT image
114 VK_COM32        equ 7                   ; COM32 image
115 VK_CONFIG       equ 8                   ; Configuration file
116 VK_TYPES        equ 9                   ; Number of VK types
117
118 %endif ; _KERNEL_INC