ia64/xen-unstable

view extras/mini-os/README @ 13631:db3d03dfe92f

add libelf: an ELF binary parser library.

This patch adds a library with a small collection of helper functions
to parse and load elf binaries. The library handles endianess and
elfsize at runtime.

The patch also shuffles around the include files a bit. Now there is
*one* include file holding all the elf structures
(xen/include/public/elfstructs.h) which is included by everyone who
needs them.

It's dead code with this patch only, putting the code into use happens
in followup patches.

Signed-off-by: Gerd Hoffmann <kraxel@suse.de>
---
tools/libxc/xc_elf.h | 525 -----------------------------------
xen/arch/x86/boot/mkelf32.c | 2
xen/common/Makefile | 2
xen/common/libelf/Makefile | 4
xen/common/libelf/README | 1
xen/common/libelf/libelf-dominfo.c | 420 ++++++++++++++++++++++++++++
xen/common/libelf/libelf-loader.c | 156 ++++++++++
xen/common/libelf/libelf-private.h | 51 +++
xen/common/libelf/libelf-relocate.c | 345 +++++++++++++++++++++++
xen/common/libelf/libelf-tools.c | 225 +++++++++++++++
xen/include/public/elfstructs.h | 527 ++++++++++++++++++++++++++++++++++++
xen/include/public/libelf.h | 238 ++++++++++++++++
xen/include/xen/elf.h | 490 ---------------------------------
13 files changed, 1972 insertions(+), 1014 deletions(-)
author Emmanuel Ackaouy <ack@xensource.com>
date Thu Jan 25 22:16:52 2007 +0000 (2007-01-25)
parents 0839db0aa611
children 851dc6b70494
line source
1 Minimal OS
2 ----------
4 This shows some of the stuff that any guest OS will have to set up.
6 This includes:
8 * installing a virtual exception table
9 * handling virtual exceptions
10 * handling asynchronous events
11 * enabling/disabling async events
12 * parsing start_info struct at start-of-day
13 * registering virtual interrupt handlers (for timer interrupts)
14 * a simple page and memory allocator
15 * minimal libc support
17 Stuff it doesn't show:
19 * modifying page tables
20 * network code
21 * block-device code
24 - to build it just type make.
26 - to start it do the following in domain0 (assuming xend is running)
27 # xm create domain_config
29 this starts the kernel and prints out a bunch of stuff and then once
30 every second the system time.