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