wiki:Component/Loader

Version 2 (modified by Nicolas Pouillon, 15 years ago) (diff)

--

Loader

Loader is an utility used to load binary files into platforms. It holds information about one or more files, and may load any loadable section by its address and size.

Usage

  • Loader( const std::string &filename )

Creates a new Loader, capable of loading filename.

  • void load( void *buffer, uintptr_t address, size_t length )

buffer must be at least length bytes long.

Loads in buffer any segment overlapping memory region between address to address+length. Used addresses are LMAs (loading memory address) of sections.

If a section is too big to fit in the given buffer, it is truncated and a warning is generated to stderr.

Handlers

Loader does not directly handle different file types. It relies on handlers to support all needed file types. Your platform must link against needed file loader handler to work properly.

For instance, to support ELF files, you need to add the following line to your platform_desc:

  Uses('common:elf_file_loader'),

Handlers are tried in order, and if all fails, error is raised.