• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
28kern_cmd_magic	resw 1			; 0020 Magic # for command line
29kern_cmd_offset resw 1			; 0022 Offset for kernel command line
30		resb 497-($-$$)		; org 497d
31bs_setupsecs	resb 1			; 01F1 Sectors for setup code (0 -> 4)
32bs_rootflags	resw 1			; 01F2 Root readonly flag
33bs_syssize	resw 1			; 01F4
34bs_swapdev	resw 1			; 01F6 Swap device (obsolete)
35bs_ramsize	resw 1			; 01F8 Ramdisk flags, formerly ramdisk size
36bs_vidmode	resw 1			; 01FA Video mode
37bs_rootdev	resw 1			; 01FC Root device
38bs_bootsign	resw 1			; 01FE Boot sector signature (0AA55h)
39su_jump		resb 1			; 0200 0EBh
40su_jump2	resb 1			; 0201 Size of following header
41su_header	resd 1			; 0202 New setup code: header
42su_version	resw 1			; 0206 See linux/arch/i386/boot/setup.S
43su_switch	resw 1			; 0208
44su_setupseg	resw 1			; 020A
45su_startsys	resw 1			; 020C
46su_kver		resw 1			; 020E Kernel version pointer
47su_loader	resb 1			; 0210 Loader ID
48su_loadflags	resb 1			; 0211 Load high flag
49su_movesize	resw 1			; 0212
50su_code32start	resd 1			; 0214 Start of code loaded high
51su_ramdiskat	resd 1			; 0218 Start of initial ramdisk
52su_ramdisklen	resd 1			; 021C Length of initial ramdisk
53su_bsklugeoffs	resw 1			; 0220
54su_bsklugeseg	resw 1			; 0222
55su_heapend	resw 1			; 0224
56su_pad1		resw 1			; 0226
57su_cmd_line_ptr	resd 1			; 0228
58su_ramdisk_max	resd 1			; 022C
59		resb (0f800h-12)-($-$$)
60linux_stack	equ $			; F7F4
61linux_fdctab	resb 12
62cmd_line_here	equ $			; F800 Should be out of the way
63		endstruc
64
65;
66; Old kernel command line signature
67;
68CMD_MAGIC	equ 0A33Fh		; Command line magic
69
70;
71; If we're loading the command line old-style, we need a smaller
72; heap.
73;
74old_cmd_line_here equ 9800h
75old_max_cmd_len   equ 2047
76old_linux_fdctab  equ old_cmd_line_here-12
77old_linux_stack   equ old_linux_fdctab
78
79;
80; Magic number of su_header field
81;
82HEADER_ID       equ 'HdrS'		; HdrS (in littleendian hex)
83
84;
85; Flags for the su_loadflags field
86;
87LOAD_HIGH	equ 01h			; Large kernel, load high
88QUIET_FLAG	equ 20h			; Quiet the kernel
89KEEP_SEGMENTS	equ 40h			; Don't reload segments
90CAN_USE_HEAP    equ 80h                 ; Boot loader reports heap size
91
92;
93; ID codes for various modules
94;
95syslinux_id	equ 031h		; 3 = SYSLINUX family; 1 = SYSLINUX
96pxelinux_id	equ 032h		; 3 = SYSLINUX family; 2 = PXELINUX
97isolinux_id	equ 033h		; 3 = SYSLINUX family; 3 = ISOLINUX
98extlinux_id	equ 034h		; 3 = SYSLINUX family; 4 = EXTLINUX
99
100;
101; Types of vkernels
102;
103VK_LOCALBOOT	equ -1			; localboot (no actual kernel loaded)
104VK_KERNEL	equ 0			; Choose by filename
105VK_LINUX	equ 1			; Linux kernel image
106VK_BOOT		equ 2			; Boot sector
107VK_BSS		equ 3			; BSS boot sector
108VK_PXE		equ 4			; PXE NBP
109VK_FDIMAGE	equ 5			; Floppy disk image
110VK_COMBOOT	equ 6			; COMBOOT image
111VK_COM32	equ 7			; COM32 image
112VK_CONFIG	equ 8			; Configuration file
113VK_TYPES	equ 9			; Number of VK types
114
115%endif ; _KERNEL_INC
116