platform/upstream/syslinux.git
14 years agocore:PXELINUX: fix the OACK option parsing bug.
Liu Aleaxander [Sat, 8 Aug 2009 08:05:08 +0000 (16:05 +0800)]
core:PXELINUX: fix the OACK option parsing bug.

the current code can just handle one option beacuse I put the do-while loop in the wrong position.

14 years agoCore: get the rid of the ld warnings
Liu Aleaxander [Sat, 8 Aug 2009 07:51:34 +0000 (15:51 +0800)]
Core: get the rid of the ld warnings

we extern the SecPerClust from diskstart.inc and used in fat.c, but we also defined another
SecPerClust in ext2.c. So we should be better to make more things in _static_, just like hpa told.

14 years agoextlinux: add ext4 support to the installer syslinux-4.00-pre1
H. Peter Anvin [Fri, 7 Aug 2009 07:11:21 +0000 (00:11 -0700)]
extlinux: add ext4 support to the installer

The filesystem code now supports ext4, so support it in the installer
as well.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMakefile: add back the gpxe directory
H. Peter Anvin [Fri, 7 Aug 2009 07:07:02 +0000 (00:07 -0700)]
Makefile: add back the gpxe directory

Add the gpxe directory back into the build.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoMerge branch 'core32' into fsc
H. Peter Anvin [Fri, 7 Aug 2009 07:05:28 +0000 (00:05 -0700)]
Merge branch 'core32' into fsc

Resolved Conflicts:
core/extlinux.asm
core/pxelinux.asm

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoCore:PXELINUX: pxelinux derivative merged succeesfully
Liu Aleaxander [Thu, 6 Aug 2009 09:27:02 +0000 (17:27 +0800)]
Core:PXELINUX: pxelinux derivative merged succeesfully

So, now we have all the fs converted, and the rest is to make it better and more simple

14 years agoCore:PXELINUX: try to merge pxelinux
Liu Aleaxander [Thu, 6 Aug 2009 07:17:48 +0000 (15:17 +0800)]
Core:PXELINUX: try to merge pxelinux

the others Syslinux derivative disabled for now

15 years agoCore: some bugs fixed
Liu Aleaxander [Mon, 20 Jul 2009 00:46:16 +0000 (08:46 +0800)]
Core: some bugs fixed

15 years agoextlinux: handle more than one sector of sector pointers
H. Peter Anvin [Thu, 16 Jul 2009 16:11:14 +0000 (12:11 -0400)]
extlinux: handle more than one sector of sector pointers

Fix the extlinux installer so we can handle more than one sector of
sector pointers.  This code should be merged with the equivalent code
in the syslinux installer.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore: do trick on the hybrid mode detection
Liu Aleaxander [Mon, 13 Jul 2009 08:08:12 +0000 (16:08 +0800)]
Core: do trick on the hybrid mode detection

15 years agoCore: fix the hybride mode detection code
Liu Aleaxander [Mon, 13 Jul 2009 07:56:51 +0000 (15:56 +0800)]
Core: fix the hybride mode detection code

15 years agoCore: code clean
Liu Aleaxander [Mon, 13 Jul 2009 06:47:02 +0000 (14:47 +0800)]
Core: code clean

cleans the unused variables\18

15 years agoCore: fix the HD-mode error in isolinux
Liu Aleaxander [Mon, 13 Jul 2009 06:34:52 +0000 (14:34 +0800)]
Core: fix the HD-mode error in isolinux

error fixed. Just as what hpa told, deal with that might simply be to consider a 2K CD sector a
"block" rather than a "sector". so, in cdrom mode, we have 2K blocksize and 2k sector size, while
in hybrid mode we have 2k blocksize and 512 bytes sector size.

15 years agodos: add pointer to PE header in binary
H. Peter Anvin [Fri, 10 Jul 2009 23:40:20 +0000 (16:40 -0700)]
dos: add pointer to PE header in binary

Explicitly add the pointer to the PE header in the binary.  That way
we might be eventually able to create a merged DOS/Win32 binary.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore: changes the sector_t and block_t types to be uint64_t
Liu Aleaxander [Fri, 10 Jul 2009 21:46:47 +0000 (05:46 +0800)]
Core: changes the sector_t and block_t types to be uint64_t

15 years agocom32: add openmem.o to the Makefile
H. Peter Anvin [Thu, 9 Jul 2009 19:15:21 +0000 (12:15 -0700)]
com32: add openmem.o to the Makefile

We need openmem.o in the Makefile if it's actually supposed to get
built...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd openmem() function to read from memory as if it were a file
H. Peter Anvin [Thu, 9 Jul 2009 18:56:17 +0000 (11:56 -0700)]
Add openmem() function to read from memory as if it were a file

Reading from memory as if it were a file is pretty easy... we just
treat it as a really big block buffer and tell the file layer that we
already closed the underlying handle.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: include exported symbol information
H. Peter Anvin [Thu, 9 Jul 2009 17:48:57 +0000 (10:48 -0700)]
core: include exported symbol information

Extract symbol table information to be exported to modules.  This is a
really hacky way of doing it, so replace it later.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agosyslinux.ld: add support for .ctors and .dtors
H. Peter Anvin [Wed, 8 Jul 2009 23:29:35 +0000 (16:29 -0700)]
syslinux.ld: add support for .ctors and .dtors

We're going to need at least constructors when we start linking in
com32 library code in a serious way.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: give 64K to the PM stack
H. Peter Anvin [Wed, 8 Jul 2009 00:02:44 +0000 (17:02 -0700)]
core: give 64K to the PM stack

Give a full aligned 64K chunk for the PM stack.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore: code clean: cuts the unnecessary data type conversion in disk read-write function
Liu Aleaxander [Tue, 7 Jul 2009 16:59:03 +0000 (00:59 +0800)]
Core: code clean: cuts the unnecessary data type conversion in disk read-write function

It's unnecessary to do that conversion.

15 years agoCore: code clean: breakup the fs->fs_dev->disk stuff
Liu Aleaxander [Tue, 7 Jul 2009 16:44:45 +0000 (00:44 +0800)]
Core: code clean: breakup the fs->fs_dev->disk stuff

Add a new disk structure pointer disk to point to fs->fs_dev_disk to break the
long code.

15 years agoMerge branch 'master' into core32
H. Peter Anvin [Mon, 6 Jul 2009 00:14:54 +0000 (17:14 -0700)]
Merge branch 'master' into core32

15 years agodosutil/Makefile: more complete structure
H. Peter Anvin [Sun, 5 Jul 2009 21:15:12 +0000 (14:15 -0700)]
dosutil/Makefile: more complete structure

More complete and consistent structure for dosutil/Makefile.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodosutil/Makefile: more complete structure
H. Peter Anvin [Sun, 5 Jul 2009 21:15:12 +0000 (14:15 -0700)]
dosutil/Makefile: more complete structure

More complete and consistent structure for dosutil/Makefile.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge branch 'master' into core32
H. Peter Anvin [Sun, 5 Jul 2009 08:05:48 +0000 (01:05 -0700)]
Merge branch 'master' into core32

15 years agodosutil: update mdiskchk, add Makefile
H. Peter Anvin [Sun, 5 Jul 2009 08:04:50 +0000 (01:04 -0700)]
dosutil: update mdiskchk, add Makefile

Update mdiskchk and add a Makefile.  Note that since this needs
OpenWatcom to compile, we still check in the binary file (which is
quite small, anyway.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore/rllpack.c: fix some particular bad formatting
H. Peter Anvin [Wed, 1 Jul 2009 21:24:23 +0000 (14:24 -0700)]
core/rllpack.c: fix some particular bad formatting

indent doesn't always do the right thing...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge branch 'master' into core32
H. Peter Anvin [Sat, 27 Jun 2009 00:45:51 +0000 (17:45 -0700)]
Merge branch 'master' into core32

15 years agoCreate a dosutil subdirectory and move mdiskchk there
H. Peter Anvin [Sat, 27 Jun 2009 00:44:22 +0000 (17:44 -0700)]
Create a dosutil subdirectory and move mdiskchk there

DOS utilities aren't really "samples".  Create a dedicated "dosutil"
directory, and move mdiskchk there for now.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agodos: assume NASM 2.03, so use -MP -MD for dependencies
H. Peter Anvin [Wed, 24 Jun 2009 23:39:08 +0000 (16:39 -0700)]
dos: assume NASM 2.03, so use -MP -MD for dependencies

Assume NASM 2.03 or later, so use -MP -MD to generate dependencies.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: assume NASM 2.03 or later, so we can use -MD for deps
H. Peter Anvin [Wed, 24 Jun 2009 23:36:50 +0000 (16:36 -0700)]
core: assume NASM 2.03 or later, so we can use -MD for deps

Let's require NASM 2.03 or later, so we can use the -MD and -MP
options to generate dependencies.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMCONFIG: we need NASM 2 these days, use -Ox
H. Peter Anvin [Wed, 24 Jun 2009 23:26:59 +0000 (16:26 -0700)]
MCONFIG: we need NASM 2 these days, use -Ox

We need NASM 2 anyway for this branch, so we might as well use the -Ox
option.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMCONFIG: build GCCOPT one step at a time, don't align stack
H. Peter Anvin [Wed, 24 Jun 2009 22:55:43 +0000 (15:55 -0700)]
MCONFIG: build GCCOPT one step at a time, don't align stack

Some gcc options are only valid together with other gcc options, so
build GCCOPT one bit at a time, and change gcc_ok to take already
existing GCCOPT flags into account.

This lets us build with -mpreferred-stack-boundary=2, which is only
valid on 32 bits and therefore with -m32.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agocore: generate DWARF debugging info from NASM
H. Peter Anvin [Wed, 24 Jun 2009 21:29:00 +0000 (14:29 -0700)]
core: generate DWARF debugging info from NASM

NASM 2.03 or higher can generate DWARF debugging info, which is also
what gcc produces.  Mixing debugging info seems to cause a lot of
problems.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore: fixs the chunk>>=1 problem
Liu Aleaxander [Tue, 23 Jun 2009 22:44:11 +0000 (06:44 +0800)]
Core: fixs the chunk>>=1 problem

well, it seems ugly, but it can do the right work(I think). here is the new way:
    chunk = chunk == 1 ? 0 : ((chunk+1) >> 1);
if we are reading ONE sector, and after six retries, we can mark it as _failed_.
So just make it be ZERO.

15 years agoCore: code clean
Liu Aleaxander [Tue, 23 Jun 2009 22:31:39 +0000 (06:31 +0800)]
Core: code clean

removes the unused variables and unused functions

15 years agoCore:ISOLINUX: fixs the bug to make the isolinux do the work
Liu Aleaxander [Tue, 23 Jun 2009 22:08:52 +0000 (06:08 +0800)]
Core:ISOLINUX: fixs the bug to make the isolinux do the work

15 years agoMerge branch 'isolinux'
Liu Aleaxander [Tue, 23 Jun 2009 09:59:06 +0000 (17:59 +0800)]
Merge branch 'isolinux'

Conflicts:

core/Makefile
core/diskstart.inc
core/fs.c

15 years agoCore: merge ldlinux
Liu Aleaxander [Tue, 23 Jun 2009 09:28:02 +0000 (17:28 +0800)]
Core: merge ldlinux

15 years agoMerge branch 'ldlinux'
Liu Aleaxander [Tue, 23 Jun 2009 09:17:20 +0000 (17:17 +0800)]
Merge branch 'ldlinux'

Conflicts:

core/fs.c

15 years agoCore:LDLINUX: removes the ugly code
Liu Aleaxander [Tue, 23 Jun 2009 08:20:43 +0000 (16:20 +0800)]
Core:LDLINUX: removes the ugly code

Make the ConfigName to store the config file path, well it's enough because the
longest config file path lenght is just 28.

15 years agoCore:EXTLINUX: add more debug stuff
Liu Aleaxander [Tue, 23 Jun 2009 04:45:55 +0000 (12:45 +0800)]
Core:EXTLINUX: add more debug stuff

15 years agoremoves the %if IS_ISOLINUX stuff in the layout.inc
Liu Aleaxander [Mon, 22 Jun 2009 21:17:15 +0000 (05:17 +0800)]
removes the %if IS_ISOLINUX stuff in the layout.inc

removes the %if IS_ISOLINUX stuff in the layout.inc to make the fs.c can find
the core_cache_buf symbol from ISOLINUX.

15 years agoCore:ISOLINUX: make the isolinux do the work
Liu Aleaxander [Mon, 22 Jun 2009 07:11:43 +0000 (15:11 +0800)]
Core:ISOLINUX: make the isolinux do the work

15 years agoCore:ISOLINUX: convert the isolinux.asm to C
Liu Aleaxander [Sun, 21 Jun 2009 06:59:46 +0000 (14:59 +0800)]
Core:ISOLINUX: convert the isolinux.asm to C

15 years agoCore:EXTLINUX: applies the path from hpa to EXTLINUX
Liu Aleaxander [Sat, 20 Jun 2009 07:34:12 +0000 (15:34 +0800)]
Core:EXTLINUX: applies the path from hpa to EXTLINUX

I just added it to EXTLINUX first, and I will consider if I should added it
SYLSINUX and ISOLINUX and so on tomorrow (I'm not sure for now).

And I added a new structure disk to store the disk specific information, so
some changes happened on the vfs-like interface. Hope you will like it, hap;)

the new code broken on the non-standard disk geometry, like the exttest package
given by hpa.

15 years agoextlinux: remove duplicate "const char *program;"
Gilles Espinasse [Sat, 20 Jun 2009 00:21:19 +0000 (17:21 -0700)]
extlinux: remove duplicate "const char *program;"

Remove redundant declaration.

15 years agocore: new diskio library
Liu Aleaxander [Mon, 15 Jun 2009 23:42:07 +0000 (07:42 +0800)]
core: new diskio library

Beginnings of a diskio library capable of reading and writing, and
with proper handling of bounce buffers and segment boundaries.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoAdd .gitignore files for generated files
H. Peter Anvin [Mon, 15 Jun 2009 21:39:20 +0000 (14:39 -0700)]
Add .gitignore files for generated files

Create new .gitignore files and add generated files to them.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore:SYSLINUX: applies the sector_t data types
Liu Aleaxander [Mon, 15 Jun 2009 07:19:01 +0000 (15:19 +0800)]
Core:SYSLINUX: applies the sector_t data types

Applies the sector_t data types and makes come code clean

15 years agoCore:SYSLINUX: code clean
Liu Aleaxander [Mon, 15 Jun 2009 06:54:17 +0000 (14:54 +0800)]
Core:SYSLINUX: code clean

removes the unused variables in ldlinux.asm

15 years agoCore:EXTLINUX: removes the open_file_t structure
Liu Aleaxander [Mon, 15 Jun 2009 06:18:40 +0000 (14:18 +0800)]
Core:EXTLINUX: removes the open_file_t structure

15 years agoCore:EXTLINUX: clean the code
Liu Aleaxander [Mon, 15 Jun 2009 05:32:44 +0000 (13:32 +0800)]
Core:EXTLINUX: clean the code

remove some unused variables in extlinux.asm and remove some extern statement in
ext2.c

15 years agoCore:SYSLINUX: rm the __lowemem stuff
Liu Aleaxander [Mon, 15 Jun 2009 04:25:07 +0000 (12:25 +0800)]
Core:SYSLINUX: rm the __lowemem stuff

15 years agoMerge branch 'master' into core32
H. Peter Anvin [Sun, 14 Jun 2009 23:21:33 +0000 (16:21 -0700)]
Merge branch 'master' into core32

Resolved Conflicts:
version

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge branch 'syslinux-3.8x'
H. Peter Anvin [Sun, 14 Jun 2009 23:21:10 +0000 (16:21 -0700)]
Merge branch 'syslinux-3.8x'

15 years agoNEWS: document chainloading fix
H. Peter Anvin [Sun, 14 Jun 2009 23:03:54 +0000 (16:03 -0700)]
NEWS: document chainloading fix

15 years agoPXELINUX: when chaining an NBP, restore *all* registers
H. Peter Anvin [Sun, 14 Jun 2009 23:01:30 +0000 (16:01 -0700)]
PXELINUX: when chaining an NBP, restore *all* registers

On at least ASUS A8N-E, unless *all* registers are restored to pre-PXE
status, localboot doesn't work.  We were clobbering DS, ESI and EDX
when chainloading an NBP, which meant that localboot wouldn't work in
the chainloaded NBP.  Fix this.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agobootsect: zero memory above a chainloaded boot sector/NBP
H. Peter Anvin [Sun, 14 Jun 2009 21:32:42 +0000 (14:32 -0700)]
bootsect: zero memory above a chainloaded boot sector/NBP

Windows RIS has been reported to make inappropriate use of data found
in uninitialized memory.  To avoid that, clear memory between
a chainloaded boot sector or NBP and Free Base Memory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore:SYSLINUX: ldlinux.asm converted to C
Liu Aleaxander [Sun, 14 Jun 2009 06:22:33 +0000 (14:22 +0800)]
Core:SYSLINUX: ldlinux.asm converted to C

Well, something goes ugly but it works. And I still need spend some more time
to make the code much better.

15 years agoCore:EXTLINUX: move the header file in core into core/include
Liu Aleaxander [Fri, 12 Jun 2009 21:56:55 +0000 (05:56 +0800)]
Core:EXTLINUX: move the header file in core into core/include

15 years agoCore: fix the not found error when type the kernel name without the extent.
Liu Aleaxander [Fri, 12 Jun 2009 07:45:52 +0000 (15:45 +0800)]
Core: fix the not found error when type the kernel name without the extent.

it will not clear the zf flag when not found the right file, so it will give the
next file search(searching for a different filename extentsion the wrong answer,
so we need do it after every file searching.

well, in fact we should use EAX(the file lenght in bytes) or si(the open_file_t
structure pointer) to indicate if we have successfully found the file or not.

15 years agoCore: fix the menu display error
Liu Aleaxander [Thu, 11 Jun 2009 22:51:10 +0000 (06:51 +0800)]
Core: fix the menu display error

Well, it's a 'bug' that can be fixed easily fixed, that's just disable the
debug output. vesamenu.c32 will be messed up with the outputs.

15 years agoCore: make vfs do the work
Liu Aleaxander [Thu, 11 Jun 2009 07:54:43 +0000 (15:54 +0800)]
Core: make vfs do the work

it works, but it broke somewhere; it can't display the menu correctly.

15 years agoCore: add the skeleton fo VFS-like system
Liu Aleaxander [Thu, 11 Jun 2009 02:47:04 +0000 (10:47 +0800)]
Core: add the skeleton fo VFS-like system

Two new files added; they are:
 fs.h defines some basic vfs objects
 fs.c defines the basic functions

Note: for now, it's just a skeleton, in another word, it can't compiled.

15 years agoMerge branch 'master' into core32
H. Peter Anvin [Wed, 10 Jun 2009 05:54:51 +0000 (22:54 -0700)]
Merge branch 'master' into core32

15 years agocom32.h: cleanups, make OFFS_VALID() take the pointer size into account
H. Peter Anvin [Wed, 10 Jun 2009 05:50:55 +0000 (22:50 -0700)]
com32.h: cleanups, make OFFS_VALID() take the pointer size into account

Clean up some of the constructs in com32.h, and make OFFS_VALID() take
the pointer type into account for the range check -- the whole object
needs to fit within the segment.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore:EXTLINUX: clean the WARNINGs
Liu Aleaxander [Tue, 9 Jun 2009 22:05:04 +0000 (06:05 +0800)]
Core:EXTLINUX: clean the WARNINGs

15 years agomemdisk: don't use the stack before bootstrap
H. Peter Anvin [Tue, 9 Jun 2009 18:34:00 +0000 (11:34 -0700)]
memdisk: don't use the stack before bootstrap

Under some certain circumstances, it might not be safe to use the
stack as it was set up, so use a jump instead of a call to invoke the
bootstrap.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge branch 'master' into core32
H. Peter Anvin [Tue, 9 Jun 2009 17:49:50 +0000 (10:49 -0700)]
Merge branch 'master' into core32

15 years agoMerge commit 'syslinux-3.82'
H. Peter Anvin [Tue, 9 Jun 2009 17:49:31 +0000 (10:49 -0700)]
Merge commit 'syslinux-3.82'

Conflicts:
com32/menu/menumain.c

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopxelinux: actually stop parsing on a null option syslinux-3.82
H. Peter Anvin [Tue, 9 Jun 2009 17:19:25 +0000 (10:19 -0700)]
pxelinux: actually stop parsing on a null option

Stop the OACK parsing on a null option, even if it isn't the very
first option.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopxelinux: revert to using TFTP error 8
H. Peter Anvin [Tue, 9 Jun 2009 15:51:45 +0000 (08:51 -0700)]
pxelinux: revert to using TFTP error 8

The main reason for ERROR is OACK parsing failure, so revert to using
error code 8 (but a fixed text error.)

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agopxelinux: cleaner test for OACK trailing null bytes
H. Peter Anvin [Tue, 9 Jun 2009 14:29:13 +0000 (07:29 -0700)]
pxelinux: cleaner test for OACK trailing null bytes

Instead of looking for a string of null bytes at the end of the OACK
string, simply abort parsing if we run into a null byte where an
option is expected; either we are seeing junk at the end of the
packet, or we are hopelessly confused about how to make sense of the
rest of the packet -- in either case, ignoring is the "liberal"
option.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoPXELINUX: handle OACK packets with extra NULs, cleaner TFTP error syslinux-3.82-pre5
H. Peter Anvin [Tue, 9 Jun 2009 05:19:41 +0000 (22:19 -0700)]
PXELINUX: handle OACK packets with extra NULs, cleaner TFTP error

There are apparently TFTP servers in the field which will send OACK
packets with extra NUL bytes appended at the end.  If we find an OACK
packet where the only thing left at some point during processing is
NULs, then just consider the packet processed.

We have reported all TFTP protocol errors as "tsize required", which
is definitely not true anymore.  Change error code to 0 (undefined)
and the error string to "TFTP error".  When this code gets converted
to C we'll do better.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore:EXTLINUX: fix bug with lots of dots and searchdir
Liu Aleaxander [Tue, 9 Jun 2009 01:25:42 +0000 (09:25 +0800)]
Core:EXTLINUX: fix bug with lots of dots and searchdir

The bug hpa said in the email that prints lots of dots when loading a kernel fixed.
And with my test, I found that the searchdir couldn't return correctly while not find
what we wanna find.(In asm, the asm code use ZF flag to test if we successed. And I
thought regs->esi.w[0] = file(be zero on fail) will set ZF flag). Well, It's a good
thing that I found the reg structure has the eflags filed. then it works; nice thing!

15 years agomemdisk: additional cleanups
H. Peter Anvin [Mon, 8 Jun 2009 03:59:52 +0000 (20:59 -0700)]
memdisk: additional cleanups

Additional stylistic cleanups.  Rename "syscall" to "intcall" (we
can't call it __intcall without clashing with com32.h); use macros
instead of copying variables to different places with only the type
being different.

Also, only change the rm/pm jump instructions when actually relocating
the code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: add missing memmove.S
H. Peter Anvin [Mon, 8 Jun 2009 01:47:35 +0000 (18:47 -0700)]
memdisk: add missing memmove.S

We need memmove.S in the memdisk directory...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: minor cleanups
H. Peter Anvin [Mon, 8 Jun 2009 01:46:59 +0000 (18:46 -0700)]
memdisk: minor cleanups

Minor cleanups to the source base; make die() also print an error
message and move die() into conio.c.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: relocate real-mode code before booting
H. Peter Anvin [Mon, 8 Jun 2009 01:25:09 +0000 (18:25 -0700)]
memdisk: relocate real-mode code before booting

Relocate the real-mode code before booting.  This allows the target
bootstrap to be loaded at an arbitrary address, not necessarily
0x7c00, and to be almost arbitrarily long.

Add some initial infrastructure for other bootstrap addresses, too.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: move rm_args initialization to C code; export rm_size
H. Peter Anvin [Mon, 8 Jun 2009 00:13:58 +0000 (17:13 -0700)]
memdisk: move rm_args initialization to C code; export rm_size

Move the rm_args initialization (and the associated sti) to C code.
Export the total size of the real-mode code to the protected-mode
code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: set up a limited-size real-mode stack
H. Peter Anvin [Mon, 8 Jun 2009 00:06:59 +0000 (17:06 -0700)]
memdisk: set up a limited-size real-mode stack

Limit the size of the real-mode stack.  This should limit the amount
of memory needed for a relocated real-mode code.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: remove hard-coded assumptions for a specific RM segment
H. Peter Anvin [Mon, 8 Jun 2009 00:04:03 +0000 (17:04 -0700)]
memdisk: remove hard-coded assumptions for a specific RM segment

Remove some hard-coded assumptions about having an RM segment at a
specific location.  This should allow us to relocate the RM code once
the PM code knows where DOS free memory ends.  This in turn allows the
PM code to load the boot sector almost anywhere it wants to go in low
memory, as is required for 100% compliant El Torito support.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: remove the requirement that CS_BASE < 64K
H. Peter Anvin [Sun, 7 Jun 2009 22:16:24 +0000 (15:16 -0700)]
memdisk: remove the requirement that CS_BASE < 64K

Remove the requirement that CS_BASE is below 64K, based on its use in
the A20 test code.  This means it can now be located anywhere in high
memory, but it is still a constant.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: move the heap to high memory
H. Peter Anvin [Sun, 7 Jun 2009 22:12:39 +0000 (15:12 -0700)]
memdisk: move the heap to high memory

Instead of using a heap arbitrarily allocated in low memory, move it
to a chunk of bss in high memory.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: don't hard-code 0:7C00 as the entry point
H. Peter Anvin [Sun, 7 Jun 2009 21:44:30 +0000 (14:44 -0700)]
memdisk: don't hard-code 0:7C00 as the entry point

Make it possible for the setup code to override SS:SP and CS:IP.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agomemdisk: pass in the address of the real-mode code
H. Peter Anvin [Sun, 7 Jun 2009 21:36:07 +0000 (14:36 -0700)]
memdisk: pass in the address of the real-mode code

Pass in the address of the real-mode code instead of hard-coding it in
two separate places.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore:EXTLINUX: clean the code
Liu Aleaxander [Sat, 6 Jun 2009 23:43:32 +0000 (07:43 +0800)]
Core:EXTLINUX: clean the code

15 years agoCore:EXTLINUX: convert mangle name to C
Liu Aleaxander [Sat, 6 Jun 2009 22:44:06 +0000 (06:44 +0800)]
Core:EXTLINUX: convert mangle name to C

15 years agoCore: move close_file function in getc.inc
Liu Aleaxander [Fri, 5 Jun 2009 22:04:16 +0000 (06:04 +0800)]
Core: move close_file function in getc.inc

because (I think) all the close_file are the same.

15 years agoCore:EXTLINUX: convert the getfssec function to C
Liu Aleaxander [Fri, 5 Jun 2009 21:54:00 +0000 (05:54 +0800)]
Core:EXTLINUX: convert the getfssec function to C

the main file read function (getfssec) has been converted to
C. Fow now, abort 90% stuff have been converted to C. The
next is to clean the code and convert the rest.

15 years agoCore: Convert the searchdir function to C
Liu Aleaxander [Fri, 5 Jun 2009 01:29:13 +0000 (09:29 +0800)]
Core: Convert the searchdir function to C

for now, almost all the stuff related to EXT have been converted to C,
and fow my (limit) test, it works well.

The getfssec function haven't converted to C, because it also be called
from asm file, and I find it's a bit hard to convert it to C. But however,
it's my next plan.

15 years agocore: prevent buggy INT 13h from leaving IF=0 syslinux-3.82-pre4
H. Peter Anvin [Fri, 5 Jun 2009 00:24:58 +0000 (17:24 -0700)]
core: prevent buggy INT 13h from leaving IF=0

If it can happen for CD-ROM BIOSes, it can probably happen elsewhere,
too; make sure we don't leave interrupts disabled after broken INT 13h
calls.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore: Convert linsector and open_inode function to C
Liu Aleaxander [Thu, 4 Jun 2009 23:29:20 +0000 (07:29 +0800)]
Core: Convert linsector and open_inode function to C

The two functions are converted to C.
And for another thing, I find that I haven't included the load_config.c file before(my fault),
so added it here.

15 years agosimple menu: make ONTIMEOUT work with MENU HIDDEN
Sergey Vlasov [Thu, 4 Jun 2009 15:14:48 +0000 (19:14 +0400)]
simple menu: make ONTIMEOUT work with MENU HIDDEN

The command invoked when no keys were pressed for the specified time
(ONTIMEOUT) may be different from the menu item initially selected
when the menu is displayed (DEFAULT or MENU DEFAULT).  Unfortunately,
this did not work together with MENU HIDDEN (which is exactly the case
when having a separate ONTIMEOUT command makes the most sense).

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoCore: forget to clean core_xfer_buf stuff absolutely
Liu Aleaxander [Wed, 3 Jun 2009 22:18:46 +0000 (06:18 +0800)]
Core: forget to clean core_xfer_buf stuff absolutely

15 years agoCore: use __lowmem for sector read buffer exchange inseatd of core_xfer_buf
Liu Aleaxander [Wed, 3 Jun 2009 22:13:50 +0000 (06:13 +0800)]
Core: use __lowmem for sector read buffer exchange inseatd of core_xfer_buf

15 years agoCore: add two new data types, sector_t and block_t
Liu Aleaxander [Wed, 3 Jun 2009 21:20:05 +0000 (05:20 +0800)]
Core: add two new data types, sector_t and block_t

and fixed some errors.

15 years agoCORE: Add two new file, disk.c, disk.h
Liu Aleaxander [Wed, 3 Jun 2009 20:50:06 +0000 (04:50 +0800)]
CORE: Add two new file, disk.c, disk.h

extract the sector read functions to disk.c, and add SECTOR_SHIFT, SECTOR_SIZE
stuff in the disk.h as asked by hpa.