RTEMS
|
The information structure used to manage each API class of objects. More...
#include <objectdata.h>
Public Attributes | |
Objects_Id | maximum_id |
This is the maximum valid ID of this object API class. More... | |
Objects_Control ** | local_table |
This points to the table of local object control blocks. More... | |
Objects_Control *(* | allocate )(Objects_Information *) |
Allocate an object. More... | |
void(* | deallocate )(Objects_Information *, Objects_Control *) |
Free an object. More... | |
Objects_Maximum | inactive |
This is the number of object control blocks on the inactive chain. More... | |
Objects_Maximum | objects_per_block |
This is the number of object control blocks in an allocation block. More... | |
uint16_t | object_size |
This is the size in bytes of each object control block. More... | |
uint16_t | name_length |
This is the maximum length of names. More... | |
Chain_Control | Inactive |
This is the chain of inactive object control blocks. More... | |
Objects_Maximum * | inactive_per_block |
This is the number of inactive object control blocks per allocation block. More... | |
Objects_Control ** | object_blocks |
This is a table to allocation blocks of object control blocks. More... | |
Objects_Control * | initial_objects |
This points to the object control blocks initially available. More... | |
The information structure used to manage each API class of objects.
If objects for the API class are configured, an instance of this structure is statically allocated and pre-initialized by OBJECTS_INFORMATION_DEFINE() through <rtems/confdefs.h>. The RTEMS library contains a statically allocated and pre-initialized instance for each API class providing zero objects, see OBJECTS_INFORMATION_DEFINE_ZERO().
Definition at line 176 of file objectdata.h.
Objects_Control*( * Objects_Information::allocate) (Objects_Information *) |
Allocate an object.
Definition at line 203 of file objectdata.h.
void( * Objects_Information::deallocate) (Objects_Information *, Objects_Control *) |
Free an object.
In case _Objects_Allocate_none() is used, then this may be the NULL pointer.
Definition at line 213 of file objectdata.h.
Objects_Maximum Objects_Information::inactive |
This is the number of object control blocks on the inactive chain.
This member is only used if unlimited objects are configured for this API class. It is used to trigger calls to _Objects_Shrink_information() in _Objects_Free().
Definition at line 222 of file objectdata.h.
Chain_Control Objects_Information::Inactive |
This is the chain of inactive object control blocks.
This member is statically initialized to an empty chain. The _Objects_Initialize_information() will populate this chain with the object control blocks initially configured.
Definition at line 256 of file objectdata.h.
Objects_Maximum* Objects_Information::inactive_per_block |
This is the number of inactive object control blocks per allocation block.
It is only used if unlimited objects are configured for this API class.
Definition at line 264 of file objectdata.h.
Objects_Control* Objects_Information::initial_objects |
This points to the object control blocks initially available.
This member is statically initialized and read-only. In case objects for this API class are configured, it points to a statically allocated table of object control blocks defined by <rtems/confdefs.h>, otherwise this member is NULL.
Definition at line 282 of file objectdata.h.
Objects_Control** Objects_Information::local_table |
This points to the table of local object control blocks.
This member is statically initialized. In case objects for this API class are configured, it initially points to a statically allocated table defined by <rtems/confdefs.h>. _Objects_Extend_information() may replace the table with a larger one on demand.
Definition at line 195 of file objectdata.h.
Objects_Id Objects_Information::maximum_id |
This is the maximum valid ID of this object API class.
This member is statically initialized and provides also the object API, class and multiprocessing node information.
It is used by _Objects_Get() to validate an object ID.
Definition at line 185 of file objectdata.h.
uint16_t Objects_Information::name_length |
This is the maximum length of names.
This member is statically initialized and read-only. A length of zero indicates that this API class has a no string name (OBJECTS_NO_STRING_NAME).
Definition at line 247 of file objectdata.h.
Objects_Control** Objects_Information::object_blocks |
This is a table to allocation blocks of object control blocks.
It is only used if unlimited objects are configured for this API class. The object control blocks extend and shrink by these allocation blocks.
Definition at line 272 of file objectdata.h.
uint16_t Objects_Information::object_size |
This is the size in bytes of each object control block.
This member is statically initialized and read-only.
Definition at line 238 of file objectdata.h.
Objects_Maximum Objects_Information::objects_per_block |
This is the number of object control blocks in an allocation block.
This member is statically initialized and read-only. It is only used if unlimited objects are configured for this API class. It defines the count of object control blocks used to extend and shrink this API class.
Definition at line 231 of file objectdata.h.