summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-10-03 16:17:47 -0700
committerH. Peter Anvin <hpa@zytor.com>2007-10-03 16:17:47 -0700
commit985c965eca140470d87912cebd923cd27a6d892c (patch)
tree8440b6a12d295b1c7225ed1a57b608ee18f29e8b
parent3f237720e9819485e098ef88092174657c2c60ee (diff)
downloadsyslinux-985c965eca140470d87912cebd923cd27a6d892c.tar.gz
Update the memory layout specification
Update the memory layout specification. Remove NASM 0.98.38 bug workarounds, rebalance the bss sections, and introduce the new section .adv which contain the auxilliary data vector.
-rw-r--r--cache.inc2
-rw-r--r--com32.inc2
-rw-r--r--comboot.inc2
-rw-r--r--dnsresolv.inc2
-rw-r--r--font.inc7
-rw-r--r--getc.inc2
-rw-r--r--graphics.inc2
-rw-r--r--layout.inc28
-rw-r--r--parsecmd.inc2
-rw-r--r--parseconfig.inc2
-rw-r--r--pxelinux.asm2
11 files changed, 25 insertions, 28 deletions
diff --git a/cache.inc b/cache.inc
index 0d9d453f..99ae9652 100644
--- a/cache.inc
+++ b/cache.inc
@@ -103,7 +103,7 @@ getcachesector:
pop cx
ret
- section .latebss
+ section .bss
; Each CachePtr contains:
; - Block pointer
diff --git a/com32.inc b/com32.inc
index 6b65dd93..fdf84347 100644
--- a/com32.inc
+++ b/com32.inc
@@ -350,7 +350,7 @@ com32_sys_resume:
bits 16
- section .bss
+ section .bss1
alignb 4
RealModeSSSP resd 1 ; Real-mode SS:SP
PMESP resd 1 ; Protected-mode ESP
diff --git a/comboot.inc b/comboot.inc
index ffc9425f..61da382f 100644
--- a/comboot.inc
+++ b/comboot.inc
@@ -967,5 +967,5 @@ feature_flags_len equ ($-feature_flags)
err_notdos db ': attempted DOS system call', CR, LF, 0
err_comlarge db 'COMBOOT image too large.', CR, LF, 0
- section .latebss
+ section .bss1
ConfigName resb FILENAME_MAX
diff --git a/dnsresolv.inc b/dnsresolv.inc
index 166e11f3..4fe2040a 100644
--- a/dnsresolv.inc
+++ b/dnsresolv.inc
@@ -150,7 +150,7 @@ dns_skiplabel:
.rdata: equ $
endstruc
- section .latebss
+ section .bss
alignb 2
DNSSendBuf resb DNS_MAX_PACKET
DNSRecvBuf resb DNS_MAX_PACKET
diff --git a/font.inc b/font.inc
index 5da4d59f..16d0d91e 100644
--- a/font.inc
+++ b/font.inc
@@ -123,10 +123,7 @@ vidrows_ok: mov [VidRows],al
popa
ret
-
-; VGA font buffer at the end of memory (so loading a font works even
-; in graphics mode, but don't put too much pressure on the .bss)
- section .latebss
+ section .bss
vgafontbuf resb 8192
section .data
@@ -134,7 +131,7 @@ vgafontbuf resb 8192
VGAFontSize dw 16 ; Defaults to 16 byte font
UserFont db 0 ; Using a user-specified font
- section .bss
+ section .bss1
alignb 4
GXPixCols resw 1 ; Graphics mode pixel columns
GXPixRows resw 1 ; Graphics mode pixel rows
diff --git a/getc.inc b/getc.inc
index 5c8dc862..9dc8dca6 100644
--- a/getc.inc
+++ b/getc.inc
@@ -307,7 +307,7 @@ parseint:
.isk: shl ebx,10 ; * 2^10
jmp .fini
- section .bss
+ section .bss1
alignb 4
NumBuf resb 15 ; Buffer to load number
NumBufEnd resb 1 ; Last byte in NumBuf
diff --git a/graphics.inc b/graphics.inc
index e80e04cd..e452a840 100644
--- a/graphics.inc
+++ b/graphics.inc
@@ -346,7 +346,7 @@ linear_color db 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0
; of this byte.
UsingVGA db 0
- section .latebss
+ section .bss1
alignb 2
GraphXSize resw 1 ; Width of splash screen file
VGAPos resw 1 ; Pointer into VGA memory
diff --git a/layout.inc b/layout.inc
index 05ed7284..4fa49bb3 100644
--- a/layout.inc
+++ b/layout.inc
@@ -42,24 +42,24 @@ STACK_START equ TEXT_START-STACK_SIZE
;
org TEXT_START
- ; NASM BUG: refers to hacks to handle NASM 0.98.38 bugs; might need
- ; conditional compilation
+ ; Use .earlybss for things that MUST be in low memory.
+ section .earlybss nobits start=BSS_START
+ section .bcopy32 align=4 valign=16 follows=.data vfollows=.earlybss
+ section .config align=4 valign=16 follows=.bcopy32 vfollows=.bcopy32
+ section .config.end nobits valign=4 vfollows=.config
- section .earlybss nobits start=BSS_START
- section .bcopy32 align=4 valign=16 follows=.data vfollows=.earlybss
- section .config align=4 valign=16 follows=.bcopy32 vfollows=.bcopy32
- section .config.end nobits align=4 follows=.config
+ ; Use .bss1 for things that doesn't have to be in low memory,
+ ; but are in order to offload .bss
+ section .bss1 nobits valign=16 vfollows=.config.end
- ; NASM BUG: follows= here should be vfollows=
- section .bss nobits align=256 follows=.config.end
+ section .text start=TEXT_START
+ ; NASM BUG: .data always follows .text; can't override
+ section .data align=16 ; follows=.text
- section .text start=TEXT_START
- ; NASM BUG: follows=.text not accepted here
- section .data align=16 ; follows=.text
+ section .adv progbits align=1 follows=.config
- ; NASM BUG: We would like to do follows=.bcopy32
- section .latebss nobits align=16 start=LATEBSS_START
+ section .bss nobits align=16 follows=.adv
; Reserve space for stack
- section .stack nobits align=16 start=STACK_START
+ section .stack nobits align=16 start=STACK_START
Stack resb STACK_SIZE
diff --git a/parsecmd.inc b/parsecmd.inc
index a87da4b1..c19c658c 100644
--- a/parsecmd.inc
+++ b/parsecmd.inc
@@ -96,7 +96,7 @@ getcommand:
err_badcfg db 'Unknown keyword in syslinux.cfg.', CR, LF, 0
err_noparm db 'Missing parameter in syslinux.cfg.', CR, LF, 0
- section .latebss
+ section .bss
alignb 4
vk_size equ (vk_end + 3) & ~3
VKernelBuf: resb vk_size ; "Current" vkernel
diff --git a/parseconfig.inc b/parseconfig.inc
index 2b6031fd..ef1ed112 100644
--- a/parseconfig.inc
+++ b/parseconfig.inc
@@ -436,7 +436,7 @@ VKernel db 0 ; Have we seen any "label" statements?
IPAppend db 0 ; Default IPAPPEND option
%endif
- section .latebss
+ section .bss
alignb 4 ; For the good of REP MOVSD
command_line resb max_cmd_len+2 ; Command line buffer
alignb 4
diff --git a/pxelinux.asm b/pxelinux.asm
index 800c66d5..d54510bb 100644
--- a/pxelinux.asm
+++ b/pxelinux.asm
@@ -210,7 +210,7 @@ PXEStack resd 1 ; Saved stack during PXE call
; writing a received ARP packet into low memory.
RBFG_brainfuck resb 0E00h
- section .latebss
+ section .bss
alignb 4
RebootTime resd 1 ; Reboot timeout, if set by option
StrucPtr resd 1 ; Pointer to PXENV+ or !PXE structure