[syslinux] [PATCH 00/12] elflink shrinkage

Matt Fleming matt at console-pimps.org
Wed Mar 9 08:00:11 PST 2011


From: Matt Fleming <matt.fleming at linux.intel.com>

This is a series of patches that,

* shrink the core by moving things into an ldlinux ELF module
* begin wiring up some of the C versions of various functions

The core now only contains essential code and loads the ldlinux module
to do everything else, like providing a command line interface and
loading kernels.

The config file parsing and kernel load are now done entirely in
C. This allows us to only parse the config file once, even when using
the menu module. Previously the config file would be parsed from asm
to extract the ui module or kernel to load, and then (once the menu
module was running) would be parsed again in order to build the menu
data structures. We now build the menu data structures on the first
(and only) parse of the config file, not to mention the fact that we
only need one copy of the parser now.

Other functions will be converted from asm to C later.

This series is also available at,

git://git.zytor.com/users/mfleming/syslinux.git elflink-readconfig-for-hpa


Matt Fleming (12):
  dprintf: Print to stdout as well as serial ports
  elflink: Remove *.c32 on 'make clean'
  core: Be less verbose at boot
  elflink: Don't pass NULL to spawn_load()
  elflink: Move code out of core and into ldlinux.c32
  elflink: Look for syslinux.cfg
  elflink: Move config data into config.h
  elflink: Don't reload the current EXEC_MODULE module
  Convert mp() to dprintf()
  ldlinux: Record "default" and "ui" command lines
  ldlinux: Parse configuration files
  ldlinux: Parse and store the "onerror" command line

 com32/Makefile                                     |    2 +-
 com32/elflink/ldlinux/Makefile                     |   38 ++++
 {core/elflink => com32/elflink/ldlinux}/adv.c      |    0
 {core/elflink => com32/elflink/ldlinux}/cli.c      |   51 ++++-
 {core/elflink => com32/elflink/ldlinux}/colors.c   |    0
 com32/elflink/ldlinux/config.h                     |   39 ++++
 {core/elflink => com32/elflink/ldlinux}/getadv.c   |    0
 {core/elflink => com32/elflink/ldlinux}/ipappend.c |    0
 com32/elflink/ldlinux/ldlinux.c                    |   83 +++++++
 .../elflink => com32/elflink/ldlinux}/readconfig.c |   92 +++++----
 {core/elflink => com32/elflink/ldlinux}/refstr.c   |    0
 {core/elflink => com32/elflink/ldlinux}/refstr.h   |    0
 com32/elflink/modules/Makefile                     |    4 +-
 com32/elflink/modules/cli.h                        |    6 +-
 com32/elflink/modules/menu.h                       |   17 --
 com32/elflink/modules/menumain.c                   |    6 +-
 com32/elflink/modules/test.c                       |    7 +-
 com32/include/sys/module.h                         |    2 +-
 com32/lib/sys/module/elf_module.c                  |    3 +-
 com32/lib/sys/module/exec.c                        |   35 +++-
 com32/lib/vdprintf.c                               |    6 +-
 core/elflink/abort_new.c                           |   29 ---
 core/elflink/cli.h                                 |   23 --
 core/elflink/core-elf.h                            |   21 ++-
 core/elflink/execute.c                             |   30 +++-
 core/elflink/get_key.c                             |  175 ---------------
 core/elflink/getkey.h                              |   80 -------
 core/elflink/kernel.c                              |    8 +-
 core/elflink/load_env32.c                          |   52 +-----
 core/elflink/menu.h                                |  229 --------------------
 core/extern.inc                                    |    2 +-
 core/isolinux.asm                                  |    6 -
 core/mem/free.c                                    |    3 +-
 core/mem/init.c                                    |    9 +-
 core/ui.inc                                        |    1 -
 elf_gen_dep.sh                                     |    2 +-
 36 files changed, 363 insertions(+), 698 deletions(-)
 create mode 100644 com32/elflink/ldlinux/Makefile
 rename {core/elflink => com32/elflink/ldlinux}/adv.c (100%)
 rename {core/elflink => com32/elflink/ldlinux}/cli.c (90%)
 rename {core/elflink => com32/elflink/ldlinux}/colors.c (100%)
 create mode 100644 com32/elflink/ldlinux/config.h
 rename {core/elflink => com32/elflink/ldlinux}/getadv.c (100%)
 rename {core/elflink => com32/elflink/ldlinux}/ipappend.c (100%)
 create mode 100644 com32/elflink/ldlinux/ldlinux.c
 rename {core/elflink => com32/elflink/ldlinux}/readconfig.c (93%)
 rename {core/elflink => com32/elflink/ldlinux}/refstr.c (100%)
 rename {core/elflink => com32/elflink/ldlinux}/refstr.h (100%)
 delete mode 100644 core/elflink/abort_new.c
 delete mode 100644 core/elflink/cli.h
 delete mode 100644 core/elflink/get_key.c
 delete mode 100644 core/elflink/getkey.h
 delete mode 100644 core/elflink/menu.h

-- 
1.7.4




More information about the Syslinux mailing list