Accepting request 22593 from system:install:head
Copy from system:install:head/syslinux based on submit request 22593 from user snwint OBS-URL: https://build.opensuse.org/request/show/22593 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/syslinux?expand=0&rev=20
This commit is contained in:
parent
b4c7b00d54
commit
2c6dfb9773
@ -252,10 +252,24 @@ index 8bfc8b8..f458fc7 100644
|
||||
call writestr
|
||||
mov si,InitRDCName
|
||||
diff --git a/core/ui.inc b/core/ui.inc
|
||||
index 1b40717..be4f385 100644
|
||||
index 1b40717..9413f16 100644
|
||||
--- a/core/ui.inc
|
||||
+++ b/core/ui.inc
|
||||
@@ -468,6 +468,8 @@ bad_kernel:
|
||||
@@ -402,8 +402,12 @@ vk_check:
|
||||
%if HAS_LOCALBOOT
|
||||
; Is this a "localboot" pseudo-kernel?
|
||||
cmp al,VK_LOCALBOOT ; al == KernelType
|
||||
+ jne .no_local_boot
|
||||
+ mov al,7
|
||||
+ call [comboot_hook]
|
||||
mov ax,[VKernelBuf+vk_rname] ; Possible localboot type
|
||||
- je local_boot
|
||||
+ jmp local_boot
|
||||
+.no_local_boot:
|
||||
%endif
|
||||
jmp get_kernel
|
||||
|
||||
@@ -468,6 +472,8 @@ bad_kernel:
|
||||
.really:
|
||||
mov si,KernelName
|
||||
mov di,KernelCName
|
||||
@ -264,7 +278,7 @@ index 1b40717..be4f385 100644
|
||||
push di
|
||||
call unmangle_name ; Get human form
|
||||
mov si,err_notfound ; Complain about missing kernel
|
||||
@@ -510,7 +512,10 @@ on_error:
|
||||
@@ -510,7 +516,10 @@ on_error:
|
||||
;
|
||||
; kernel_corrupt: Called if the kernel file does not seem healthy
|
||||
;
|
||||
@ -351,10 +365,10 @@ index f458fc7..f6ed644 100644
|
||||
+ section .data
|
||||
+QuietBoot db 0 ; Set if a quiet boot is requested
|
||||
diff --git a/core/ui.inc b/core/ui.inc
|
||||
index be4f385..2bc56a1 100644
|
||||
index 9413f16..353d59a 100644
|
||||
--- a/core/ui.inc
|
||||
+++ b/core/ui.inc
|
||||
@@ -596,7 +596,7 @@ kernel_good:
|
||||
@@ -600,7 +600,7 @@ kernel_good:
|
||||
;
|
||||
xor ax,ax
|
||||
mov [InitRDPtr],ax
|
||||
@ -406,7 +420,7 @@ index f6ed644..286c9c8 100644
|
||||
+ alignz 4
|
||||
+KernelStart dd 100000h
|
||||
diff --git a/core/comboot.inc b/core/comboot.inc
|
||||
index 1a1dbfe..1a147c9 100644
|
||||
index 1a1dbfe..1923308 100644
|
||||
--- a/core/comboot.inc
|
||||
+++ b/core/comboot.inc
|
||||
@@ -962,6 +962,45 @@ comapi_shufraw:
|
||||
@ -455,7 +469,7 @@ index 1a1dbfe..1a147c9 100644
|
||||
section .data
|
||||
|
||||
%macro int21 2
|
||||
@@ -969,6 +1008,108 @@ comapi_shufraw:
|
||||
@@ -969,6 +1008,109 @@ comapi_shufraw:
|
||||
dw %2
|
||||
%endmacro
|
||||
|
||||
@ -529,6 +543,7 @@ index 1a1dbfe..1a147c9 100644
|
||||
+; 4: progress start
|
||||
+; 5: progress increment
|
||||
+; 6: progress end: kernel loaded, stop gfxboot
|
||||
+; 7: stop gfxboot
|
||||
+;
|
||||
+comboot_hook_entry:
|
||||
+ pushad
|
||||
@ -564,7 +579,7 @@ index 1a1dbfe..1a147c9 100644
|
||||
int21_table:
|
||||
int21 00h, comboot_return
|
||||
int21 01h, comboot_getkey
|
||||
@@ -1021,8 +1162,16 @@ int22_table:
|
||||
@@ -1021,8 +1163,16 @@ int22_table:
|
||||
dw comapi_closedir ; 0022 close directory
|
||||
dw comapi_shufsize ; 0023 query shuffler size
|
||||
dw comapi_shufraw ; 0024 cleanup, shuffle and boot raw
|
||||
@ -581,7 +596,7 @@ index 1a1dbfe..1a147c9 100644
|
||||
APIKeyWait db 0
|
||||
APIKeyFlag db 0
|
||||
|
||||
@@ -1041,8 +1190,10 @@ feature_flags_len equ ($-feature_flags)
|
||||
@@ -1041,8 +1191,10 @@ feature_flags_len equ ($-feature_flags)
|
||||
err_notdos db ': attempted DOS system call INT ',0
|
||||
err_comlarge db 'COMBOOT image too large.', CR, LF, 0
|
||||
|
||||
@ -594,7 +609,7 @@ index 1a1dbfe..1a147c9 100644
|
||||
ConfigName resb FILENAME_MAX
|
||||
CurrentDirName resb FILENAME_MAX
|
||||
diff --git a/core/comboot.inc b/core/comboot.inc
|
||||
index 1a147c9..e5dc115 100644
|
||||
index 1923308..f39bfb1 100644
|
||||
--- a/core/comboot.inc
|
||||
+++ b/core/comboot.inc
|
||||
@@ -1043,12 +1043,14 @@ comapi_run2:
|
||||
@ -612,7 +627,7 @@ index 1a147c9..e5dc115 100644
|
||||
clc
|
||||
ret
|
||||
|
||||
@@ -1171,6 +1173,7 @@ int22_count equ ($-int22_table)/2
|
||||
@@ -1172,6 +1174,7 @@ int22_count equ ($-int22_table)/2
|
||||
comboot_sp_save dw 0
|
||||
comboot_hook dw comboot_hook_nop
|
||||
comboot_far dd 0
|
||||
@ -621,7 +636,7 @@ index 1a147c9..e5dc115 100644
|
||||
APIKeyWait db 0
|
||||
APIKeyFlag db 0
|
||||
diff --git a/core/ui.inc b/core/ui.inc
|
||||
index 2bc56a1..59b5724 100644
|
||||
index 353d59a..e37f2a7 100644
|
||||
--- a/core/ui.inc
|
||||
+++ b/core/ui.inc
|
||||
@@ -379,9 +379,13 @@ vk_check:
|
||||
@ -639,10 +654,10 @@ index 2bc56a1..59b5724 100644
|
||||
pop es
|
||||
mov di,KernelName
|
||||
diff --git a/core/comboot.inc b/core/comboot.inc
|
||||
index e5dc115..60506ce 100644
|
||||
index f39bfb1..0874526 100644
|
||||
--- a/core/comboot.inc
|
||||
+++ b/core/comboot.inc
|
||||
@@ -1087,6 +1087,7 @@ comboot_hook_entry:
|
||||
@@ -1088,6 +1088,7 @@ comboot_hook_entry:
|
||||
push fs
|
||||
push es
|
||||
push ds
|
||||
@ -651,10 +666,10 @@ index e5dc115..60506ce 100644
|
||||
pop ds
|
||||
pop es
|
||||
diff --git a/core/ui.inc b/core/ui.inc
|
||||
index 59b5724..d56c148 100644
|
||||
index e37f2a7..6137dc9 100644
|
||||
--- a/core/ui.inc
|
||||
+++ b/core/ui.inc
|
||||
@@ -612,7 +612,11 @@ kernel_good:
|
||||
@@ -616,7 +616,11 @@ kernel_good:
|
||||
mov [KernelCNameLen],di
|
||||
|
||||
; Default memory limit, can be overridden by image loaders
|
||||
@ -666,7 +681,7 @@ index 59b5724..d56c148 100644
|
||||
mov [MyHighMemSize],eax
|
||||
|
||||
popad
|
||||
@@ -633,6 +637,7 @@ kernel_good:
|
||||
@@ -637,6 +641,7 @@ kernel_good:
|
||||
; At this point, EAX contains the size of the kernel, SI contains
|
||||
; the file handle/cluster pointer, and ECX contains the extension (if any.)
|
||||
;
|
||||
@ -773,10 +788,10 @@ index 0000000..a98f9aa
|
||||
+}
|
||||
diff --git a/modules/gfxboot.c b/modules/gfxboot.c
|
||||
new file mode 100644
|
||||
index 0000000..b4a794c
|
||||
index 0000000..01c6c84
|
||||
--- /dev/null
|
||||
+++ b/modules/gfxboot.c
|
||||
@@ -0,0 +1,1036 @@
|
||||
@@ -0,0 +1,1039 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * gfxboot.c
|
||||
@ -1683,7 +1698,7 @@ index 0000000..b4a794c
|
||||
+
|
||||
+ r.edi = comboot + (uint32_t) cmdline;
|
||||
+ r.ecx = sizeof cmdline;
|
||||
+ r.eax = timeout;
|
||||
+ r.eax = timeout * 182 / 100;
|
||||
+ timeout = 0; // use timeout only first time
|
||||
+ farcall(gfx.jmp_table[GFX_BC_INPUT], &r);
|
||||
+ if((r.eflags & X86_CF)) r.eax = 1;
|
||||
@ -1780,7 +1795,6 @@ index 0000000..b4a794c
|
||||
+
|
||||
+ case 4: // progress start
|
||||
+ r->eax = r->ecx >> gfx_config.sector_shift; // kernel size in sectors
|
||||
+ r->eax = 0;
|
||||
+ r->esi = comboot + (uint32_t) current_label;
|
||||
+ farcall(gfx.jmp_table[GFX_BC_PROGRESS_INIT], r);
|
||||
+ break;
|
||||
@ -1795,6 +1809,10 @@ index 0000000..b4a794c
|
||||
+ farcall(gfx.jmp_table[GFX_BC_PROGRESS_DONE], r);
|
||||
+ gfx_done();
|
||||
+ break;
|
||||
+
|
||||
+ case 7: // stop gfxboot
|
||||
+ gfx_done();
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
|
@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 19 16:45:35 CEST 2009 - snwint@suse.de
|
||||
|
||||
- get kernel size right
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 19 13:32:29 CEST 2009 - snwint@suse.de
|
||||
|
||||
- set correct timeout value
|
||||
- localboot should return to text mode
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 5 13:44:54 CEST 2009 - snwint@suse.de
|
||||
|
||||
|
@ -27,7 +27,7 @@ Requires: mtools
|
||||
AutoReqProv: on
|
||||
Summary: Boot Loader for Linux
|
||||
Version: 3.82
|
||||
Release: 7
|
||||
Release: 8
|
||||
Source: %{name}-%{version}.tar.bz2
|
||||
Source1: isolinux-config
|
||||
Source2: README.gfxboot
|
||||
|
Loading…
Reference in New Issue
Block a user