[PATCH] cpukit: deprecate notepads
Gedare Bloom
gedare at rtems.org
Tue Mar 10 16:55:14 UTC 2015
This supercedes the previous patch. Now it updates the doc wherever
notepads are reference and the test cases that need notepads.
On Tue, Mar 10, 2015 at 12:53 PM, Gedare Bloom <gedare at rtems.org> wrote:
> Deprecate Classic API Notepads. Mark task_set/get_note() with
> the deprecated attribute, and also mark the notepads field.
>
> Replace disable with enable option for notepads in confdefs.h,
> and make notepads disabled by default. The previous option
> CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS is now unused and
> will emit a compile-time warning. A new option
> CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS is available to turn
> on notepads, but it also will emit a compile-time warning
> to indicate that notepads are deprecated.
>
> Closes #2265
> ---
> c/src/librtems++/include/rtems++/rtemsTask.h | 4 +--
> cpukit/libmisc/monitor/monitor.h | 3 +-
> cpukit/rtems/include/rtems/rtems/tasks.h | 12 ++++++--
> cpukit/sapi/include/confdefs.h | 10 ++++--
> doc/user/conf.t | 46 +++++++++++++++++++++++++---
> doc/user/task.t | 5 +++
> doc/user/userext.t | 3 +-
> testsuites/libtests/rtems++/System.h | 1 +
> testsuites/mptests/mp02/system.h | 2 ++
> testsuites/sptests/sp07/system.h | 2 ++
> testsuites/sptests/spnotepad01/init.c | 1 -
> testsuites/sptests/sptask_err04/system.h | 2 ++
> testsuites/tmtests/tm08/system.h | 2 ++
> 13 files changed, 77 insertions(+), 16 deletions(-)
>
> diff --git a/c/src/librtems++/include/rtems++/rtemsTask.h b/c/src/librtems++/include/rtems++/rtemsTask.h
> index 6d19b46..6a500b0 100644
> --- a/c/src/librtems++/include/rtems++/rtemsTask.h
> +++ b/c/src/librtems++/include/rtems++/rtemsTask.h
> @@ -127,9 +127,9 @@ public:
>
> // notepad control
> const rtems_status_code get_note(const uint32_t notepad,
> - uint32_t& note);
> + uint32_t& note) RTEMS_COMPILER_DEPRECATED_ATTRIBUTE;
> const rtems_status_code set_note(const uint32_t notepad,
> - const uint32_t note);
> + const uint32_t note) RTEMS_COMPILER_DEPRECATED_ATTRIBUTE;
>
> // object id, and name
> const rtems_id id_is() const { return id; }
> diff --git a/cpukit/libmisc/monitor/monitor.h b/cpukit/libmisc/monitor/monitor.h
> index 6a85d60..799df35 100644
> --- a/cpukit/libmisc/monitor/monitor.h
> +++ b/cpukit/libmisc/monitor/monitor.h
> @@ -104,7 +104,8 @@ typedef struct {
> rtems_event_set events;
> rtems_mode modes;
> rtems_attribute attributes;
> - uint32_t notepad[RTEMS_NUMBER_NOTEPADS];
> + uint32_t notepad[RTEMS_NUMBER_NOTEPADS]
> + RTEMS_COMPILER_DEPRECATED_ATTRIBUTE;
> rtems_id wait_id;
> uint32_t wait_args;
> uint32_t ticks;
> diff --git a/cpukit/rtems/include/rtems/rtems/tasks.h b/cpukit/rtems/include/rtems/rtems/tasks.h
> index e0fa27e..237ec19 100644
> --- a/cpukit/rtems/include/rtems/rtems/tasks.h
> +++ b/cpukit/rtems/include/rtems/rtems/tasks.h
> @@ -271,6 +271,8 @@ rtems_status_code rtems_task_delete(
> /**
> * @brief RTEMS Get Task Node
> *
> + * @deprecated Notepads are deprecated and will be removed.
> + *
> * This routine implements the rtems_task_get_note directive. The
> * value of the indicated notepad for the task associated with ID
> * is returned in note.
> @@ -285,11 +287,13 @@ rtems_status_code rtems_task_get_note(
> rtems_id id,
> uint32_t notepad,
> uint32_t *note
> -);
> +) RTEMS_COMPILER_DEPRECATED_ATTRIBUTE;
>
> /**
> * @brief RTEMS Set Task Note
> *
> + * @deprecated Notepads are deprecated and will be removed.
> + *
> * This routine implements the rtems_task_set_note directive. The
> * value of the indicated notepad for the task associated with ID
> * is returned in note.
> @@ -306,7 +310,7 @@ rtems_status_code rtems_task_set_note(
> rtems_id id,
> uint32_t notepad,
> uint32_t note
> -);
> +) RTEMS_COMPILER_DEPRECATED_ATTRIBUTE;
>
> /**
> * @brief RTEMS Task Mode
> @@ -663,10 +667,12 @@ typedef struct {
>
> /**
> * This field contains the notepads for this task.
> + *
> + * @deprecated Notepads are deprecated and will be removed.
> *
> * @note MUST BE LAST ENTRY.
> */
> - uint32_t Notepads[ RTEMS_ZERO_LENGTH_ARRAY ];
> + uint32_t Notepads[ RTEMS_ZERO_LENGTH_ARRAY ] RTEMS_COMPILER_DEPRECATED_ATTRIBUTE;
> } RTEMS_API_Control;
>
> /**
> diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
> index 7d9e3b9..0bebb4e 100644
> --- a/cpukit/sapi/include/confdefs.h
> +++ b/cpukit/sapi/include/confdefs.h
> @@ -1810,7 +1810,11 @@ const rtems_libio_helper rtems_fs_init_helper =
> #define CONFIGURE_TASKS \
> (CONFIGURE_MAXIMUM_TASKS + CONFIGURE_LIBBLOCK_TASKS)
>
> - #ifndef CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS
> + #if defined(CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS)
> + #warning "CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS is deprecated and will be removed."
> + #endif
> + #if defined(CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS)
> + #warning "CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS is deprecated and will be removed."
> #define CONFIGURE_NOTEPADS_ENABLED TRUE
> #else
> #define CONFIGURE_NOTEPADS_ENABLED FALSE
> @@ -2613,8 +2617,8 @@ const rtems_libio_helper rtems_fs_init_helper =
> #endif
> } Scheduler;
> RTEMS_API_Control API_RTEMS;
> - #ifndef CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS
> - uint32_t Notepads[ RTEMS_NUMBER_NOTEPADS ];
> + #if defined(CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS)
> + uint32_t Notepads[ RTEMS_NUMBER_NOTEPADS ] RTEMS_COMPILER_DEPRECATED_ATTRIBUTE;
> #endif
> #ifdef RTEMS_POSIX_API
> POSIX_API_Control API_POSIX;
> diff --git a/doc/user/conf.t b/doc/user/conf.t
> index dc10816..fe714b4 100644
> --- a/doc/user/conf.t
> +++ b/doc/user/conf.t
> @@ -595,6 +595,40 @@ require the addition of a new configuration parameter to specify the
> number of tasks which enable floating point support.
>
> @c
> + at c === CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS ===
> + at c
> + at subsection Enable Classic API Notepads
> +
> + at findex CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
> +
> + at table @b
> + at item CONSTANT:
> + at code{CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS}
> +
> + at item DATA TYPE:
> +Boolean feature macro.
> +
> + at item RANGE:
> +Defined or undefined.
> +
> + at item DEFAULT VALUE:
> +This is not defined by default, and Classic API Notepads are not supported.
> +
> + at end table
> +
> + at subheading DESCRIPTION:
> + at code{CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS} should be defined if the
> +user wants to have support for Classic API Notepads in their application.
> +
> + at subheading NOTES:
> +Disabling Classic API Notepads saves the allocation of sixteen (16)
> +thirty-two bit integers. This saves sixty-four bytes per task/thread
> +plus the allocation overhead. Notepads are rarely used in applications
> +and this can save significant memory in a low RAM system. Classic API
> +Notepads are deprecated, and this option is expected to be obsolete in
> +the near future.
> +
> + at c
> @c === CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS ===
> @c
> @subsection Disable Classic API Notepads
> @@ -612,20 +646,22 @@ Boolean feature macro.
> Defined or undefined.
>
> @item DEFAULT VALUE:
> -This is not defined by default, and Classic API Notepads are supported.
> +This is not defined by default, and Classic API Notepads are not supported.
>
> @end table
>
> @subheading DESCRIPTION:
> - at code{CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS} should be defined if the
> -user does not want to have support for Classic API Notepads in their
> -application.
> + at code{CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS} is deprecated. If users
> +want to have support for Classic API Notepads, they should use
> + at code{CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS}.
>
> @subheading NOTES:
> Disabling Classic API Notepads saves the allocation of sixteen (16)
> thirty-two bit integers. This saves sixty-four bytes per task/thread
> plus the allocation overhead. Notepads are rarely used in applications
> -and this can save significant memory in a low RAM system.
> +and this can save significant memory in a low RAM system. Classic API
> +Notepads are deprecated, and this option is expected to be obsolete in
> +the near future.
>
> @c
> @c === CONFIGURE_MAXIMUM_TIMERS ===
> diff --git a/doc/user/task.t b/doc/user/task.t
> index cf7a514..5aec9b1 100644
> --- a/doc/user/task.t
> +++ b/doc/user/task.t
> @@ -645,6 +645,7 @@ to set a task's notepad entry to a specified note. The
> @code{@value{DIRPREFIX}task_get_note}
> directive allows the user to obtain the note
> contained in any one of the sixteen notepads of a specified task.
> +Notepads are deprecated and will be removed.
>
> @subsection Task Deletion
>
> @@ -1515,6 +1516,8 @@ This directive returns the note contained in the notepad
> location of the task specified by id.
>
> @subheading NOTES:
> +This directive is deprecated and will be removed.
> +
> This directive will not cause the running task to be preempted.
>
> If id is set to @code{@value{RPREFIX}SELF},
> @@ -1567,6 +1570,8 @@ procedure Task_Set_Note (
> @code{@value{RPREFIX}INVALID_NUMBER} - invalid notepad location
>
> @subheading DESCRIPTION:
> +This directive is deprecated and will be removed.
> +
> This directive sets the notepad entry for the task specified by
> id to the value note.
>
> diff --git a/doc/user/userext.t b/doc/user/userext.t
> index 97628bd..dc6ad4e 100644
> --- a/doc/user/userext.t
> +++ b/doc/user/userext.t
> @@ -137,7 +137,8 @@ be used to store additional data required by the user's
> extension functions. It is also possible for a user extension
> to utilize the notepad locations associated with each task
> although this may conflict with application usage of those
> -particular notepads.
> +particular notepads. However, notepads are deprecated and will
> +be removed.
>
> The TCB extension is an array of pointers in the TCB. The
> index into the table can be obtained from the extension id
> diff --git a/testsuites/libtests/rtems++/System.h b/testsuites/libtests/rtems++/System.h
> index e787fe2..410fccb 100644
> --- a/testsuites/libtests/rtems++/System.h
> +++ b/testsuites/libtests/rtems++/System.h
> @@ -123,6 +123,7 @@ class Io_during_interrupt
> #define CONFIGURE_MAXIMUM_USER_EXTENSIONS 0
> #define CONFIGURE_TICKS_PER_TIMESLICE 100
>
> +#define CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
> #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
>
> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> diff --git a/testsuites/mptests/mp02/system.h b/testsuites/mptests/mp02/system.h
> index 2ccc1e4..69025d4 100644
> --- a/testsuites/mptests/mp02/system.h
> +++ b/testsuites/mptests/mp02/system.h
> @@ -30,6 +30,8 @@ rtems_task Test_task(
> #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
>
> +#define CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
> +
> #define CONFIGURE_MAXIMUM_TASKS 2
>
> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> diff --git a/testsuites/sptests/sp07/system.h b/testsuites/sptests/sp07/system.h
> index 8bea0fb..c537455 100644
> --- a/testsuites/sptests/sp07/system.h
> +++ b/testsuites/sptests/sp07/system.h
> @@ -64,6 +64,8 @@ void Task_exit_extension(
> #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
>
> +#define CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
> +
> #define CONFIGURE_MAXIMUM_USER_EXTENSIONS 2
> #define CONFIGURE_TICKS_PER_TIMESLICE 100
>
> diff --git a/testsuites/sptests/spnotepad01/init.c b/testsuites/sptests/spnotepad01/init.c
> index 97a02f5..9604c32 100644
> --- a/testsuites/sptests/spnotepad01/init.c
> +++ b/testsuites/sptests/spnotepad01/init.c
> @@ -53,7 +53,6 @@ rtems_task Init(
> #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
>
> -#define CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS
> #define CONFIGURE_MAXIMUM_TASKS 1
> #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
>
> diff --git a/testsuites/sptests/sptask_err04/system.h b/testsuites/sptests/sptask_err04/system.h
> index ef3e781..8fd4a14 100644
> --- a/testsuites/sptests/sptask_err04/system.h
> +++ b/testsuites/sptests/sptask_err04/system.h
> @@ -29,6 +29,8 @@ rtems_task Task_1(
> #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
>
> +#define CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
> +
> #define CONFIGURE_MAXIMUM_TASKS 2
>
> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> diff --git a/testsuites/tmtests/tm08/system.h b/testsuites/tmtests/tm08/system.h
> index 3610fe9..6e2df2f 100644
> --- a/testsuites/tmtests/tm08/system.h
> +++ b/testsuites/tmtests/tm08/system.h
> @@ -27,6 +27,8 @@ rtems_task Init(
> #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
>
> +#define CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
> +
> #define CONFIGURE_MAXIMUM_TASKS 3
> #define CONFIGURE_TICKS_PER_TIMESLICE 0
>
> --
> 1.9.1
>
More information about the devel
mailing list