platform/upstream/syslinux.git
13 years agoelflink: Detect circular dependencies during module load
Matt Fleming [Thu, 31 Mar 2011 12:08:37 +0000 (13:08 +0100)]
elflink: Detect circular dependencies during module load

It's possible for the 'modules.dep' file to contain circular
dependencies where module A has a dependency on module B, and module B
has a depedency on module A.

Currently what happens in the face of circular dependencies when
trying to parse and load the modules in 'modules.dep' is that we get
stuck in a loop in module_load_dependencies(), presumably eventually
blowing the stack.

To fix this we maintain a singly-linked list of module names that are
in the process of having their dependencies loaded, but that have not
completed the loading. Everytime we begin loading the dependencies for
a new module we check to see if that module name is already on the
linked list. If it is, we've discovered a circular reference so we
refuse to load the dependencies and print a helpful message to the
user which includes the circular dependency chain.

It would be possible to cope with these circular references if we were
to skip loading the dependencies for any modules that are on the
linked list and defer resolving any module relocs until after all
module images have been loaded into memory. However, it's more than
likely that a circular reference is indicative of a bug and that the
correct fix would be to extract the symbols causing the circular
dependency into their own module. So we treat circular dependencies as
an error case for now.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoMerge remote-tracking branch 'mfleming/for-hpa/elflink/fix-compiler-warnings' into...
H. Peter Anvin [Wed, 16 Mar 2011 19:53:58 +0000 (12:53 -0700)]
Merge remote-tracking branch 'mfleming/for-hpa/elflink/fix-compiler-warnings' into elflink

13 years agoelflink: Return zero from draw_background()
Matt Fleming [Wed, 16 Mar 2011 14:56:01 +0000 (14:56 +0000)]
elflink: Return zero from draw_background()

Fix the following comiler warning,

background.c:37:1: warning: control reaches end of non-void function

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Add draw_message_file() prototype
Matt Fleming [Wed, 16 Mar 2011 14:34:53 +0000 (14:34 +0000)]
elflink: Add draw_message_file() prototype

To fix the following warning,

menumain.c: In function ‘show_message_file’:
menumain.c:196:5: warning: implicit declaration of function ‘draw_message_file’

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Fix compiler warnings by including core-elf.h
Matt Fleming [Wed, 16 Mar 2011 14:32:12 +0000 (14:32 +0000)]
elflink: Fix compiler warnings by including core-elf.h

Numerous files need to include core-elf.h to get the definition of
'enum kernel_type'.

In file included from mytest.c:19:0:
menu.h: At top level:
menu.h:206:40: warning: ‘enum kernel_type’ declared inside parameter list
menu.h:206:40: warning: its scope is only this definition or declaration, which is probably not what you want

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Fix compiler warnings in hello.c
Matt Fleming [Wed, 16 Mar 2011 14:26:40 +0000 (14:26 +0000)]
elflink: Fix compiler warnings in hello.c

Fix the following warnings,

hello.c: In function ‘hello_main’:
hello.c:23:5: warning: too few arguments for format
hello.c:20:9: warning: unused variable ‘i’

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoldlinux: Fix compiler warning in colors.c
Matt Fleming [Wed, 16 Mar 2011 14:05:16 +0000 (14:05 +0000)]
ldlinux: Fix compiler warning in colors.c

Include core-elf.h to get the definition of enum kernel_type to fix
the following warning,

In file included from colors.c:17:0:
../modules/menu.h:206:40: warning: ‘enum kernel_type’ declared inside parameter list
../modules/menu.h:206:40: warning: its scope is only this definition or declaration, which is probably not what you want

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoldlinux: Delete unused variables and functions
Matt Fleming [Wed, 16 Mar 2011 13:40:46 +0000 (13:40 +0000)]
ldlinux: Delete unused variables and functions

Fix the following compiler warnings,

readconfig.c: In function ‘parse_one_config’:
readconfig.c:1059:6: warning: unused variable ‘i’
readconfig.c: At top level:
readconfig.c:1110:13: warning: ‘dump_menu’ defined but not used

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoldlinux: Sprinkle const type qualifers
Matt Fleming [Wed, 16 Mar 2011 13:26:57 +0000 (13:26 +0000)]
ldlinux: Sprinkle const type qualifers

The following warnings are all caused because we're assigning from
const char * to char *. As the strings are never modified, it makes
sense to add the const type qualifer instead of casting away const.

readconfig.c: In function ‘parse_config_file’:
readconfig.c:708:11: warning: assignment discards qualifiers from pointer target type
readconfig.c:937:10: warning: assignment discards qualifiers from pointer target type
readconfig.c:987:20: warning: assignment discards qualifiers from pointer target type
readconfig.c:998:15: warning: assignment discards qualifiers from pointer target type
readconfig.c:1004:18: warning: assignment discards qualifiers from pointer target type
readconfig.c:1041:11: warning: assignment discards qualifiers from pointer target type

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoldlinux: Fix compiler warnings in cli.c
Matt Fleming [Wed, 16 Mar 2011 13:18:41 +0000 (13:18 +0000)]
ldlinux: Fix compiler warnings in cli.c

Make the compiler happy by casting away the following warnings,

cli.c: In function ‘process_command’:
cli.c:381:2: warning: passing argument 1 of ‘strtok’ discards qualifiers from pointer target type
../../../com32/include/string.h:44:16: note: expected ‘char *’ but argument is of type ‘const char *’
cli.c:400:3: warning: passing argument 2 of ‘spawn_load’ from incompatible pointer type
../../../com32/include/sys/exec.h:43:12: note: expected ‘const char **’ but argument is of type ‘char **’

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoldlinux: Fix the following warnings
Matt Fleming [Tue, 15 Mar 2011 21:38:45 +0000 (21:38 +0000)]
ldlinux: Fix the following warnings

ldlinux.c: In function ‘enter_cmdline’:
ldlinux.c:15:23: warning: unused variable ‘aux’
ldlinux.c: In function ‘ldlinux_main’:
ldlinux.c:75:5: warning: implicit declaration of function ‘kaboom’

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: handle the NULL return of edit_cmdline
Liu Aleaxander [Tue, 15 Mar 2011 20:55:09 +0000 (20:55 +0000)]
elflink: handle the NULL return of edit_cmdline

When use ctrl-c to cancle the current input, the edit_cmdline
function will return a NULL string. While, the called didn't
handle that case, and an error would be happened.

Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Add ctrl-R key bind support
Liu Aleaxander [Tue, 15 Mar 2011 20:54:01 +0000 (20:54 +0000)]
elflink: Add ctrl-R key bind support

This patch would add the CTRL-R key bind support. It would have
the basic feature of the CTRL-R key bind in bash. While, don't
expect it will do exactly like what bash will do.

Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: use 'input' as the prompt of the CLI
Liu Aleaxander [Tue, 15 Mar 2011 20:44:53 +0000 (20:44 +0000)]
elflink: use 'input' as the prompt of the CLI

Use the paramter 'input' of fucntion edit_cmdline as the prompt of the
CLI. I guess this is what the 'input' parameter used for. It's is more
extendable than using a specify prompt.

And, for now, let's use the 'syslinux' as the prompt.:)

Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Add Ctrl-p + Ctrl-n key binds
Liu Aleaxander [Tue, 15 Mar 2011 20:29:33 +0000 (20:29 +0000)]
elflink: Add Ctrl-p + Ctrl-n key binds

Add ctrl-p and ctrl-n key binds to get the prev and next
command. They are much easier to reach than KEY_UP and
KEY_DOWN.

Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Do clear screen even if we have no pDraw_Menu method
Liu Aleaxander [Tue, 15 Mar 2011 20:28:26 +0000 (20:28 +0000)]
elflink: Do clear screen even if we have no pDraw_Menu method

Do clear screen even if we have no pDraw_Menu method, since user
may work in CLI mode and want to clear screen by pressing 'Ctrl-L'.

Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Fix the wrong malloc size in enter_cmdline
Liu Aleaxander [Tue, 15 Mar 2011 20:24:57 +0000 (20:24 +0000)]
elflink: Fix the wrong malloc size in enter_cmdline

Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Cleanup some warnings
Liu Aleaxander [Tue, 15 Mar 2011 20:19:33 +0000 (20:19 +0000)]
elflink: Cleanup some warnings

Cleanup some unused variables, goto lables, and add the missing
header files.

Signed-off-by: Liu Aleaxander <Aleaxander@gmail.com>
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoldlinux: Parse and store the "onerror" command line
Matt Fleming [Wed, 9 Mar 2011 14:20:19 +0000 (14:20 +0000)]
ldlinux: Parse and store the "onerror" command line

If we fail to load a kernel and the parser found an "onerror"
directive, execute the onerror command line.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoldlinux: Parse configuration files
Matt Fleming [Tue, 8 Mar 2011 19:25:37 +0000 (19:25 +0000)]
ldlinux: Parse configuration files

Use the configuration file parser provided by ldlinux to search for
and parse any configuration files. If a kernel or ui module is found
in the configuration file, it is executed once parsing completes.

Parsing and loading kernels is now entirely done in C!

The parser also builds the data structures for later use by the menu
system. Previously, after the asm config parser had parsed the config
file and found a kernel image to boot (or dropped the user at a
command prompt), the menu.c32 module had to open the config file and
re-parse it. Now, we only need to parse the file once.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoldlinux: Record "default" and "ui" command lines
Matt Fleming [Tue, 8 Mar 2011 17:07:13 +0000 (17:07 +0000)]
ldlinux: Record "default" and "ui" command lines

The command line following the "default" and "ui" options may be a
kernel or com32 module to load and execute, so we need to record it
for later processing.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoConvert mp() to dprintf()
Matt Fleming [Tue, 8 Mar 2011 13:13:28 +0000 (13:13 +0000)]
Convert mp() to dprintf()

There's only one function required for printing debugging information
and that is dprintf() - there is no need to invent another. dprintf()
is also superior to mp() because it can be enabled/disabled on a
per-file basis via the DEBUG symbol.

Switch all users of mp() to dprintf() and leave them disabled (don't
define the DEBUG) so we have a less verbose boot by default.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Don't reload the current EXEC_MODULE module
Matt Fleming [Mon, 7 Mar 2011 23:02:35 +0000 (23:02 +0000)]
elflink: Don't reload the current EXEC_MODULE module

As the ldlinux.c32 ELF module is an executable (EXEC_MODULE) and not a
library (LIB_MODULE), we need to make sure we don't reload it when
another executable wants to resolve a symbol exported by ldlinux.

Whenever an EXEC_MODULE module is loaded its MODULE_MAIN function is
executed. In the case of ldlinux, the MODULE_MAIN function drops the
user at a command line. So, what currently happens is that if we load
an executable module, say menu.c32, which needs symbols exported by
ldlinux and ldlinux is already loaded and running, we'll reload
ldlinux when resolving undefined symbols from menu.c32 and end up
dropping the user at a command prompt and _not_ resolve the symbols
and return control to menu.c32's MODULE_MAIN function. ldlinux.c32
effectively steals control of the proces.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Move config data into config.h
Matt Fleming [Thu, 3 Mar 2011 11:53:42 +0000 (11:53 +0000)]
elflink: Move config data into config.h

Move some definitions that other compilation units need to know about
into config.h. In subsequent patches ldlinux.c will use the global
options set by readconfig.c to decide which kernel to boot.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Look for syslinux.cfg
Matt Fleming [Thu, 3 Mar 2011 11:15:47 +0000 (11:15 +0000)]
elflink: Look for syslinux.cfg

Add syslinux.cfg to the list of configuration file names to check for
when the config parser searches for configuration files.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Move code out of core and into ldlinux.c32
Matt Fleming [Sun, 13 Feb 2011 21:02:51 +0000 (21:02 +0000)]
elflink: Move code out of core and into ldlinux.c32

Currently, there is a lot of code in core/elflink that is not strictly
required for the core to function. There are benefits to keeping the
core proper as small as possible, for example so that it can fit
within a single 64K block on btrfs.

So move the following pieces of code out of core/elflink and into a
new ldlinux ELF module which will be automatically loaded by the core:

 - command line interface code
 - C configuration parser
 - refstr implementation
 - rest of the menu system

Below are some measurements of the size of ldlinux.elf before and
after this change.

Before:
   text    data     bss     dec     hex filename
 161328   10439  913468 1085235  108f33 core/ldlinux.elf

After:
   text    data     bss     dec     hex filename
 142423   10415  909500 1062338  1035c2 core/ldlinux.elf

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Don't pass NULL to spawn_load()
Matt Fleming [Mon, 7 Mar 2011 21:52:54 +0000 (21:52 +0000)]
elflink: Don't pass NULL to spawn_load()

As spawn_load() dereferences the 'argv' parameter it really doesn't
expect it to be NULL.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agocore: Be less verbose at boot
Matt Fleming [Tue, 8 Mar 2011 13:59:02 +0000 (13:59 +0000)]
core: Be less verbose at boot

Change some printf() calls to dprintf() so that we stop printing
debugging information that is only useful for developers.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agoelflink: Remove *.c32 on 'make clean'
Matt Fleming [Tue, 8 Mar 2011 17:41:17 +0000 (17:41 +0000)]
elflink: Remove *.c32 on 'make clean'

The clean target should also remove any .c32 files.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agodprintf: Print to stdout as well as serial ports
Matt Fleming [Tue, 8 Mar 2011 13:47:32 +0000 (13:47 +0000)]
dprintf: Print to stdout as well as serial ports

The intention here is to make dprintf the de-facto function for
printing all debugging information. As such, it's useful to print to
the serial ports and stdout so that developers are not required to
hook up a serial port to view output.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
13 years agosys/times.h: Mark times() static inline
Matt Fleming [Thu, 17 Feb 2011 22:03:27 +0000 (22:03 +0000)]
sys/times.h: Mark times() static inline

As times() is just an accessor function for accessing __ms_timer it's
worth marking it as static inline so that we don't incur any function
call overhead just for accessing a symbol.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
13 years agoelflink: Warn about unresolved symbols when creating modules.dep
Matt Fleming [Thu, 17 Feb 2011 22:03:26 +0000 (22:03 +0000)]
elflink: Warn about unresolved symbols when creating modules.dep

If, after running elf_gen_dep.sh, there are still some symbols that
are not provided by any of the modules that we built, issue a warning
and list the unresolved symbols.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
13 years agogitignore: Add modules.dep
Matt Fleming [Thu, 17 Feb 2011 22:03:25 +0000 (22:03 +0000)]
gitignore: Add modules.dep

This file is generated at build time and contains a list of modules
and their dependencies.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
13 years agogitignore: Ignore GNU global files
Matt Fleming [Mon, 14 Feb 2011 12:28:34 +0000 (12:28 +0000)]
gitignore: Ignore GNU global files

Add GPATH, GRTAGS and GTAGS which are tag files generated by GNU
global.

Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
13 years agoelflink: modify isolinux.asm to make it go to elf flow
Feng Tang [Tue, 24 Aug 2010 08:27:30 +0000 (16:27 +0800)]
elflink: modify isolinux.asm to make it go to elf flow

Just add a "pm_call load_env32" after calling fs_init(), now
the isolinux installer can use elf code to parse config, enter
menu, loading kernel too

Signed-off-by: Feng Tang <feng.tang@intel.com>
13 years agoelflink: remove all __com32.cs_pm from com32/
Feng Tang [Fri, 20 Aug 2010 03:56:58 +0000 (11:56 +0800)]
elflink: remove all __com32.cs_pm from com32/

We don't need these wrappers any more, as we can directly call
those APIs from core lib

13 years agoversion: This branch is now officially the 5.00 devel branch
H. Peter Anvin [Fri, 13 Aug 2010 04:03:33 +0000 (21:03 -0700)]
version: This branch is now officially the 5.00 devel branch

Make it official this is the 5.00 development branch.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
13 years agoMerge branch 'elflink' into elflink-merge
H. Peter Anvin [Fri, 13 Aug 2010 04:00:22 +0000 (21:00 -0700)]
Merge branch 'elflink' into elflink-merge

13 years agoMerge branch 'master' into elflink-merge
H. Peter Anvin [Fri, 13 Aug 2010 03:48:33 +0000 (20:48 -0700)]
Merge branch 'master' into elflink-merge

Resolved Conflicts:
core/diskfs.inc
core/mem/free.c

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
13 years agoelflink: merge with master branch
Feng Tang [Fri, 13 Aug 2010 03:42:00 +0000 (20:42 -0700)]
elflink: merge with master branch

ELF modules basically work

Conflicts:
com32/Makefile
com32/lib/Makefile
com32/lua/etc/luavs.bat
core/fs/getcwd.c
core/include/fs.h
core/pmapi.c
libinstaller/syslxmod.c

Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
13 years agoversion: next version will be 4.03 syslinux-4.03-pre1
H. Peter Anvin [Wed, 11 Aug 2010 18:50:48 +0000 (11:50 -0700)]
version: next version will be 4.03

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
13 years agocore: look for invalid MBR handover information address
H. Peter Anvin [Wed, 11 Aug 2010 17:42:51 +0000 (10:42 -0700)]
core: look for invalid MBR handover information address

The Win7 MBR doesn't provide proper handover information.  Instead, it
leaves DS:SI = 0:0x7e00, so reject that information as invalid on
grounds that it is pointed into the bootloader area.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agochain: Extra comments; shrink the new space to minimum
Gene Cumm [Sun, 1 Aug 2010 16:55:27 +0000 (12:55 -0400)]
chain: Extra comments; shrink the new space to minimum

14 years agochain: Just assign the value rather than using memcpy()
Gene Cumm [Sun, 1 Aug 2010 16:39:19 +0000 (12:39 -0400)]
chain: Just assign the value rather than using memcpy()

14 years agochain: add drmk= to usage
Gene Cumm [Sun, 1 Aug 2010 14:23:51 +0000 (10:23 -0400)]
chain: add drmk= to usage

14 years agochain: Fix up and clean up DRMK load code; fix filename length; Patch memory.
Gene Cumm [Sun, 1 Aug 2010 14:23:00 +0000 (10:23 -0400)]
chain: Fix up and clean up DRMK load code; fix filename length;  Patch memory.

14 years agochain.c32: prepare for loading DRMK
Gene Cumm [Sun, 1 Aug 2010 03:14:06 +0000 (23:14 -0400)]
chain.c32: prepare for loading DRMK

14 years agosyslxopt: remove lengthy warning message
H. Peter Anvin [Fri, 30 Jul 2010 17:20:08 +0000 (10:20 -0700)]
syslxopt: remove lengthy warning message

Remove a lengthy warning message which cause the actual command
reference to overflow a 24-line screen.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agosyslxopt: fix fatal warnings
H. Peter Anvin [Fri, 30 Jul 2010 17:17:52 +0000 (10:17 -0700)]
syslxopt: fix fatal warnings

Fix fatal warnings in syslxopt.c partly due to legal but non-idiomatic
use of switch().  Since the only purpose was to conditionalize single
output statements, just do it explicitly.

In addition, since they are conditional messages, there is no need to
explain when they apply.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agochain.c: fix public index value in mbr and gpt iterators
Michal Soltys [Fri, 30 Jul 2010 06:46:07 +0000 (08:46 +0200)]
chain.c: fix public index value in mbr and gpt iterators

mbr and gpt iterators skip empty / non-data partitions properly, but don't
update publicly visible index. With this patch, such partitions are counted as
well.

Signed-off-by: Michal Soltys <soltys@ziu.info>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agolibinstaller/syslxopt.c: remove unneeded usage text from certain variants.
Gene Cumm [Tue, 27 Jul 2010 22:58:46 +0000 (18:58 -0400)]
libinstaller/syslxopt.c: remove unneeded usage text from certain variants.

Gert Hulselmans noticed this.

14 years agoMake __free_tagged actually free memory
Sebastian Herbszt [Tue, 27 Jul 2010 12:46:57 +0000 (14:46 +0200)]
Make __free_tagged actually free memory

__free_tagged called by comboot_cleanup_lowmem (core/mem/free.c) doesn't
seem to work correctly. Memory allocated with lmalloc() isn't marked as free
after the allocating module exits:

boot: mem
lowmem_buf: 0x000353e0
boot: mem
lowmem_buf: 0x000553f0
boot: mem
lowmem_buf: 0x00075400
boot: mem
lowmem_buf: 0x00000000
boot:

The expected behaviour

boot: mem
lowmem_buf: 0x000353e0
boot: mem
lowmem_buf: 0x000353e0
boot: mem
lowmem_buf: 0x000353e0

can be achieved with the following patch.

14 years agocore: define and use set_flags() helper
H. Peter Anvin [Mon, 26 Jul 2010 20:57:34 +0000 (13:57 -0700)]
core: define and use set_flags() helper

Rather than opencoding the arithmetic flag mask, define an inline to
make that happen properly.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agosample: remove obsolete "raw" comboot/com32 samples
H. Peter Anvin [Mon, 26 Jul 2010 20:33:37 +0000 (13:33 -0700)]
sample: remove obsolete "raw" comboot/com32 samples

We really don't want people to write code without using the library,
so just remove these obsolete and no longer functional samples.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agolibmenu: Fix cursor on exit from showmenus()
Gene Cumm [Mon, 26 Jul 2010 19:09:43 +0000 (15:09 -0400)]
libmenu: Fix cursor on exit from showmenus()

This fixes the issue in hdt.c32 that Kent Robotti noticed where
exiting directly from Menu Mode caused the cursor to not be displayed.
This same issue also affects com32/cmenu/simple.c32 and probably
others using showmenus().

Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agocore: don't hang if no config file is found
H. Peter Anvin [Mon, 26 Jul 2010 00:27:37 +0000 (17:27 -0700)]
core: don't hang if no config file is found

If we can't find a configuration file, we need to do something
slightly more friendly than hanging.

Reported-by: Sebastian Herbszt <herbszt@gmx.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agowin64: experimental Win64 installer (syslinux64.exe) syslinux-4.02
H. Peter Anvin [Wed, 21 Jul 2010 19:33:13 +0000 (12:33 -0700)]
win64: experimental Win64 installer (syslinux64.exe)

Experimental Win64 installer.  This is necessary to be able to run on
WinPE64, since WinPE64 doesn't support running 32-bit binaries.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agowin32: fix README, adjust broken +x bits
H. Peter Anvin [Wed, 21 Jul 2010 19:00:12 +0000 (12:00 -0700)]
win32: fix README, adjust broken +x bits

Fix the win32/README file and adjust some stray +x bits which had
crept in.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
14 years agolua: remove obsolete FIXME comment
Geert Stappers [Tue, 20 Jul 2010 22:12:36 +0000 (15:12 -0700)]
lua: remove obsolete FIXME comment

Remove an obsolete FIXME comment; the problem was caused by a stale
library.

14 years agoNEWS: document IP byte order fix. syslinux-4.02-pre5
H. Peter Anvin [Tue, 20 Jul 2010 06:45:18 +0000 (23:45 -0700)]
NEWS: document IP byte order fix.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agopxe: fix byte order of output from parse_dotquad()
H. Peter Anvin [Tue, 20 Jul 2010 06:42:41 +0000 (23:42 -0700)]
pxe: fix byte order of output from parse_dotquad()

parse_dotquad() incorrectly returned output in host byte order.

Reported-by: Alexander Wuerstlein <arw@arw.name>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
14 years agoextlinux, linux: Ignore --force in these installers syslinux-4.02-pre4
Shao Miller [Tue, 20 Jul 2010 03:34:04 +0000 (23:34 -0400)]
extlinux, linux: Ignore --force in these installers

Previous commits described this behaviour, but did not
actually implement it. :)

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agodos: Use libinstaller option parser
Shao Miller [Tue, 20 Jul 2010 03:21:57 +0000 (23:21 -0400)]
dos: Use libinstaller option parser

We will produce an error message if a user attempts
to use an option we don't implement.

Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
14 years agoelflink: comment off the size check in syslxmod.c
Feng Tang [Fri, 16 Jul 2010 08:37:21 +0000 (16:37 +0800)]
elflink: comment off the size check in syslxmod.c

14 years agoelflink: remove unneeded extlinux/ext2_fs.h
Feng Tang [Thu, 15 Jul 2010 09:52:14 +0000 (17:52 +0800)]
elflink: remove unneeded extlinux/ext2_fs.h

14 years agoelflink: remove core/printf.c
Feng Tang [Wed, 14 Jul 2010 08:44:02 +0000 (16:44 +0800)]
elflink: remove core/printf.c

14 years agoelflink: core: rename getcwd() to avoid conflict
Feng Tang [Wed, 14 Jul 2010 08:35:41 +0000 (16:35 +0800)]
elflink: core: rename getcwd() to avoid conflict

14 years agoelflink: a lot of core/fs merge
Feng Tang [Wed, 14 Jul 2010 07:55:25 +0000 (15:55 +0800)]
elflink: a lot of core/fs merge

As:
modified:   core/Makefile
modified:   core/adv.inc
modified:   core/call16.c
modified:   core/callback.inc
modified:   core/comboot.inc
modified:   core/diskstart.inc
deleted:    core/extlinux.asm
modified:   core/include/core.h
modified:   core/isolinux.asm
modified:   core/ldlinux.asm
modified:   core/pmapi.c
modified:   core/timer.inc
modified:   elf_gen_dep.sh

14 years agoelflink: merge 4.01 fs part
Feng Tang [Wed, 14 Jul 2010 06:43:01 +0000 (14:43 +0800)]
elflink: merge 4.01 fs part

changes including:

modified:   core/cmdline.inc
modified:   core/comboot.inc
modified:   core/fs/btrfs/btrfs.c
modified:   core/fs/chdir.c
modified:   core/fs/diskio.c
modified:   core/fs/fat/fat.c
modified:   core/fs/fs.c
modified:   core/fs/getfssec.c
modified:   core/fs/iso9660/iso9660.c
modified:   core/fs/lib/loadconfig.c
modified:   core/fs/pxe/dhcp_option.c
modified:   core/fs/pxe/dnsresolv.c
modified:   core/fs/pxe/idle.c
modified:   core/fs/pxe/pxe.c
modified:   core/fs/pxe/pxe.h
modified:   core/fs/readdir.c
modified:   core/include/fs.h
modified:   core/pxelinux.asm

14 years agoelflink: some change in com32/
Feng Tang [Wed, 14 Jul 2010 03:16:22 +0000 (11:16 +0800)]
elflink: some change in com32/

modified:   com32/MCONFIG
modified:   com32/Makefile
modified:   com32/mboot/map.c
modified:   com32/mboot/mboot.h
modified:   com32/menu/menu.h
modified:   com32/menu/menumain.c
modified:   com32/menu/readconfig.c
modified:   com32/modules/chain.c
modified:   com32/modules/config.c
modified:   com32/modules/elf.c
modified:   com32/modules/ifcpu.c
modified:   com32/modules/ifcpu64.c
new file:   com32/modules/ifplop.c
new file:   com32/modules/ls.c
modified:   com32/modules/pmload.c
new file:   com32/modules/pwd.c
modified:   com32/modules/sdi.c
new file:   com32/modules/whichsys.c

14 years agoelflink: add new files
Feng Tang [Wed, 14 Jul 2010 03:08:06 +0000 (11:08 +0800)]
elflink: add new files

new file:   com32/include/getopt.h
new file:   com32/include/ilog2.h
new file:   com32/lib/getopt_long.c
new file:   com32/lib/sys/sleep.c
new file:   com32/sysdump/acpi.c
new file:   com32/sysdump/be_srec.c
new file:   com32/sysdump/rbtree.c
new file:   com32/sysdump/rbtree.h
new file:   dos/getsetsl.c
new file:   dos/memmove.S
new file:   libinstaller/advio.c
new file:   libinstaller/fat.c
new file:   libinstaller/linuxioctl.h
new file:   memdisk/compiler.h
new file:   memdisk/mstructs.h
new file:   utils/memdiskfind.c

14 years agoelflink: add more change as show below
Feng Tang [Wed, 14 Jul 2010 02:57:18 +0000 (10:57 +0800)]
elflink: add more change as show below

   com32/lib/chdir.c
   com32/lib/getcwd.c
   com32/lib/getopt.c
   com32/lib/pci/scan.c
   com32/lib/sys/farcall.c
   com32/lib/sys/times.c
   com32/lib/sys/vesa/background.c
   com32/lib/sys/vesa/screencpy.c
   com32/lib/vdprintf.c
   com32/rosh/rosh.c
   com32/rosh/rosh.h
   com32/sysdump/backend.h
   com32/sysdump/be_tftp.c
   com32/sysdump/main.c
   com32/sysdump/memmap.c
   com32/sysdump/sysdump.h
   com32/sysdump/vesa.c
   doc/comboot.txt
   doc/extlinux.txt
   doc/gpt.txt
   doc/memdisk.txt
   doc/menu.txt
   doc/syslinux.txt

14 years agoelflink: prepcore: comments off size check for temp
Feng Tang [Wed, 14 Jul 2010 02:44:30 +0000 (10:44 +0800)]
elflink: prepcore: comments off size check for temp

14 years agoelflink: add zlib change
Feng Tang [Wed, 14 Jul 2010 02:41:24 +0000 (10:41 +0800)]
elflink: add zlib change

14 years agoelflink: merge these files
Feng Tang [Mon, 12 Jul 2010 07:45:05 +0000 (15:45 +0800)]
elflink: merge these files

   com32/include/sys/times.h
   com32/include/syslinux/config.h
   com32/include/syslinux/pmapi.h
   com32/include/unistd.h
   com32/include/zconf.h
   com32/include/zlib.h
   dos/Makefile
   dos/errno.h
   dos/string.h
   dos/syslinux.c
   dosutil/eltorito.asm
   dosutil/mdiskchk.c
   dosutil/mdiskchk.com
   extlinux/Makefile
   extlinux/fat.h
   extlinux/main.c
   libfat/libfat.h
   libfat/open.c
   libinstaller/Makefile
   libinstaller/setadv.c
   libinstaller/syslinux.h
   libinstaller/syslxcom.c
   libinstaller/syslxcom.h
   libinstaller/syslxint.h
   libinstaller/syslxmod.c
   libinstaller/syslxopt.c
   libinstaller/syslxopt.h
   linux/Makefile
   linux/syslinux.c

14 years agoelflink: merge libpng
Feng Tang [Mon, 12 Jul 2010 07:31:17 +0000 (15:31 +0800)]
elflink: merge libpng

14 years agoelflink: add com32/lua dir
Feng Tang [Mon, 12 Jul 2010 07:02:50 +0000 (15:02 +0800)]
elflink: add com32/lua dir

14 years agoelflink: merged gfxboot/gpllib/hdt/cmenu/ part
Feng Tang [Mon, 12 Jul 2010 06:56:43 +0000 (14:56 +0800)]
elflink: merged gfxboot/gpllib/hdt/cmenu/ part

14 years agoelflink: small modification
Feng Tang [Mon, 12 Jul 2010 06:45:25 +0000 (14:45 +0800)]
elflink: small modification

14 years agoelflink: some cleanup
Feng Tang [Thu, 1 Jul 2010 08:42:35 +0000 (16:42 +0800)]
elflink: some cleanup

14 years agoelflink: will run default item in config file after starting ui
Feng Tang [Wed, 30 Jun 2010 08:12:04 +0000 (16:12 +0800)]
elflink: will run default item in config file after starting ui

14 years agoelflink: cleanup com32/elflink/modules/cpuid.c
Feng Tang [Wed, 30 Jun 2010 08:02:49 +0000 (16:02 +0800)]
elflink: cleanup com32/elflink/modules/cpuid.c

14 years agoelflink: meminfo.c: change cs_bounce buf to lmalloc
Feng Tang [Wed, 30 Jun 2010 06:33:13 +0000 (14:33 +0800)]
elflink: meminfo.c: change cs_bounce buf to lmalloc

14 years agoelflink: add several files to com32/elflink/modules
Feng Tang [Wed, 30 Jun 2010 06:11:21 +0000 (14:11 +0800)]
elflink: add several files to com32/elflink/modules

They are meminfo/pcitest/dir/vesainfo/cpuid/cpuidtest. But not
all of their .c32 works.

One note from vesainfo.c32 is, we need change all cs_bounce usage
to lmalloc/free

14 years agoelflink: malloc cleanup
Feng Tang [Mon, 28 Jun 2010 07:14:37 +0000 (15:14 +0800)]
elflink: malloc cleanup

* remove com32/lib/malloc.h
* remove com32/elflink/test_memalign.c

14 years agoelflink: add -s option for objcopy/ld to reduce extlinux.elf size
Feng Tang [Mon, 28 Jun 2010 03:15:53 +0000 (11:15 +0800)]
elflink: add -s option for objcopy/ld to reduce extlinux.elf size

14 years agoelflink: remove hmalloc which is not needed after core/com32 malloc merged
Feng Tang [Thu, 24 Jun 2010 08:28:39 +0000 (16:28 +0800)]
elflink: remove hmalloc which is not needed after core/com32 malloc merged

14 years agoelflink: remove the malloc.c/free.c/realloc.c/zalloc.c from com32
Feng Tang [Thu, 24 Jun 2010 08:03:34 +0000 (16:03 +0800)]
elflink: remove the malloc.c/free.c/realloc.c/zalloc.c from com32

14 years agoelflink: move realloc() to core/mem/malloc.c
Feng Tang [Thu, 24 Jun 2010 07:10:56 +0000 (15:10 +0800)]
elflink: move realloc() to core/mem/malloc.c

* remove most of the functinal codes from com32 malloc/realloc code
* next step will be remove those codes from com32
* one left item is posix memalign problem and memory tag problem
  which is usded by elf module load code

14 years agoelflink: remove highmem.inc
Feng Tang [Tue, 22 Jun 2010 09:22:29 +0000 (17:22 +0800)]
elflink: remove highmem.inc

14 years agoJune 22: new mem_init works
Feng Tang [Tue, 22 Jun 2010 09:19:45 +0000 (17:19 +0800)]
June 22: new mem_init works

14 years agoelflink: modify build.sh
Feng Tang [Tue, 22 Jun 2010 06:02:21 +0000 (14:02 +0800)]
elflink: modify build.sh

14 years agoelflink: make linux kernel booting
Feng Tang [Mon, 21 Jun 2010 09:21:12 +0000 (17:21 +0800)]
elflink: make linux kernel booting

* modify execute.c to not using __com32.cs_bounce but lmalloc/lfree
* give core/malloc 32M memory

Now the kernel is loading ok, but "memdisk initrd=doshd.img" is not
working, need ask hpa if he has a new doshd.img

14 years agoelflink: We can see menu.c32 working!
Feng Tang [Fri, 18 Jun 2010 08:17:35 +0000 (16:17 +0800)]
elflink: We can see menu.c32 working!

14 years agoelflink: add early debug hook in core/diskstart.inc
Feng Tang [Fri, 18 Jun 2010 06:50:46 +0000 (14:50 +0800)]
elflink: add early debug hook in core/diskstart.inc

14 years agoelflink: modify Makefile to solve the undefined symbol problem
Feng Tang [Fri, 18 Jun 2010 05:27:31 +0000 (13:27 +0800)]
elflink: modify Makefile to solve the undefined symbol problem

* use --whole-archive to let extlinux.elf contain all the mini com32 lib
* remove several tool funcs from com32/lib/Makefile which is
  now implemented in core

14 years agoelflink: change the exit.c, remove the exit.S to make process exit working
Feng Tang [Thu, 17 Jun 2010 09:09:30 +0000 (17:09 +0800)]
elflink: change the exit.c, remove the exit.S to make process exit working

following elflink branch

14 years agoelflink: change the main func of hello.c to static
Feng Tang [Thu, 17 Jun 2010 03:57:39 +0000 (11:57 +0800)]
elflink: change the main func of hello.c to static

Otherwise it will be global and can't be searched, still don't know
the real reason

14 years agoelflink: add elf module dump func
Feng Tang [Wed, 16 Jun 2010 14:40:01 +0000 (22:40 +0800)]
elflink: add elf module dump func

14 years agoelflink: use core/malloc as the malloc system, enlarge buffer to 1MB
feng.tang@intel.com [Wed, 16 Jun 2010 13:39:52 +0000 (21:39 +0800)]
elflink: use core/malloc as the malloc system, enlarge buffer to 1MB