ia64/xen-unstable

annotate 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
rev   line source
iap10@792 1 Minimal OS
iap10@792 2 ----------
iap10@792 3
iap10@792 4 This shows some of the stuff that any guest OS will have to set up.
iap10@792 5
iap10@792 6 This includes:
iap10@792 7
iap10@792 8 * installing a virtual exception table
iap10@792 9 * handling virtual exceptions
iap10@792 10 * handling asynchronous events
iap10@792 11 * enabling/disabling async events
iap10@792 12 * parsing start_info struct at start-of-day
iap10@792 13 * registering virtual interrupt handlers (for timer interrupts)
iap10@792 14 * a simple page and memory allocator
iap10@792 15 * minimal libc support
iap10@792 16
iap10@792 17 Stuff it doesn't show:
iap10@792 18
iap10@792 19 * modifying page tables
iap10@792 20 * network code
iap10@792 21 * block-device code
iap10@792 22
iap10@792 23
iap10@792 24 - to build it just type make.
iap10@792 25
kaf24@6602 26 - to start it do the following in domain0 (assuming xend is running)
kaf24@6602 27 # xm create domain_config
iap10@792 28
kfraser@12473 29 this starts the kernel and prints out a bunch of stuff and then once
kfraser@12473 30 every second the system time.