summaryrefslogtreecommitdiff
path: root/pxelinux.asm
diff options
context:
space:
mode:
authorhpa <hpa>2004-12-17 06:42:00 +0000
committerhpa <hpa>2004-12-17 06:42:00 +0000
commit1ad9233d7287c8e98bda8774a6eafd2a3e988b89 (patch)
tree1d288d0b1fbb8c7d6df445f9c3c5bfe6abfc5817 /pxelinux.asm
parent7da4d04f57c549c1e6cf850d75400ded5ac82cb8 (diff)
downloadsyslinux-1ad9233d7287c8e98bda8774a6eafd2a3e988b89.tar.gz
Actually use sections, and move common variables into the .inc files.syslinux-2.20-pre3
The .bss section at the beginning of each .asm file is now downright tiny.
Diffstat (limited to 'pxelinux.asm')
-rw-r--r--pxelinux.asm100
1 files changed, 10 insertions, 90 deletions
diff --git a/pxelinux.asm b/pxelinux.asm
index 731577d8..1ae05d79 100644
--- a/pxelinux.asm
+++ b/pxelinux.asm
@@ -203,98 +203,27 @@ getcbuf resb trackbufsize
; writing a received ARP packet into low memory.
RBFB_brainfuck resb 800h
-VKernelBuf: resb vk_size ; "Current" vkernel
- alignb 4
-AppendBuf resb max_cmd_len+1 ; append=
-Ontimeout resb max_cmd_len+1 ; ontimeout
-Onerror resb max_cmd_len+1 ; onerror
-KbdMap resb 256 ; Keyboard map
-PathPrefix resb 256 ; Path prefix derived from the above
+ alignb FILENAME_MAX
BootFile resb 256 ; Boot file from DHCP packet
ConfigName resb 256 ; Configuration file from DHCP option
-FKeyName resb 10*FILENAME_MAX ; File names for F-key help
- alignb FILENAME_MAX
-KernelName resb FILENAME_MAX ; Mangled name for kernel
-KernelCName resb FILENAME_MAX ; Unmangled kernel name
-InitRDCName resb FILENAME_MAX ; Unmangled initrd name
-MNameBuf resb FILENAME_MAX
-InitRD resb FILENAME_MAX
-NumBuf resb 15 ; Buffer to load number
-NumBufEnd resb 1 ; Last byte in NumBuf
+PathPrefix resb 256 ; Path prefix derived from boot file
DotQuadBuf resb 16 ; Buffer for dotted-quad IP address
IPOption resb 80 ; ip= option buffer
-MACLen resb 1 ; MAC address len
-MACType resb 1 ; MAC address type
MAC resb 16 ; Actual MAC address
MACStr resb 3*17 ; MAC address as a string
-PartInfo resb 16 ; Partition table entry
-E820Buf resd 5 ; INT 15:E820 data buffer
-E820Mem resd 1 ; Memory detected by E820
-E820Max resd 1 ; Is E820 memory capped?
-HiLoadAddr resd 1 ; Address pointer for high load loop
-HighMemSize resd 1 ; End of memory pointer (bytes)
-RamdiskMax resd 1 ; Highest address for a ramdisk
-KernelSize resd 1 ; Size of kernel (bytes)
-SavedSSSP resd 1 ; Our SS:SP while running a COMBOOT image
-PMESP resd 1 ; Protected-mode ESP
-FSectors resd 1 ; Number of sectors in getc file
+ alignb 4
InitStack resd 1 ; Pointer to reset stack
RebootTime resd 1 ; Reboot timeout, if set by option
-KernelSects resd 1 ; Kernel size in clusters
StrucPtr resd 1 ; Pointer to PXENV+ or !PXE structure
-FBytes equ $ ; Used by open/getc
-FBytes1 resw 1
-FBytes2 resw 1
-FNextClust resw 1 ; Pointer to next cluster in d:o
-FPtr resw 1 ; Pointer to next char in buffer
-CmdOptPtr resw 1 ; Pointer to first option on cmd line
-KernelCNameLen resw 1 ; Length of unmangled kernel name
-InitRDCNameLen resw 1 ; Length of unmangled initrd name
-NextCharJump resw 1 ; Routine to interpret next print char
-SetupSecs resw 1 ; Number of setup sectors
-A20Test resw 1 ; Counter for testing status of A20
-A20Type resw 1 ; A20 type
-CmdLineLen resw 1 ; Length of command line including null
-GraphXSize resw 1 ; Width of splash screen file
-VGAPos resw 1 ; Pointer into VGA memory
-VGACluster resw 1 ; Cluster pointer for VGA image file
-VGAFilePtr resw 1 ; Pointer into VGAFileBuf
-Com32SysSP resw 1 ; SP saved during COM32 syscall
-ConfigFile resw 1 ; Socket for config file
-PktTimeout resw 1 ; Timeout for current packet
-KernelExtPtr resw 1 ; During search, final null pointer
+APIVer resw 1 ; PXE API version found
IPOptionLen resw 1 ; Length of IPOption
+IdleTimer resw 1 ; Time to check for ARP?
LocalBootType resw 1 ; Local boot return code
+PktTimeout resw 1 ; Timeout for current packet
RealBaseMem resw 1 ; Amount of DOS memory after freeing
-APIVer resw 1 ; PXE API version found
-IdleTimer resw 1 ; Time to check for ARP?
-CursorDX equ $
-CursorCol resb 1 ; Cursor column for message file
-CursorRow resb 1 ; Cursor row for message file
-ScreenSize equ $
-VidCols resb 1 ; Columns on screen-1
-VidRows resb 1 ; Rows on screen-1
-BaudDivisor resw 1 ; Baud rate divisor
-FlowControl equ $
-FlowOutput resb 1 ; Outputs to assert for serial flow
-FlowInput resb 1 ; Input bits for serial flow
-FlowIgnore resb 1 ; Ignore input unless these bits set
-TextAttribute resb 1 ; Text attribute for message file
-RetryCount resb 1 ; Used for disk access retries
-KbdFlags resb 1 ; Check for keyboard escapes
-LoadFlags resb 1 ; Loadflags from kernel
-A20Tries resb 1 ; Times until giving up on A20
-FuncFlag resb 1 ; == 1 if <Ctrl-F> pressed
-DisplayMask resb 1 ; Display modes mask
+MACLen resb 1 ; MAC address len
+MACType resb 1 ; MAC address type
OverLoad resb 1 ; Set if DHCP packet uses "overloading"
-TextColorReg resb 17 ; VGA color registers for text mode
-VGAFileBuf resb FILENAME_MAX ; Unmangled VGA image name
-VGAFileBufEnd equ $
-VGAFileMBuf resb FILENAME_MAX ; Mangled VGA image name
- alignb 4 ; For the good of REP MOVSD
-command_line resb max_cmd_len+2 ; Command line buffer
- alignb 4
-default_cmd resb max_cmd_len+1 ; "default" command line
;
; PXE packets which don't need static initialization
@@ -2305,6 +2234,8 @@ writestr equ cwritestr
; Begin data section
; -----------------------------------------------------------------------------
+ section .data
+
hextbl_lower db '0123456789abcdef'
copyright_str db ' Copyright (C) 1994-', year, ' H. Peter Anvin'
db CR, LF, 0
@@ -2560,14 +2491,3 @@ linuxauto_len equ $-linuxauto_cmd
boot_image db 'BOOT_IMAGE='
boot_image_len equ $-boot_image
ldlinux_end equ $
-
-; VGA font buffer at the end of memory (so loading a font works even
-; in graphics mode.)
-vgafontbuf equ 0E000h
-
-; This is a compile-time assert that we didn't run out of space
-%ifndef DEPEND
-%if (ldlinux_end-bootsec+7C00h) > vgafontbuf
-%error "Out of memory, better reorganize something..."
-%endif
-%endif