Changeset 4175abd in rtems


Ignore:
Timestamp:
Jun 17, 2008, 8:51:23 PM (11 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.9, master
Children:
42b1fe6e
Parents:
f2a776ac
Message:

2008-06-17 Joel Sherrill <joel.sherrill@…>

  • sapi/include/confdefs.h: When you disabled newlib reentrancy, it still reserved memory for the reentrancy structure. This is about 1K per task. On psim, we now reserve only 1936 bytes and only 240 remain after all allocations. Further analysis will be required to narrow that down. In addition, the new constant CONFIGURE_CONFDEFS_DEBUG can be defined and the structure named Configuration_Memory_Debug will be instantiated. This structure contains many of the component values that go into the memory reservation computation. This is helpful when tracking down problems.
Location:
cpukit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    rf2a776ac r4175abd  
     12008-06-17      Joel Sherrill <joel.sherrill@oarcorp.com>
     2
     3        * sapi/include/confdefs.h: When you disabled newlib reentrancy, it
     4        still reserved memory for the reentrancy structure. This is about 1K
     5        per task. On psim, we now reserve only 1936 bytes and only 240 remain
     6        after all allocations. Further analysis will be required to narrow
     7        that down. In addition, the new constant CONFIGURE_CONFDEFS_DEBUG can
     8        be defined and the structure named Configuration_Memory_Debug will be
     9        instantiated. This structure contains many of the component values
     10        that go into the memory reservation computation. This is helpful when
     11        tracking down problems.
     12
    1132008-06-17      Joel Sherrill <joel.sherrill@oarcorp.com>
    214
  • cpukit/sapi/include/confdefs.h

    rf2a776ac r4175abd  
    152152#ifndef CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
    153153  #define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK \
    154                     IMFS_MEMFILE_DEFAULT_BYTES_PER_BLOCK
     154                    IMFS_MEMFILE_DEFAULT_BYTES_PER_BLOCK
    155155#endif
    156156#ifdef CONFIGURE_INIT
     
    172172
    173173    const rtems_filesystem_mount_table_t
    174         *rtems_filesystem_mount_table = &configuration_mount_table;
     174        *rtems_filesystem_mount_table = &configuration_mount_table;
    175175    const int rtems_filesystem_mount_table_size = 1;
    176176  #endif
     
    537537      NULL_DRIVER_TABLE_ENTRY
    538538    #elif !defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) && \
    539         !defined(CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER) && \
    540         !defined(CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER) && \
    541         !defined(CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER) && \
    542         !defined(CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER) && \
    543         !defined(CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER) && \
    544         !defined(CONFIGURE_APPLICATION_EXTRA_DRIVERS)
     539        !defined(CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER) && \
     540        !defined(CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER) && \
     541        !defined(CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER) && \
     542        !defined(CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER) && \
     543        !defined(CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER) && \
     544        !defined(CONFIGURE_APPLICATION_EXTRA_DRIVERS)
    545545      NULL_DRIVER_TABLE_ENTRY
    546546    #endif
     
    618618      };
    619619      int rtems_bdbuf_configuration_size =( sizeof(rtems_bdbuf_configuration)
    620                                 /sizeof(rtems_bdbuf_configuration[0]));
     620                                /sizeof(rtems_bdbuf_configuration[0]));
    621621    #endif /* CONFIGURE_INIT */
    622622  #endif /* CONFIGURE_HAS_OWN_BDBUF_TABLE        */
     
    638638
    639639      #ifndef CONFIGURE_MP_MAXIMUM_NODES
    640         #define CONFIGURE_MP_MAXIMUM_NODES              2
     640        #define CONFIGURE_MP_MAXIMUM_NODES              2
    641641      #endif
    642642
    643643      #ifndef CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
    644         #define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS     32
     644        #define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS     32
    645645      #endif
    646646      #define CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(_global_objects) \
    647         _Configure_Object_RAM((_global_objects), sizeof(Objects_MP_Control))
     647        _Configure_Object_RAM((_global_objects), sizeof(Objects_MP_Control))
    648648
    649649      #ifndef CONFIGURE_MP_MAXIMUM_PROXIES
    650         #define CONFIGURE_MP_MAXIMUM_PROXIES            32
     650        #define CONFIGURE_MP_MAXIMUM_PROXIES            32
    651651      #endif
    652652      #define CONFIGURE_MEMORY_FOR_PROXIES(_proxies) \
    653         _Configure_Object_RAM((_proxies) + 1, sizeof(Thread_Proxy_control) )
     653        _Configure_Object_RAM((_proxies) + 1, sizeof(Thread_Proxy_control) )
    654654
    655655      #ifndef CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
    656         #define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK 0
     656        #define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK 0
    657657      #endif
    658658
    659659      #ifndef CONFIGURE_MP_MPCI_TABLE_POINTER
    660         #include <mpci.h>
    661         #define CONFIGURE_MP_MPCI_TABLE_POINTER         &MPCI_table
     660        #include <mpci.h>
     661        #define CONFIGURE_MP_MPCI_TABLE_POINTER         &MPCI_table
    662662      #endif
    663663
    664664      #ifdef CONFIGURE_INIT
    665         rtems_multiprocessing_table Multiprocessing_configuration = {
    666           CONFIGURE_MP_NODE_NUMBER,               /* local node number */
    667           CONFIGURE_MP_MAXIMUM_NODES,             /* maximum # nodes */
    668           CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS,    /* maximum # global objects */
    669           CONFIGURE_MP_MAXIMUM_PROXIES,           /* maximum # proxies */
    670           CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK, /* MPCI stack > minimum */
    671           CONFIGURE_MP_MPCI_TABLE_POINTER         /* ptr to MPCI config table */
    672         };
     665        rtems_multiprocessing_table Multiprocessing_configuration = {
     666          CONFIGURE_MP_NODE_NUMBER,               /* local node number */
     667          CONFIGURE_MP_MAXIMUM_NODES,             /* maximum # nodes */
     668          CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS,    /* maximum # global objects */
     669          CONFIGURE_MP_MAXIMUM_PROXIES,           /* maximum # proxies */
     670          CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK, /* MPCI stack > minimum */
     671          CONFIGURE_MP_MPCI_TABLE_POINTER         /* ptr to MPCI config table */
     672        };
    673673      #endif
    674674
     
    898898
    899899  #define CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API \
    900     ( \
     900    _Configure_From_workspace( \
    901901      sizeof (POSIX_API_Control) + \
    902902     (sizeof (void *) * (CONFIGURE_MAXIMUM_POSIX_KEYS)) \
     
    917917    #define CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES(_condvars) \
    918918        _Configure_Object_RAM(_condvars, \
    919                             sizeof(POSIX_Condition_variables_Control) )
     919                            sizeof(POSIX_Condition_variables_Control) )
    920920  #endif
    921921
     
    942942    #define CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS(_queued_signals) \
    943943      _Configure_From_workspace( \
    944         (_queued_signals) * (sizeof(POSIX_signals_Siginfo_node)) )
     944        (_queued_signals) * (sizeof(POSIX_signals_Siginfo_node)) )
    945945  #endif
    946946
     
    951951    #define CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES(_message_queues) \
    952952      _Configure_POSIX_Named_Object_RAM( \
    953         _message_queues, sizeof(POSIX_Message_queue_Control) )
     953        _message_queues, sizeof(POSIX_Message_queue_Control) )
    954954  #endif
    955955
     
    960960    #define CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES(_semaphores) \
    961961      _Configure_POSIX_Named_Object_RAM( \
    962         _semaphores, sizeof(POSIX_Semaphore_Control) )
     962        _semaphores, sizeof(POSIX_Semaphore_Control) )
    963963  #endif
    964964
     
    999999
    10001000      #ifndef CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
    1001         #define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT   POSIX_Init
     1001        #define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT   POSIX_Init
    10021002      #endif
    10031003
    10041004      #ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
    1005         #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \
     1005        #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \
    10061006                (CONFIGURE_MINIMUM_TASK_STACK_SIZE * 2)
    10071007      #endif
    10081008
    10091009      #ifdef CONFIGURE_INIT
    1010         posix_initialization_threads_table POSIX_Initialization_threads[] = {
    1011           { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, \
    1012               CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE }
    1013         };
     1010        posix_initialization_threads_table POSIX_Initialization_threads[] = {
     1011          { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, \
     1012              CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE }
     1013        };
    10141014      #endif
    10151015
     
    10181018
    10191019      #define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE \
    1020         sizeof(CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME) / \
    1021             sizeof(posix_initialization_threads_table)
     1020        sizeof(CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME) / \
     1021            sizeof(posix_initialization_threads_table)
    10221022
    10231023    #endif    /* CONFIGURE_POSIX_HAS_OWN_INIT_TASK_TABLE */
     
    10311031
    10321032  #define CONFIGURE_MEMORY_FOR_POSIX \
    1033     ( \
    1034       CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( CONFIGURE_MAXIMUM_POSIX_MUTEXES ) + \
     1033    ( CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( CONFIGURE_MAXIMUM_POSIX_MUTEXES ) + \
    10351034      CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES( \
    1036           CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES ) + \
     1035          CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES ) + \
    10371036      CONFIGURE_MEMORY_FOR_POSIX_KEYS( CONFIGURE_MAXIMUM_POSIX_KEYS ) + \
    10381037      CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS( \
    1039           CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ) + \
     1038          CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ) + \
    10401039      CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES( \
    1041           CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES ) + \
     1040          CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES ) + \
    10421041      CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES( \
    1043           CONFIGURE_MAXIMUM_POSIX_SEMAPHORES ) + \
     1042          CONFIGURE_MAXIMUM_POSIX_SEMAPHORES ) + \
    10441043      CONFIGURE_MEMORY_FOR_POSIX_BARRIERS(CONFIGURE_MAXIMUM_POSIX_BARRIERS) + \
    10451044      CONFIGURE_MEMORY_FOR_POSIX_SPINLOCKS( \
    1046           CONFIGURE_MAXIMUM_POSIX_SPINLOCKS ) + \
     1045          CONFIGURE_MAXIMUM_POSIX_SPINLOCKS ) + \
    10471046      CONFIGURE_MEMORY_FOR_POSIX_RWLOCKS( \
    1048           CONFIGURE_MAXIMUM_POSIX_RWLOCKS ) + \
     1047          CONFIGURE_MAXIMUM_POSIX_RWLOCKS ) + \
    10491048      CONFIGURE_MEMORY_FOR_POSIX_TIMERS( CONFIGURE_MAXIMUM_POSIX_TIMERS ) + \
    10501049      (CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE) \
     
    11561155    #define CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS(_message_buffers) \
    11571156      _Configure_Object_RAM(_message_buffers, \
    1158         sizeof(ITRON_Message_buffer_Control))
     1157        sizeof(ITRON_Message_buffer_Control))
    11591158  #endif
    11601159
     
    11951194
    11961195      #ifndef CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT
    1197         #define CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT   ITRON_Init
     1196        #define CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT   ITRON_Init
    11981197      #endif
    11991198
    12001199      #ifndef CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES
    1201         #define CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES    TA_HLNG
     1200        #define CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES    TA_HLNG
    12021201      #endif
    12031202
    12041203      #ifndef CONFIGURE_ITRON_INIT_TASK_PRIORITY
    1205         #define CONFIGURE_ITRON_INIT_TASK_PRIORITY      1
     1204        #define CONFIGURE_ITRON_INIT_TASK_PRIORITY      1
    12061205      #endif
    12071206
    12081207      #ifndef CONFIGURE_ITRON_INIT_TASK_STACK_SIZE
    1209         #define CONFIGURE_ITRON_INIT_TASK_STACK_SIZE \
     1208        #define CONFIGURE_ITRON_INIT_TASK_STACK_SIZE \
    12101209                CONFIGURE_MINIMUM_TASK_STACK_SIZE
    12111210      #endif
    12121211
    12131212      #ifdef CONFIGURE_INIT
    1214         itron_initialization_tasks_table ITRON_Initialization_tasks[] = {
    1215           { 1,                                    /* ID */
    1216             { (VP) 0,                                /* exinfo */
    1217               CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES,  /* task attributes */
    1218               CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT, /* task start address */
    1219               CONFIGURE_ITRON_INIT_TASK_PRIORITY,    /* initial task priority */
    1220               CONFIGURE_ITRON_INIT_TASK_STACK_SIZE   /* stack size */
    1221             }
    1222           }
    1223         };
     1213        itron_initialization_tasks_table ITRON_Initialization_tasks[] = {
     1214          { 1,                                    /* ID */
     1215            { (VP) 0,                                /* exinfo */
     1216              CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES,  /* task attributes */
     1217              CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT, /* task start address */
     1218              CONFIGURE_ITRON_INIT_TASK_PRIORITY,    /* initial task priority */
     1219              CONFIGURE_ITRON_INIT_TASK_STACK_SIZE   /* stack size */
     1220            }
     1221          }
     1222        };
    12241223      #endif
    12251224
     
    12271226
    12281227      #define CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE \
    1229         sizeof(CONFIGURE_ITRON_INIT_TASK_TABLE_NAME) / \
    1230             sizeof(itron_initialization_tasks_table)
     1228        sizeof(CONFIGURE_ITRON_INIT_TASK_TABLE_NAME) / \
     1229            sizeof(itron_initialization_tasks_table)
    12311230
    12321231    #endif    /* CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE */
     
    12411240
    12421241  #define CONFIGURE_MEMORY_FOR_ITRON \
    1243     ( \
    1244       CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES( \
    1245           CONFIGURE_MAXIMUM_ITRON_SEMAPHORES ) + \
     1242    ( CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES( \
     1243          CONFIGURE_MAXIMUM_ITRON_SEMAPHORES ) + \
    12461244      CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS( \
    1247           CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS ) + \
     1245          CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS ) + \
    12481246      CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES( \
    1249           CONFIGURE_MAXIMUM_ITRON_MAILBOXES ) + \
     1247          CONFIGURE_MAXIMUM_ITRON_MAILBOXES ) + \
    12501248      CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS( \
    1251           CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS ) + \
     1249          CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS ) + \
    12521250      CONFIGURE_MEMORY_FOR_ITRON_PORTS( \
    1253           CONFIGURE_MAXIMUM_ITRON_PORTS ) + \
     1251          CONFIGURE_MAXIMUM_ITRON_PORTS ) + \
    12541252      CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS( \
    1255           CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS ) + \
     1253          CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS ) + \
    12561254      CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS( \
    1257           CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS ) + \
     1255          CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS ) + \
    12581256      CONFIGURE_ITRON_INIT_TASK_STACK_SIZE \
    12591257     )
     
    12741272#endif    /* RTEMS_ITRON_API */
    12751273
    1276 #if defined(RTEMS_NEWLIB)
     1274/**
     1275 *  This macro specifies the amount of memory to be reserved for the
     1276 *  Newlib C Library reentrancy structure -- if we are using newlib.
     1277 */
     1278
     1279#if (defined(RTEMS_NEWLIB) && !defined(CONFIGURE_DISABLE_NEWLIB_REENTRANCY))
    12771280  #include <reent.h>
    12781281
    1279   #define CONFIGURE_MEMORY_PER_TASK_FOR_LIBC_REENTRANCY sizeof(struct _reent)
     1282  #define CONFIGURE_MEMORY_PER_TASK_FOR_NEWLIB \
     1283    _Configure_From_workspace(sizeof(struct _reent))
    12801284#else
    1281   #define CONFIGURE_MEMORY_PER_TASK_FOR_LIBC_REENTRANCY 0
     1285  #define CONFIGURE_MEMORY_PER_TASK_FOR_NEWLIB 0
    12821286#endif
    12831287
     
    13011305   (_Configure_From_workspace(CONFIGURE_MINIMUM_TASK_STACK_SIZE) + \
    13021306    _Configure_From_workspace(CONFIGURE_MEMORY_PER_TASK_FOR_CLASSIC_API) + \
    1303     _Configure_From_workspace(CONFIGURE_MEMORY_PER_TASK_FOR_LIBC_REENTRANCY) + \
    1304     _Configure_From_workspace(CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API) + \
    1305     _Configure_From_workspace(CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API)))  + \
     1307    CONFIGURE_MEMORY_PER_TASK_FOR_NEWLIB + \
     1308    CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API + \
     1309    CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API))  + \
    13061310  _Configure_From_workspace((_number_FP_tasks) * CONTEXT_FP_SIZE) \
    13071311 )
     
    13961400
    13971401/**
     1402 *  This defines the memory used by the thread ready chains.  There is
     1403 *  one chain per priority.
     1404 */
     1405#define CONFIGURE_MEMORY_FOR_THREAD_READY_CHAINS \
     1406    _Configure_From_workspace( \
     1407        ((CONFIGURE_MAXIMUM_PRIORITY+1) * sizeof(Chain_Control)) )
     1408/**
     1409 *  This defines the amount of memory reserved for the IDLE task
     1410 *  control structures and stack.
     1411 */
     1412#define CONFIGURE_MEMORY_FOR_IDLE_TASK \
     1413    (CONFIGURE_MEMORY_FOR_TASKS(1, 0) + \
     1414     (CONFIGURE_IDLE_TASK_STACK_SIZE - CONFIGURE_MINIMUM_TASK_STACK_SIZE))
     1415
     1416/**
    13981417 *  This macro accounts for general RTEMS system overhead.
    13991418 */
    14001419#define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD \
    1401   ( \
    1402     CONFIGURE_MEMORY_FOR_TASKS(1, 0) +              /* IDLE and stack */ \
    1403     (CONFIGURE_IDLE_TASK_STACK_SIZE - CONFIGURE_MINIMUM_TASK_STACK_SIZE) + \
    1404     _Configure_From_workspace(                        /* Ready chains */ \
    1405         ((CONFIGURE_MAXIMUM_PRIORITY+1) * sizeof(Chain_Control)) ) + \
    1406     CONFIGURE_INTERRUPT_VECTOR_TABLE +           /* interrupt vectors */ \
     1420  ( CONFIGURE_MEMORY_FOR_IDLE_TASK +                /* IDLE and stack */ \
     1421    CONFIGURE_MEMORY_FOR_THREAD_READY_CHAINS +     /* Ready chains */ \
     1422    CONFIGURE_INTERRUPT_VECTOR_TABLE +             /* interrupt vectors */ \
    14071423    CONFIGURE_INTERRUPT_STACK_MEMORY +             /* interrupt stack */ \
    1408     CONFIGURE_API_MUTEX_MEMORY                    /* allocation mutex */ \
     1424    CONFIGURE_API_MUTEX_MEMORY                     /* allocation mutex */ \
    14091425  )
    14101426
     
    14961512  )
    14971513
    1498 #if 1 && defined(CONFIGURE_INIT)
     1514#if defined(CONFIGURE_CONFDEFS_DEBUG) && defined(CONFIGURE_INIT)
    14991515  /**
    15001516   *  This is a debug mechanism, so if you need to, the executable will
     
    15051521   */
    15061522  typedef struct {
    1507     uint32_t Classic;
     1523    uint32_t SYSTEM_OVERHEAD;
     1524    uint32_t STATIC_EXTENSIONS;
     1525    uint32_t INITIALIZATION_THREADS_STACKS;
     1526
     1527    uint32_t CLASSIC;
     1528    uint32_t POSIX;
    15081529    uint32_t ITRON;
    1509     uint32_t POSIX;
    1510     uint32_t TASKS;
    1511     uint32_t INIT_TASK_STACKS;
    1512     uint32_t CLASSIC_SEMAPHORES;
     1530
     1531    /* System overhead pieces */
     1532    uint32_t INTERRUPT_VECTOR_TABLE;
     1533    uint32_t INTERRUPT_STACK_MEMORY;
     1534    uint32_t THREAD_READY_CHAINS;
     1535    uint32_t MEMORY_FOR_IDLE_TASK;
     1536
     1537    /* Classic API Pieces */
     1538    uint32_t TASK_VARIABLES;
     1539    uint32_t TIMERS;
     1540    uint32_t SEMAPHORES;
     1541    uint32_t MESSAGE_QUEUES;
     1542    uint32_t PARTITIONS;
     1543    uint32_t REGIONS;
     1544    uint32_t PORTS;
     1545    uint32_t PERIODS;
     1546    uint32_t BARRIERS;
     1547    uint32_t USER_EXTENSIONS;
     1548#ifdef RTEMS_POSIX_API
     1549    /* POSIX API Pieces */
     1550    uint32_t POSIX_MUTEXES;
     1551    uint32_t POSIX_CONDITION_VARIABLES;
     1552    uint32_t POSIX_KEYS;
     1553    uint32_t POSIX_TIMERS;
     1554    uint32_t POSIX_QUEUED_SIGNALS;
     1555    uint32_t POSIX_MESSAGE_QUEUES;
     1556    uint32_t POSIX_SEMAPHORES;
     1557    uint32_t POSIX_BARRIERS;
     1558    uint32_t POSIX_SPINLOCKS;
     1559    uint32_t POSIX_RWLOCKS;
     1560#endif
     1561#ifdef RTEMS_ITRON_API
     1562    /* ITRON API Pieces */
     1563    uint32_t ITRON_SEMAPHORES;
     1564    uint32_t ITRON_EVENTFLAGS;
     1565    uint32_t ITRON_MAILBOXES;
     1566    uint32_t ITRON_MESSAGE_BUFFERS;
     1567    uint32_t ITRON_PORTS;
     1568    uint32_t ITRON_MEMORY_POOLS;
     1569    uint32_t ITRON_FIXED_MEMORY_POOLS;
     1570#endif
    15131571  } Configuration_Debug_t;
    15141572
    15151573  Configuration_Debug_t Configuration_Memory_Debug = {
    1516     CONFIGURE_MEMORY_FOR_CLASSIC, /* MEMORY_CLASSIC */
    1517     CONFIGURE_MEMORY_FOR_ITRON,   /* MEMORY_ITRON */
    1518     CONFIGURE_MEMORY_FOR_POSIX,   /* MEMORY_POSIX */
    1519     CONFIGURE_MEMORY_FOR_TASKS(   /* MEMORY_TASKS */
    1520         CONFIGURE_TOTAL_TASKS_AND_THREADS, CONFIGURE_TOTAL_TASKS_AND_THREADS),
    1521     CONFIGURE_INITIALIZATION_THREADS_STACKS, /* INIT_TASK_STACKS */
    1522     CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES + \
    1523       CONFIGURE_LIBIO_SEMAPHORES + CONFIGURE_TERMIOS_SEMAPHORES)
     1574    /* General Information */
     1575    CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD,
     1576    CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS,
     1577    CONFIGURE_INITIALIZATION_THREADS_STACKS,
     1578    CONFIGURE_MEMORY_FOR_CLASSIC,
     1579    CONFIGURE_MEMORY_FOR_POSIX,
     1580    CONFIGURE_MEMORY_FOR_ITRON,
     1581
     1582    /* System overhead pieces */
     1583    CONFIGURE_INTERRUPT_VECTOR_TABLE,
     1584    CONFIGURE_INTERRUPT_STACK_MEMORY,
     1585    CONFIGURE_MEMORY_FOR_THREAD_READY_CHAINS,
     1586    CONFIGURE_MEMORY_FOR_IDLE_TASK,
     1587
     1588    /* Classic API Pieces */
     1589    CONFIGURE_MEMORY_FOR_TASK_VARIABLES(CONFIGURE_MAXIMUM_TASK_VARIABLES),
     1590    CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS),
     1591    CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES +
     1592       CONFIGURE_LIBIO_SEMAPHORES + CONFIGURE_TERMIOS_SEMAPHORES),
     1593    CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES),
     1594    CONFIGURE_MEMORY_FOR_PARTITIONS(CONFIGURE_MAXIMUM_PARTITIONS),
     1595    CONFIGURE_MEMORY_FOR_REGIONS( CONFIGURE_MAXIMUM_REGIONS ),
     1596    CONFIGURE_MEMORY_FOR_PORTS(CONFIGURE_MAXIMUM_PORTS),
     1597    CONFIGURE_MEMORY_FOR_PERIODS(CONFIGURE_MAXIMUM_PERIODS),
     1598    CONFIGURE_MEMORY_FOR_BARRIERS(CONFIGURE_MAXIMUM_BARRIERS),
     1599    CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(CONFIGURE_MAXIMUM_USER_EXTENSIONS),
     1600
     1601#ifdef RTEMS_POSIX_API
     1602    /* POSIX API Pieces */
     1603    CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( CONFIGURE_MAXIMUM_POSIX_MUTEXES ),
     1604    CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES(
     1605      CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES ),
     1606    CONFIGURE_MEMORY_FOR_POSIX_KEYS( CONFIGURE_MAXIMUM_POSIX_KEYS ),
     1607    CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS(
     1608      CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ),
     1609    CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES(
     1610      CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES ),
     1611    CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES( CONFIGURE_MAXIMUM_POSIX_SEMAPHORES ),
     1612    CONFIGURE_MEMORY_FOR_POSIX_BARRIERS( CONFIGURE_MAXIMUM_POSIX_BARRIERS ),
     1613    CONFIGURE_MEMORY_FOR_POSIX_SPINLOCKS( CONFIGURE_MAXIMUM_POSIX_SPINLOCKS ),
     1614    CONFIGURE_MEMORY_FOR_POSIX_RWLOCKS( CONFIGURE_MAXIMUM_POSIX_RWLOCKS ),
     1615    CONFIGURE_MEMORY_FOR_POSIX_TIMERS( CONFIGURE_MAXIMUM_POSIX_TIMERS ),
     1616#endif
     1617
     1618#ifdef RTEMS_ITRON_API
     1619    /* ITRON API Pieces */
     1620    CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES( CONFIGURE_MAXIMUM_ITRON_SEMAPHORES ),
     1621    CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS( CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS ),
     1622    CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES( CONFIGURE_MAXIMUM_ITRON_MAILBOXES ),
     1623    CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS(
     1624        CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS ),
     1625    CONFIGURE_MEMORY_FOR_ITRON_PORTS( CONFIGURE_MAXIMUM_ITRON_PORTS ),
     1626    CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS(
     1627        CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS ),
     1628    CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS(
     1629        CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS ),
     1630#endif
    15241631  };
    15251632#endif
     
    15731680      CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS,
    15741681      CONFIGURE_MAXIMUM_POSIX_MUTEXES + CONFIGURE_GNAT_MUTEXES +
    1575         CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS,
     1682        CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS,
    15761683      CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES +
    1577         CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS,
     1684        CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS,
    15781685      CONFIGURE_MAXIMUM_POSIX_KEYS,
    15791686      CONFIGURE_MAXIMUM_POSIX_TIMERS,
     
    16901797      void _POSIX_Threads_Initialize_user_threads_body(void);
    16911798      void (*_POSIX_Threads_Initialize_user_threads_p)(void) =
    1692                 _POSIX_Threads_Initialize_user_threads_body;
     1799                _POSIX_Threads_Initialize_user_threads_body;
    16931800    #else
    16941801      void (*_POSIX_Threads_Initialize_user_threads_p)(void) = NULL;
     
    17061813      void _ITRON_Task_Initialize_user_tasks_body(void);
    17071814      void (*_ITRON_Initialize_user_tasks_p)(void) =
    1708                 _ITRON_Task_Initialize_user_tasks_body;
     1815                _ITRON_Task_Initialize_user_tasks_body;
    17091816    #else
    17101817      void (*_ITRON_Initialize_user_tasks_p)(void) = NULL;
Note: See TracChangeset for help on using the changeset viewer.