17.2. Background#
17.2.1. Partition Manager Definitions#
A partition is a physically contiguous memory area divided into fixed-size buffers that can be dynamically allocated and deallocated.
Partitions are managed and maintained as a list of buffers. Buffers are obtained from the front of the partition’s free buffer chain and returned to the rear of the same chain. When a buffer is on the free buffer chain, RTEMS uses two pointers of memory from each buffer as the free buffer chain. When a buffer is allocated, the entire buffer is available for application use. Therefore, modifying memory that is outside of an allocated buffer could destroy the free buffer chain or the contents of an adjacent allocated buffer.
17.2.2. Building a Partition Attribute Set#
In general, an attribute set is built by a bitwise OR of the desired attribute components. The set of valid partition attributes is provided in the following table:
|
local partition (default) |
|
global partition |
Attribute values are specifically designed to be mutually exclusive, therefore
bitwise OR and addition operations are equivalent as long as each attribute
appears exactly once in the component list. An attribute listed as a default
is not required to appear in the attribute list, although it is a good
programming practice to specify default attributes. If all defaults are
desired, the attribute RTEMS_DEFAULT_ATTRIBUTES
should be specified on this
call. The attribute_set parameter should be RTEMS_GLOBAL
to indicate that
the partition is to be known globally.