From b5c5bbcf07e07584ba243e4b3edf0585a82a4280 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Sat, 13 Apr 2002 16:47:23 +0000 Subject: 2002-04-12 Chris Johns * doc/user/userext.t: Per PR138, updated the documentation to show how to obtain an extension table index. Also provided some extra background on the user extension API. --- doc/user/ChangeLog | 6 ++++++ doc/user/userext.t | 30 ++++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/user/ChangeLog b/doc/user/ChangeLog index 1d9eb9c397..c23a37339d 100644 --- a/doc/user/ChangeLog +++ b/doc/user/ChangeLog @@ -1,3 +1,9 @@ +2002-04-12 Chris Johns + + * doc/user/userext.t: Per PR138, updated the documentation to show + how to obtain an extension table index. Also provided some extra + background on the user extension API. + 2002-04-03 Ralf Corsepius * io.t: Fix typo @sybsection. diff --git a/doc/user/userext.t b/doc/user/userext.t index 641d5d3f9c..08ac6beb20 100644 --- a/doc/user/userext.t +++ b/doc/user/userext.t @@ -119,7 +119,15 @@ of these extension sets could be written and installed independently of the others. All user extensions are optional and RTEMS places no -naming restrictions on the user. +naming restrictions on the user. The user extension entry points +are copied into an internal RTEMS structure. This means the user +does not need to keep the table after creating it, and changing the +handler entry points dynamically in a table once created has no +effect. Creating a table local to a function can save space in +space limited applications. + +Extension switches do not effect the context switch overhead if +no switch handler is installed. @subsection TCB Extension Area @@ -134,7 +142,25 @@ to utilize the notepad locations associated with each task although this may conflict with application usage of those particular notepads. -The TCB extension is an array of pointers in the TCB. +The TCB extension is an array of pointers in the TCB. The +index into the table can be obtained from the extension id +returned when the extension is created: + +@findex rtems extensions table index +@ifset is-C +@example +@group +index = rtems_get_index(extension_id); +@end group +@end example +@end ifset + +@ifset is-Ada +@example +There is currently no example for Ada. +@end example +@end ifset + The number of pointers in the area is the same as the number of user extension sets configured. This allows an application to augment the TCB with user-defined information. For example, an -- cgit v1.2.3