Contiki 2.6

The Contiki program loader

The Contiki program loader is an abstract interface for loading and starting programs. More...

Data Structures

struct  dsc
 The DSC program description structure. More...

Modules

 The Contiki ELF loader
 

The Contiki ELF loader links, relocates, and loads ELF (Executable Linkable Format) object files into a running Contiki system.


Files

file  loader.h
 

Default definitions and error values for the Contiki program loader.


Defines

#define DSC(dscname, description, prgname, process, icon)   CLIF const struct dsc dscname = {description, prgname}
 Instantiating macro for the DSC structure.
#define LOADER_OK   0
 No error.
#define LOADER_ERR_READ   1
 Read error.
#define LOADER_ERR_HDR   2
 Header error.
#define LOADER_ERR_OS   3
 Wrong OS.
#define LOADER_ERR_FMT   4
 Data format error.
#define LOADER_ERR_MEM   5
 Not enough memory.
#define LOADER_ERR_OPEN   6
 Could not open file.
#define LOADER_ERR_ARCH   7
 Wrong architecture.
#define LOADER_ERR_VERSION   8
 Wrong OS version.
#define LOADER_ERR_NOLOADER   9
 Program loading not supported.
#define LOADER_LOAD(name, arg)   LOADER_ERR_NOLOADER
 Load and execute a program.
#define LOADER_UNLOAD()
 Unload a program from memory.
#define LOADER_LOAD_DSC(name)   NULL
 Load a DSC (program description).
#define LOADER_UNLOAD_DSC(dsc)
 Unload a DSC (program description).

Detailed Description

The Contiki program loader is an abstract interface for loading and starting programs.

The program description structure

The Contiki DSC structure is used for describing programs.

It includes a string describing the program, the name of the program file on disk (or a pointer to the programs initialization function for systems without disk support), a bitmap icon and a text version of the same icon.

The DSC is saved into a file which can be loaded by programs such as the "Directory" application which reads all DSC files on disk and presents the icons and descriptions in a window.


Define Documentation

#define DSC (   dscname,
  description,
  prgname,
  process,
  icon 
)    CLIF const struct dsc dscname = {description, prgname}

Instantiating macro for the DSC structure.

Parameters:
dscnameThe name of the C variable which is to contain the DSC.
descriptionA one-line text describing the program.
prgnameThe name of the program on disk.
initfuncA pointer to the initialization function of the program.
iconA pointer to the CTK icon.

Definition at line 118 of file dsc.h.

#define LOADER_ERR_ARCH   7

Wrong architecture.

Definition at line 67 of file loader.h.

#define LOADER_ERR_FMT   4

Data format error.

Definition at line 64 of file loader.h.

#define LOADER_ERR_HDR   2

Header error.

Definition at line 62 of file loader.h.

#define LOADER_ERR_MEM   5

Not enough memory.

Definition at line 65 of file loader.h.

#define LOADER_ERR_NOLOADER   9

Program loading not supported.

Definition at line 69 of file loader.h.

#define LOADER_ERR_OPEN   6

Could not open file.

Definition at line 66 of file loader.h.

#define LOADER_ERR_OS   3

Wrong OS.

Definition at line 63 of file loader.h.

#define LOADER_ERR_READ   1

Read error.

Definition at line 61 of file loader.h.

#define LOADER_ERR_VERSION   8

Wrong OS version.

Definition at line 68 of file loader.h.

#define LOADER_LOAD (   name,
  arg 
)    LOADER_ERR_NOLOADER

Load and execute a program.

This macro is used for loading and executing a program, and requires support from the architecture dependent code. The actual program loading is made by architecture specific functions.

Note:
A program loaded with LOADER_LOAD() must call the LOADER_UNLOAD() function to unload itself.
Parameters:
nameThe name of the program to be loaded.
argA pointer argument that is passed to the program.
Returns:
A loader error, or LOADER_OK if loading was successful.

Definition at line 92 of file loader.h.

#define LOADER_LOAD_DSC (   name)    NULL

Load a DSC (program description).

Loads a DSC (program description) into memory and returns a pointer to the dsc.

Returns:
A pointer to the DSC or NULL if it could not be loaded.

Definition at line 116 of file loader.h.

#define LOADER_OK   0

No error.

Definition at line 60 of file loader.h.

#define LOADER_UNLOAD ( )

Unload a program from memory.

This macro is used for unloading a program and deallocating any memory that was allocated during the loading of the program. This function must be called by the program itself.

Definition at line 104 of file loader.h.

#define LOADER_UNLOAD_DSC (   dsc)

Unload a DSC (program description).

Unload a DSC from memory and deallocate any memory that was allocated when it was loaded.

Definition at line 126 of file loader.h.