RTEMS CPU Kit with SuperCore  4.11.2
Data Structures | Macros | Typedefs | Enumerations | Functions
object.h File Reference

Constants and Structures Associated with the Object Handler. More...

#include <rtems/score/basedefs.h>
#include <rtems/score/cpu.h>
#include <rtems/score/chain.h>
Include dependency graph for object.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  Objects_Name
 The following type defines the control block used to manage object names. More...
 
struct  Objects_Control
 The following defines the Object Control Block used to manage each object local to this node. More...
 

Macros

#define OBJECTS_INDEX_START_BIT   0U
 This is the bit position of the starting bit of the index portion of the object Id.
 
#define OBJECTS_NODE_START_BIT   16U
 This is the bit position of the starting bit of the node portion of the object Id.
 
#define OBJECTS_API_START_BIT   24U
 This is the bit position of the starting bit of the API portion of the object Id.
 
#define OBJECTS_CLASS_START_BIT   27U
 This is the bit position of the starting bit of the class portion of the object Id.
 
#define OBJECTS_INDEX_MASK   (Objects_Id)0x0000ffffU
 This mask is used to extract the index portion of an object Id.
 
#define OBJECTS_NODE_MASK   (Objects_Id)0x00ff0000U
 This mask is used to extract the node portion of an object Id.
 
#define OBJECTS_API_MASK   (Objects_Id)0x07000000U
 This mask is used to extract the API portion of an object Id.
 
#define OBJECTS_CLASS_MASK   (Objects_Id)0xf8000000U
 This mask is used to extract the class portion of an object Id.
 
#define OBJECTS_INDEX_VALID_BITS   (Objects_Id)0x0000ffffU
 This mask represents the bits that is used to ensure no extra bits are set after shifting to extract the index portion of an object Id.
 
#define OBJECTS_NODE_VALID_BITS   (Objects_Id)0x000000ffU
 This mask represents the bits that is used to ensure no extra bits are set after shifting to extract the node portion of an object Id.
 
#define OBJECTS_API_VALID_BITS   (Objects_Id)0x00000007U
 This mask represents the bits that is used to ensure no extra bits are set after shifting to extract the API portion of an object Id.
 
#define OBJECTS_CLASS_VALID_BITS   (Objects_Id)0x0000001fU
 This mask represents the bits that is used to ensure no extra bits are set after shifting to extract the class portion of an object Id.
 
#define OBJECTS_UNLIMITED_OBJECTS   0x80000000U
 Mask to enable unlimited objects. More...
 
#define OBJECTS_ID_INITIAL_INDEX   (0)
 This is the lowest value for the index portion of an object Id.
 
#define OBJECTS_ID_FINAL_INDEX   (0xffffU)
 This is the highest value for the index portion of an object Id.
 
#define OBJECTS_APIS_LAST   OBJECTS_POSIX_API
 This macro is used to generically specify the last API index. More...
 
#define OBJECTS_ID_NONE   0
 No object can have this ID.
 
#define OBJECTS_ID_OF_SELF   ((Objects_Id) 0)
 The following defines the constant which may be used with _Objects_Get to manipulate the calling task.
 
#define OBJECTS_SEARCH_ALL_NODES   0
 The following constant is used to specify that a name to ID search should search through all nodes.
 
#define OBJECTS_SEARCH_OTHER_NODES   0x7FFFFFFE
 The following constant is used to specify that a name to ID search should search through all nodes except the current node.
 
#define OBJECTS_SEARCH_LOCAL_NODE   0x7FFFFFFF
 The following constant is used to specify that a name to ID search should search only on this node.
 
#define OBJECTS_WHO_AM_I   0
 The following constant is used to specify that a name to ID search is being asked for the ID of the currently executing task.
 
#define OBJECTS_ID_INITIAL(_api, _class, _node)   _Objects_Build_id( (_api), (_class), (_node), OBJECTS_ID_INITIAL_INDEX )
 This macros calculates the lowest ID for the specified api, class, and node.
 
#define OBJECTS_ID_FINAL   ((Objects_Id)~0)
 This macro specifies the highest object ID value.
 
#define _Objects_Build_name(_C1, _C2, _C3, _C4)
 This macro is used to build a thirty-two bit style name from four characters. More...
 
#define _Objects_Maximum_per_allocation(maximum)   ((Objects_Maximum) ((maximum) & ~OBJECTS_UNLIMITED_OBJECTS))
 

Typedefs

typedef uint32_t Objects_Id
 The following type defines the control block used to manage object IDs. More...
 
typedef uint16_t Objects_Maximum
 This type is used to store the maximum number of allowed objects of each type.
 

Enumerations

enum  Objects_APIs {
  OBJECTS_NO_API = 0, OBJECTS_INTERNAL_API = 1, OBJECTS_CLASSIC_API = 2, OBJECTS_POSIX_API = 3,
  OBJECTS_FAKE_OBJECTS_API = 7
}
 This enumerated type is used in the class field of the object ID.
 

Functions

RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API (Objects_Id id)
 This function returns the API portion of the ID. More...
 
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class (Objects_Id id)
 This function returns the class portion of the ID. More...
 
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_node (Objects_Id id)
 This function returns the node portion of the ID. More...
 
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_index (Objects_Id id)
 This function returns the index portion of the ID. More...
 
RTEMS_INLINE_ROUTINE Objects_Id _Objects_Build_id (Objects_APIs the_api, uint16_t the_class, uint8_t node, uint16_t index)
 This function builds an object's id from the processor node and index values specified. More...
 
RTEMS_INLINE_ROUTINE bool _Objects_Is_unlimited (uint32_t maximum)
 Returns if the object maximum specifies unlimited objects. More...
 

Detailed Description

Constants and Structures Associated with the Object Handler.

This include file contains all the constants and structures associated with the Object Handler. This Handler provides mechanisms which can be used to initialize and manipulate all objects which have ids.