#3621: Statically initialize object information structures ------------------------------+----------------------------- Reporter: Sebastian Huber | Owner: Sebastian Huber Type: enhancement | Status: assigned Priority: normal | Milestone: 5.1 Component: score | Version: 5 Severity: normal | Keywords: Blocked By: | Blocking: ------------------------------+----------------------------- Statically initialize the object information structures to make the configuration easier to review and simplify the debugging.
The workspace size estimate generated by <rtems/confdefs.h> looks currently like this: {{{ const rtems_configuration_table Configuration = { ( ( ( (ssize_t) ((((((1 + 0) != 0 ? 1 : 0) * ((Objects_Maximum) ((1 + 0) & ~0x80000000U))) * (sizeof(Configuration_Thread_control))) != 0 ? 1 : 0) * ((((((1 + 0) != 0 ? 1 : 0) * ((Objects_Maximum) ((1 + 0) & ~0x80000000U))) * (sizeof(Configuration_Thread_control)) + (2 * sizeof(uintptr_t) + (sizeof(Heap_Protection_block_begin) + sizeof(Heap_Protection_block_end)))) + ((((sizeof(Heap_Block)) + (8) - 1) - ((sizeof(Heap_Block)) + (8) - 1) % (8))) - 1) - (((((1 + 0) != 0 ? 1 : 0) * ((Objects_Maximum) ((1 + 0) & ~0x80000000U))) * (sizeof(Configuration_Thread_control)) + (2 * sizeof(uintptr_t) + (sizeof(Heap_Protection_block_begin) + sizeof(Heap_Protection_block_end)))) + ((((sizeof(Heap_Block)) + (8) - 1) - ((sizeof(Heap_Block)) + (8) - 1) % (8))) }}} [more than 500 similar lines] {{{ 1) - (((sizeof(Configuration_Initial_Extensions) / sizeof((Configuration_Initial_Extensions)[0])) * sizeof(User_extensions_Switch_control) + (2 * sizeof(uintptr_t) + (sizeof(Heap_Protection_block_begin) + sizeof(Heap_Protection_block_end)))) + ((((sizeof(Heap_Block)) + (8) - 1) - ((sizeof(Heap_Block)) + (8) - 1) % (8))) - 1) % ((((sizeof(Heap_Block)) + (8) - 1) - ((sizeof(Heap_Block)) + (8) - 1) % (8)))))) + 0 + 0 + (0 * 1024) + ((((2 * sizeof(uintptr_t) + (sizeof(Heap_Protection_block_begin) + sizeof(Heap_Protection_block_end)))) + (8) - 1) - (((2 * sizeof(uintptr_t) + (sizeof(Heap_Protection_block_begin) + sizeof(Heap_Protection_block_end)))) + (8) - 1) % (8)) ), }}} The object controls reside on the heap even for fixed object count configuration. Using a statically allocated array makes it easier to find the objects during debugging. -- Ticket URL: <http://devel.rtems.org/ticket/3621> RTEMS Project <http://www.rtems.org/> RTEMS Project
_______________________________________________ bugs mailing list bugs@rtems.org http://lists.rtems.org/mailman/listinfo/bugs