summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-11-25 20:26:02 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-12-07 14:22:02 +0100
commitf70079ca20b11da6e481ddfeab4516545ec71cbd (patch)
tree1e0ed015de156f47708ca69b37b05c2eb9edabd4
parent1c2d17839760b0d8ad5a02e4c84bd8f99fac4e98 (diff)
score: Remove Objects_Information::the_api
Remove Objects_Information::the_class. This information is already contained in Objects_Information::maximum_id. Update #3621.
-rw-r--r--cpukit/include/rtems/score/objectimpl.h4
-rw-r--r--cpukit/score/src/objectextendinformation.c18
-rw-r--r--cpukit/score/src/objectinitializeinformation.c8
3 files changed, 12 insertions, 18 deletions
diff --git a/cpukit/include/rtems/score/objectimpl.h b/cpukit/include/rtems/score/objectimpl.h
index cf670b9c98..e32533c8f3 100644
--- a/cpukit/include/rtems/score/objectimpl.h
+++ b/cpukit/include/rtems/score/objectimpl.h
@@ -137,10 +137,6 @@ typedef struct {
* (OBJECTS_NO_STRING_NAME).
*/
uint16_t name_length;
- /** This field indicates the API of this object class. */
- uint8_t the_api;
- /** This is the class of this object set. */
- uint8_t the_class;
/** This is the true if unlimited objects in this class. */
bool auto_extend;
/** This is the chain of inactive control blocks. */
diff --git a/cpukit/score/src/objectextendinformation.c b/cpukit/score/src/objectextendinformation.c
index 57ce6737ec..4e55bbc636 100644
--- a/cpukit/score/src/objectextendinformation.c
+++ b/cpukit/score/src/objectextendinformation.c
@@ -54,12 +54,14 @@ void _Objects_Extend_information(
size_t object_block_size;
Objects_Control *new_object_block;
bool do_extend;
+ Objects_Id api_class_and_node;
_Assert(
_Objects_Allocator_is_owner()
|| !_System_state_Is_up( _System_state_Get() )
);
+ api_class_and_node = information->maximum_id & ~OBJECTS_INDEX_MASK;
old_maximum = _Objects_Get_maximum_index( information );
/*
@@ -218,12 +220,8 @@ void _Objects_Extend_information(
information->object_blocks = object_blocks;
information->inactive_per_block = inactive_per_block;
information->local_table = local_table;
- information->maximum_id = _Objects_Build_id(
- information->the_api,
- information->the_class,
- _Objects_Local_node,
- new_maximum
- );
+ information->maximum_id = api_class_and_node
+ | (new_maximum << OBJECTS_INDEX_START_BIT);
_ISR_lock_ISR_enable( &lock_context );
@@ -244,12 +242,8 @@ void _Objects_Extend_information(
*/
the_object = new_object_block;
for ( index = index_base ; index < index_end ; ++index ) {
- the_object->id = _Objects_Build_id(
- information->the_api,
- information->the_class,
- _Objects_Local_node,
- index + OBJECTS_INDEX_MINIMUM
- );
+ the_object->id = api_class_and_node
+ | ( ( index + OBJECTS_INDEX_MINIMUM ) << OBJECTS_INDEX_START_BIT );
_Chain_Initialize_node( &the_object->Node );
_Chain_Append_unprotected( &information->Inactive, &the_object->Node );
diff --git a/cpukit/score/src/objectinitializeinformation.c b/cpukit/score/src/objectinitializeinformation.c
index c1327aece8..d51d5cfca6 100644
--- a/cpukit/score/src/objectinitializeinformation.c
+++ b/cpukit/score/src/objectinitializeinformation.c
@@ -39,8 +39,12 @@ void _Objects_Do_initialize_information(
{
Objects_Maximum maximum_per_allocation;
- information->the_api = the_api;
- information->the_class = the_class;
+ information->maximum_id = _Objects_Build_id(
+ the_api,
+ the_class,
+ _Objects_Local_node,
+ 0
+ );
information->object_size = object_size;
/*