aboutsummaryrefslogtreecommitdiffstats
path: root/core/isolinux.asm
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2012-07-27 10:41:30 +0100
committerMatt Fleming <matt.fleming@intel.com>2012-07-30 09:51:36 +0100
commit0d6f330878173c7ba45b884f3e41ce40b917c73c (patch)
tree0a887066d35d8b01914330d6ab6818fe015a5a9d /core/isolinux.asm
parent0fcd9a48603497dcc2727570a50a4401bb0fd085 (diff)
parentf0bbf9dd40f37f8c4870a33784996efd56955a75 (diff)
downloadsyslinux-0d6f330878173c7ba45b884f3e41ce40b917c73c.tar.gz
syslinux-0d6f330878173c7ba45b884f3e41ce40b917c73c.tar.xz
syslinux-0d6f330878173c7ba45b884f3e41ce40b917c73c.zip
Merge remote-tracking branch 'mfleming/elflink' into for-hpa/elflink/firmware
Conflicts: Makefile com32/elflink/ldlinux/adv.c com32/elflink/ldlinux/kernel.c com32/elflink/ldlinux/ldlinux.c com32/include/bitsize/stddef.h com32/include/bitsize/stdint.h com32/include/stdint.h com32/include/sys/module.h com32/include/sys/x86_64/bitops.h com32/include/syslinux/linux.h com32/lib/Makefile com32/lib/sys/ansicon_write.c com32/lib/sys/module/elfutils.h com32/lib/sys/vesa/efi/fill.h com32/lib/syslinux/load_linux.c com32/lib/syslinux/serial.c com32/lib/syslinux/shuffle.c core/conio.c core/elflink/config.c core/elflink/load_env32.c core/graphics.c core/include/graphics.h core/init.c core/pxelinux.asm mk/elf.mk mk/lib.mk
Diffstat (limited to 'core/isolinux.asm')
-rw-r--r--core/isolinux.asm60
1 files changed, 55 insertions, 5 deletions
diff --git a/core/isolinux.asm b/core/isolinux.asm
index cb64d8ab..06291f8b 100644
--- a/core/isolinux.asm
+++ b/core/isolinux.asm
@@ -167,6 +167,7 @@ _spec_len equ _spec_end - _spec_start
;; CD-ROM sector (2K) of the file, so the number one priority is actually
;; loading the rest.
;;
+ global StackBuf
StackBuf equ STACK_TOP-44 ; 44 bytes needed for
; the bootsector chainloading
; code!
@@ -521,7 +522,7 @@ award_string db 0b8h,1,2,0bbh,0,7ch,0b9h,6,0,0bah,80h,1,09ch,09ah ;;
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
award_hack: mov si,spec_err_msg ; Moved to this place from
- call writemsg ; spec_query_faild
+ call writemsg ; spec_query_failed
;
%ifdef DEBUG_MESSAGES ;
;
@@ -1035,7 +1036,7 @@ xint13: mov byte [RetryCount],retry_count
disk_error:
kaboom:
RESET_STACK_AND_SEGS AX
- mov si,err_bootfailed
+ mov si,bailmsg
pm_call pm_writestr
pm_call pm_getchar
cli
@@ -1168,6 +1169,10 @@ init_fs:
mov di,[bsSecPerTrack]
pm_call pm_fs_init
pm_call load_env32
+enter_command:
+auto_boot:
+ jmp kaboom ; load_env32() should never return. If
+ ; it does, then kaboom!
popad
section .rodata
@@ -1195,11 +1200,56 @@ debug_tracer: pushad
ret
%endif ; DEBUG_TRACERS
+ section .bss16
+ global CmdOptPtr, KbdMap
+ alignb 4
+ThisKbdTo resd 1 ; Temporary holder for KbdTimeout
+ThisTotalTo resd 1 ; Temporary holder for TotalTimeout
+KernelExtPtr resw 1 ; During search, final null pointer
+CmdOptPtr resw 1 ; Pointer to first option on cmd line
+KbdFlags resb 1 ; Check for keyboard escapes
+FuncFlag resb 1 ; Escape sequences received from keyboard
+KernelType resb 1 ; Kernel type, from vkernel, if known
+KbdMap resb 256 ; Keyboard map
+ global KernelName
+KernelName resb FILENAME_MAX ; Mangled name for kernel
+ section .config
+ global PXERetry
+PXERetry dw 0 ; Extra PXE retries
+ section .data16
+ global SerialNotice
+SerialNotice db 1 ; Only print this once
+ global IPAppends, numIPAppends
+%if IS_PXELINUX
+ extern IPOption
+ alignz 2
+IPAppends dw IPOption
+numIPAppends equ ($-IPAppends)/2
+%else
+IPAppends equ 0
+numIPAppends equ 0
+%endif
+
+ section .text16
+;
+; COMBOOT-loading code
+;
+%include "comboot.inc"
+%include "com32.inc"
+
+;
+; Boot sector loading code
+;
+
;
-; Now we have the config file open. Parse the config file and
-; run the user interface.
+; Abort loading code
;
-%include "ui.inc"
+
+;
+; Hardware cleanup common code
+;
+
+%include "localboot.inc"
; -----------------------------------------------------------------------------
; Common modules