Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Examples

Contiki system


Modules

 Contiki processes
 A process in Contiki consists of a single Protothreads protothread.
 Event timers
 Event timers provides a way to generate timed events.
 The Contiki service mechanism
 The Contiki service mechanism enables cross-process functions.
 Argument buffer
 The argument buffer can be used when passing an argument from an exiting process to a process that has not been created yet.
 The Contiki program loader
 The Contiki program loader is an abstract interface for loading and starting programs.
 Clock library
 The clock library is the interface between Contiki and the platform specific clock functionality.
 Multi-threading library
 The event driven Contiki kernel does not provide multi-threading by itself - instead, preemptive multi-threading is implemented as a library that optionally can be linked with applications.
 Protothreads
 Protothreads are a type of lightweight stackless threads designed for severly memory constrained systems such as deeply embedded systems or sensor network nodes.
 The Contiki file system interface
 The Contiki file system interface (CFS) defines an abstract API for reading directories and for reading and writing files.
 Timer library
 The Contiki kernel does not provide support for timed events.

Return values

#define PROCESS_ERR_OK   0
 Return value indicating that an operation was successful.
#define PROCESS_ERR_FULL   1
 Return value indicating that the event queue was full.

Service declaration and defition

#define SERVICE_INTERFACE(name, interface)
 Define the name and interface of a service.
#define SERVICE(name, service_name,)
 Define an implementation of a service interface.

Functions called from application programs

void etimer_set (struct etimer *et, clock_time_t interval)
 Set an event timer.
void etimer_reset (struct etimer *et)
 Reset an event timer with the same interval as was previously set.
void etimer_restart (struct etimer *et)
 Restart an event timer from the current point in time.
void etimer_adjust (struct etimer *et, int td)
 Adjust the expiration time for an event timer.
clock_time_t etimer_expiration_time (struct etimer *et)
 Get the expiration time for the event timer.
clock_time_t etimer_start_time (struct etimer *et)
 Get the start time for the event timer.
int etimer_expired (struct etimer *et)
 Check if an event timer has expired.
void etimer_stop (struct etimer *et)
 Stop a pending event timer.

Defines

#define PROCESS_NONE   NULL
#define PROCESS_CONF_NUMEVENTS   32
#define PROCESS_EVENT_NONE   0x80
#define PROCESS_EVENT_INIT   0x81
#define PROCESS_EVENT_POLL   0x82
#define PROCESS_EVENT_EXIT   0x83
#define PROCESS_EVENT_SERVICE_REMOVED   0x84
#define PROCESS_EVENT_CONTINUE   0x85
#define PROCESS_EVENT_MSG   0x86
#define PROCESS_EVENT_EXITED   0x87
#define PROCESS_EVENT_TIMER   0x88
#define PROCESS_EVENT_MAX   0x89
#define PROCESS_BROADCAST   NULL
#define PROCESS_ZOMBIE   ((struct process *)0x1)


Define Documentation

#define PROCESS_ERR_FULL   1
 

Return value indicating that the event queue was full.

This value is returned from process_post() to indicate that the event queue was full and that an event could not be posted.

Definition at line 83 of file process.h.

Referenced by process_post().

#define PROCESS_ERR_OK   0
 

Return value indicating that an operation was successful.

This value is returned to indicate that an operation was successful.

Definition at line 75 of file process.h.

Referenced by process_post(), and PROCESS_THREAD().

#define SERVICE name,
service_name   ) 
 

Define an implementation of a service interface.

Parameters:
name The name of this particular instance of the service, for use with SERVICE_REGISTER().
service_name The name of the service, from the SERVICE_INTERFACE().
... A structure containing the functions that implements the service.
This statement defines the name of this implementation of the service and defines the functions that actually implement the functions offered by the service.
Examples:
example-packet-service.c, and example-service.c.

Definition at line 125 of file service.h.

#define SERVICE_INTERFACE name,
interface   ) 
 

Define the name and interface of a service.

This statement defines the name and interface of a service.

Parameters:
name The name of the service.
interface A list of function declarations that comprises the service interface. This list must be enclosed by curly brackets and consist of declarations of function pointers separated by semicolons.
Examples:
example-service.h.

Definition at line 110 of file service.h.


Function Documentation

void etimer_adjust struct etimer et,
int  td
 

Adjust the expiration time for an event timer.

Parameters:
et A pointer to the event timer.
td The time difference to adjust the expiration time with.
This function is used to adjust the time the event timer will expire. It can be used to synchronize periodic timers without the need to restart the timer or change the timer interval.

Note:
This function should only be used for small adjustments. For large adjustments use etimer_set() instead.

A periodic timer will drift unless the etimer_reset() function is used.

See also:
etimer_set()

etimer_reset()

Definition at line 194 of file etimer.c.

References timer::start, and etimer::timer.

clock_time_t etimer_expiration_time struct etimer et  ) 
 

Get the expiration time for the event timer.

Parameters:
et A pointer to the event timer
Returns:
The expiration time for the event timer.
This function returns the expiration time for an event timer.

Definition at line 207 of file etimer.c.

References timer::interval, timer::start, and etimer::timer.

int etimer_expired struct etimer et  ) 
 

Check if an event timer has expired.

Parameters:
et A pointer to the event timer
Returns:
Non-zero if the timer has expired, zero otherwise.
This function tests if an event timer has expired and returns true or false depending on its status.

Definition at line 201 of file etimer.c.

References etimer::p, and PROCESS_NONE.

Referenced by tcpip_uipcall().

void etimer_reset struct etimer et  ) 
 

Reset an event timer with the same interval as was previously set.

Parameters:
et A pointer to the event timer.
This function resets the event timer with the same interval that was given to the event timer with the etimer_set() function. The start point of the interval is the exact time that the event timer last expired. Therefore, this function will cause the timer to be stable over time, unlike the etimer_restart() function.

See also:
etimer_restart()

Definition at line 180 of file etimer.c.

References etimer::timer, and timer_reset().

void etimer_restart struct etimer et  ) 
 

Restart an event timer from the current point in time.

Parameters:
et A pointer to the event timer.
This function restarts the event timer with the same interval that was given to the etimer_set() function. The event timer will start at the current time.

Note:
A periodic timer will drift if this function is used to reset it. For periodic timers, use the etimer_reset() function instead.
See also:
etimer_reset()

Definition at line 187 of file etimer.c.

References etimer::timer, and timer_restart().

Referenced by tcpip_uipcall().

void etimer_set struct etimer et,
clock_time_t  interval
 

Set an event timer.

Parameters:
et A pointer to the event timer
interval The interval before the timer expires.
This function is used to set an event timer for a time sometime in the future. When the event timer expires, the event PROCESS_EVENT_TIMER will be posted to the process that called the etimer_set() function.

Definition at line 173 of file etimer.c.

References etimer::timer, and timer_set().

clock_time_t etimer_start_time struct etimer et  ) 
 

Get the start time for the event timer.

Parameters:
et A pointer to the event timer
Returns:
The start time for the event timer.
This function returns the start time (when the timer was last set) for an event timer.

Definition at line 213 of file etimer.c.

References timer::start, and etimer::timer.

void etimer_stop struct etimer et  ) 
 

Stop a pending event timer.

Parameters:
et A pointer to the pending event timer.
This function stops an event timer that has previously been set with etimer_set() or etimer_reset(). After this function has been called, the event timer will not emit any event when it expires.

Definition at line 231 of file etimer.c.

References etimer::next, NULL, etimer::p, and PROCESS_NONE.


Generated on Thu Jun 22 17:45:43 2006 for Contiki 2.x by  doxygen 1.4.4