To activate libpok services, you must define some macros. By
default, you don't have any services. You activate service by defining
macros. Thus, it ensures that each partition contains only required services
and avoid any memory overhead in partitions.
These macros have the form POK_NEEDS_.... There is a list of
these macros:
- POK_NEEDS_RTL8029: activate the functions of the device
driver that support the Realtek 8029 ethernet card.
- POK_NEEDS_STDLIB: activate services of the standard
library (everything you can find in
libpok/include/libc/stdlib.h).
- POK_NEEDS_STDIO: activate the services of the standard
Input/Output library (printf, etc.). You can find available functions
in libpok/include/libc/stdio.h).
- POK_NEEDS_IO: needs functions to perform I/O. These
functions are just system calls and ask the kernel to perform them. The
partition CANNOT make any I/O by itself.
- POK_NEEDS_TIME: activate functions that handle time.
- POK_NEEDS_THREADS: activate functions relative to threads.
- POK_NEEDS_PORTS_VIRTUAL: activate functions for virtual
ports management. Virtual ports are handled by the kernel. So,
activated functions in the libpok are just system call to the kernel to
get the port routing policy. Since virtual ports represent ports that
are located on other nodes, this maccro should be used only by
partitions that actually implement network device drivers.
- POK_NEEDS_PORTS_SAMPLING: activate interfacing functions with the
kernel to use sampling ports.
- POK_NEEDS_PORTS_QUEUEING: activate interfacing functions
with the kernel to use queueing ports.
- POK_NEEDS_ALLOCATOR : activate the memory allocator of the
partition. This service can be configured with
POK_CONFIG_ALLOCATOR... macros.
- POK_NEEDS_ARINC653_PROCESS: activate the process service of
the ARINC653 layer.
- POK_NEEDS_ARINC653_BLACKBOARD: activate the blackboard
service of the ARINC653 layer
- POK_NEEDS_ARINC653_BUFFER:
activate the buffer service of the ARINC653 layer.
- POK_NEEDS_ARINC653_SEMAPHORE:
activate the semaphore service of the ARINC653 layer.
- POK_NEEDS_ARINC653_QUEUEING:
activate the queueing service of the ARINC653 layer.
- POK_NEEDS_ARINC653_SAMPLING:
activate the sampling ports service of the ARINC653 layer.
- POK_NEEDS_ARINC653_ERROR:
activate the error service of the ARINC653 layer (health monitoring
functions)
- POK_NEEDS_BLACKBOARDS:
activate the blackboard service of POK (intra-partition communication)
- POK_NEEDS_SEMAPHORES:
activate the semaphore service of POK (intra-partition communication)
- POK_NEEDS_BUFFERS:
activate the buffer service of POK (intra-partition communication)
- POK_NEEDS_ERROR_HANDLING:
activate the error handling service in POK.
- POK_NEEDS_DEBUG:
activate debug mode.
- POK_NEEDS_LIBMATH:
activate the libmath, functions that are available in regular service
by passing the -lm flag to the compiler. See
libpok/include/libm.h file for the list of functions.
Copyright 2009 POK Team