RTEMS
5.1
|
The information structure used to manage each API class of objects. More...
#include <objectdata.h>
Data Fields | |
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().
Objects_Control*( * Objects_Information::allocate) (Objects_Information *) |
Allocate an object.
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.
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().
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.
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.
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.
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.
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.
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).
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.
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.
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.