Hello community, here is the log from the commit of package syslinux checked in at Thu Aug 24 18:01:23 CEST 2006. -------- --- arch/i386/syslinux/syslinux.changes 2006-08-15 16:21:46.000000000 +0200 +++ syslinux/syslinux.changes 2006-08-23 17:02:58.000000000 +0200 @@ -1,0 +2,5 @@ +Wed Aug 23 17:02:37 CEST 2006 - snwint@suse.de + +- support latest gfxboot + +------------------------------------------------------------------- New: ---- syslinux-3.11-new.dif ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ syslinux.spec ++++++ --- /var/tmp/diff_new_pack.6XLgYC/_old 2006-08-24 18:01:18.000000000 +0200 +++ /var/tmp/diff_new_pack.6XLgYC/_new 2006-08-24 18:01:18.000000000 +0200 @@ -17,11 +17,12 @@ Autoreqprov: on Summary: Boot Loader for Linux Version: 3.11 -Release: 21 +Release: 23 Source: %{name}-%{version}.tar.bz2 Source1: isolinux-config Patch: %{name}-%{version}.dif Patch1: %{name}-%{version}-align.dif +Patch2: %{name}-%{version}-new.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -40,6 +41,7 @@ %setup -q %patch %patch1 +%patch2 %build export CFLAGS="$RPM_OPT_FLAGS" @@ -63,6 +65,8 @@ %{_datadir}/syslinux %changelog -n syslinux +* Wed Aug 23 2006 - snwint@suse.de +- support latest gfxboot * Tue Aug 15 2006 - cthiel@suse.de - specfile cleanup - include chain.c32, copybs.com, ethersel.c32, mboot.c32, mbr.bin, menu.c32, ++++++ syslinux-3.11-new.dif ++++++ --- gfxboot.inc +++ gfxboot.inc @@ -295,10 +295,6 @@ align 4, db 0 ; the memory area we are working with gfx_mem dd 0 ; linear address -gfx_mem_align dd 0 ; aligned data start -gfx_mem_file dd 0 ; aligned gfx data start -gfx_mem_max dd 0 ; end address -gfx_mem_free dd 0 ; start of free area for malloc (after pcx image) gfx_save_area1 dd 0 ; 64k gfx_save_area1_used db 0 ; != 0 if area1 is in use @@ -330,7 +326,7 @@ menu_desc zb sizeof_menu_desc -; system config data (32 bytes) +; system config data (52 bytes) gfx_sysconfig equ $ gfx_bootloader db 1 ; 0: boot loader type (0: lilo, 1: syslinux, 2: grub) gfx_sector_shift db SECTOR_SHIFT ; 1: sector shift @@ -339,18 +335,24 @@ ; 0: SHIFT pressed ; 1: skip gfxboot ; 2: skip monitor detection -gfx_reserved_1 db 0 ; 4 +gfx_sysconfig_size db gfx_sysconfig_end-gfx_sysconfig ; 4: size of sysconfig data gfx_boot_drive db 0 ; 5: BIOS boot drive -gfx_reserved_2 zb 3 ; 6 -gfx_callback dw gfx_cb ; 9: offset to callback handler -gfx_reserved_3 db 0 ; 11 +gfx_callback dw gfx_cb ; 6: offset to callback handler +gfx_bootloader_seg dw 0 ; 8: code/data segment used by bootloader; must follow gfx_callback +gfx_reserved_1 dw 0 ; 10 gfx_user_info_0 dd 0 ; 12: data for info box gfx_user_info_1 dd 0 ; 16: data for info box -gfx_mem_size dd 0 ; 20: BIOS memory size (in bytes) +gfx_bios_mem_size dd 0 ; 20: BIOS memory size (in bytes) gfx_xmem_0 dw 0 ; 24: extended mem area 0 (start:size in MB; 12:4 bits) gfx_xmem_1 dw 0 ; 26: extended mem area 1 -gfx_reserved_4 dd 0 ; 28 - ; 32 +gfx_xmem_2 dw 0 ; 28: extended mem area 2 +gfx_xmem_3 dw 0 ; 20: extended mem area 3 +gfx_file dd 0 ; 32: start of gfx file +gfx_archive_start dd 0 ; 36: start of cpio archive +gfx_archive_end dd 0 ; 40: end of cpio archive +gfx_mem0_start dd 0 ; 44: low free memory start +gfx_mem0_end dd 0 ; 48: low free memory end +gfx_sysconfig_end equ $ gfx_slash db '/', 0 @@ -385,6 +387,8 @@ mov [gfx_media_type],ah + mov [gfx_bootloader_seg],cs + pop ax ret @@ -414,7 +418,7 @@ ; setup extended memory areas pusha mov eax,[HighMemSize] - mov [gfx_mem_size],eax + mov [gfx_bios_mem_size],eax shr eax,20 cmp ax,16 jb gfx_init_40 ; at least 16MB @@ -441,8 +445,8 @@ ; define our memory area ; gfx_mem _must_ be 16-byte aligned mov dword [gfx_mem],ebx - mov dword [gfx_mem_free],ebx - mov dword [gfx_mem_max],ecx + mov dword [gfx_mem0_start],ebx + mov dword [gfx_mem0_end],ecx call gfx_read_file cmp byte [gfx_ok],0 @@ -451,10 +455,10 @@ call gfx_get_sysconfig ; align 4 - mov eax,[gfx_mem_free] + mov eax,[gfx_mem0_start] add eax,3 and eax,~3 - mov [gfx_mem_free],eax + mov [gfx_mem0_start],eax ; setup jump table les bx,[gfx_bc_jt] @@ -507,13 +511,9 @@ mov [gfx_bc_password_done],ax mov [gfx_bc_password_done+2],es - mov eax,[gfx_mem_file] - mov ebx,[gfx_mem_free] - mov ecx,[gfx_mem_max] - mov edi,[gfx_mem_align] - mov dx,cs - - mov si,gfx_sysconfig + mov esi,cs + shl esi,4 + add esi,gfx_sysconfig call far [gfx_bc_init] jc gfx_init_80 @@ -602,6 +602,7 @@ ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; gfx_setup_menu: + push es cmp byte [gfx_ok],0 jz gfx_setup_menu_90 @@ -731,11 +732,10 @@ add ax,[menu_desc+menu_ent_list] mov [menu_desc+menu_arg_list],ax - mov si,menu_desc + mov esi,ds + shl esi,4 + add esi,menu_desc - push ds - pop es - call far [gfx_bc_menu_init] ; save menu structure, gfxboot uses references into it @@ -748,6 +748,7 @@ mov byte [gfx_save_area1_used],1 gfx_setup_menu_90: + pop es ret @@ -757,9 +758,21 @@ pushad cmp byte [gfx_ok],0 jz gfx_infobox_90 + mov ecx,ds + shl ecx,4 + movzx esi,si + movzx edi,di + or si,si + jz gfx_infobox_20 + add esi,ecx +gfx_infobox_20: + or di,di + jz gfx_infobox_30 + add edi,ecx +gfx_infobox_30: call far [gfx_bc_infobox_init] - xor di,di - xor ax,ax + xor edi,edi + xor eax,eax call far [gfx_bc_input] call far [gfx_bc_infobox_done] gfx_infobox_90: @@ -827,19 +840,25 @@ stc jz gfx_password_90 call far [gfx_bc_password_init] - mov di,gfx_password_buf - mov cx,32 - xor ax,ax + mov edi,ds + shl edi,4 + add edi,gfx_password_buf + mov ecx,32 + xor eax,eax call far [gfx_bc_input] - mov si,gfx_password_buf + mov esi,ds + shl esi,4 + add esi,gfx_password_buf call far [gfx_bc_password_done] jnc gfx_password_90 - mov si,gfx_msg_wrong_password - xor di,di + mov esi,ds + shl esi,4 + add esi,gfx_msg_wrong_password + xor edi,edi mov al,0 call far [gfx_bc_infobox_init] - xor di,di - xor ax,ax + xor edi,edi + xor eax,eax call far [gfx_bc_input] call far [gfx_bc_infobox_done] stc @@ -864,11 +883,12 @@ push dx ; DX:AX = length of file push ax pop edx - mov eax,[gfx_mem_free] + mov [gfx_archive_end],edx + mov eax,[gfx_mem0_start] lea eax,[eax+edx+0fh] ; add space for alignment - cmp eax,[gfx_mem_max] ; max. length + cmp eax,[gfx_mem0_end] ; max. length ja near gfx_read_file_90 - mov [gfx_mem_free],eax + mov [gfx_mem0_start],eax gfx_read_file_10: mov bx,trackbuf @@ -911,8 +931,10 @@ pop eax pop edi sub edi,[gfx_mem] - add edi,[gfx_mem_align] - mov [gfx_mem_file],edi + mov ecx,[gfx_archive_start] + add edi,ecx + mov [gfx_file],edi + add [gfx_archive_end],ecx add eax,edi shr eax,4 mov [gfx_bc_jt+2],ax @@ -943,7 +965,7 @@ ; note: edi must be properly aligned (2)! find_file_20: - mov ecx,[gfx_mem_free] + mov ecx,[gfx_mem0_start] sub ecx,26 + 12 ; min cpio header + gfx header cmp edi,ecx jae find_file_90 @@ -1017,7 +1039,7 @@ xor eax,eax cmp dword [es:bx],0b2d97f00h ; header.magic_id jnz magic_ok_90 - cmp byte [es:bx+4],7 ; header.version + cmp byte [es:bx+4],8 ; header.version jnz magic_ok_90 mov eax,[es:bx+8] magic_ok_90: @@ -1030,13 +1052,13 @@ ; align_it: push dword [gfx_mem] - pop dword [gfx_mem_align] + pop dword [gfx_archive_start] neg al and eax,byte 0fh jz align_it_90 - add [gfx_mem_align],eax + add [gfx_archive_start],eax mov esi,[gfx_mem] - mov ebx,[gfx_mem_free] + mov ebx,[gfx_mem0_start] sub ebx,esi sub ebx,byte 0fh add esi,ebx --- runkernel.inc +++ runkernel.inc @@ -205,7 +205,9 @@ %ifdef WITH_GFX mov eax,[KernelSects] - mov si,KernelCName + mov esi,ds + shl esi,4 + add esi,KernelCName call gfx_progress_init %endif --- ui.inc +++ ui.inc @@ -38,8 +38,10 @@ %ifdef WITH_GFX cmp byte [gfx_ok],0 jz .nogfx - mov di,command_line - mov cx,max_cmd_len + mov edi,ds + shl edi,4 + add edi,command_line + mov ecx,max_cmd_len xor eax,eax xchg eax,[KbdTimeout] ; only the first time call gfx_input ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org