Changeset d5154d0f in rtems for cpukit/sapi


Ignore:
Timestamp:
Dec 23, 2015, 8:44:02 PM (3 years ago)
Author:
Aun-Ali Zaidi <admin@…>
Branches:
master
Children:
2268ee6
Parents:
a48b7c44
git-author:
Aun-Ali Zaidi <admin@…> (12/23/15 20:44:02)
git-committer:
Joel Sherrill <joel.sherrill@…> (12/24/15 22:52:34)
Message:

api: Remove deprecated Notepads

Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.

In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:

  • 16 32-bit integers were allocated.
  • A total of 64 bytes per task per thread.

This is especially critical in low memory and safety-critical applications.

They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.

Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.

updates #2493.

Location:
cpukit/sapi/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/sapi/include/confdefs.h

    ra48b7c44 rd5154d0f  
    20862086    (CONFIGURE_MAXIMUM_TASKS + CONFIGURE_LIBBLOCK_TASKS)
    20872087
    2088   /*
    2089    * Classic API notepads are a deprecated feature and will be removed
    2090    * in a future release of RTEMS. Warn the user who uses them.
    2091    */
    2092   #if defined(CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS)
    2093     #warning "Classic API Notepads are deprecated and will be removed."
    2094   #endif
    2095   #if defined(CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS)
    2096     #warning "Classic API Notepads are deprecated and will be removed."
    2097   #endif
    2098 
    2099   /** This configuration parameter enables/disables Classic API notepads. */
    2100   #ifdef CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
    2101     #define CONFIGURE_NOTEPADS_ENABLED           TRUE
    2102   #else
    2103     #define CONFIGURE_NOTEPADS_ENABLED           FALSE
    2104   #endif
    2105 
    21062088  /**
    21072089   * This macro calculates the memory required for task variables.
     
    33023284    } Scheduler;
    33033285    RTEMS_API_Control API_RTEMS;
    3304     #if defined(CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS)
    3305       uint32_t Notepads[ RTEMS_NUMBER_NOTEPADS ] RTEMS_DEPRECATED;
    3306     #endif
    33073286    #ifdef RTEMS_POSIX_API
    33083287      POSIX_API_Control API_POSIX;
     
    33553334  rtems_api_configuration_table Configuration_RTEMS_API = {
    33563335    CONFIGURE_TASKS,
    3357     CONFIGURE_NOTEPADS_ENABLED,
    33583336    CONFIGURE_MAXIMUM_TIMERS + CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER,
    33593337    CONFIGURE_SEMAPHORES,
  • cpukit/sapi/include/rtems/extension.h

    ra48b7c44 rd5154d0f  
    8989 * available for the dynamic extensions. This set of pointers is an extension
    9090 * of the TCB and can be used to store additional data required by the user's
    91  * extension functions. It is also possible for a user extension to utilize the
    92  * notepad locations associated with each task although this may conflict with
    93  * application usage of those particular notepads.
     91 * extension functions.
    9492 *
    9593 * The TCB extension is an array of pointers in the TCB. The index into the
Note: See TracChangeset for help on using the changeset viewer.