diff options
-rw-r--r-- | doc/user/ChangeLog | 6 | ||||
-rw-r--r-- | doc/user/userext.t | 30 |
2 files changed, 34 insertions, 2 deletions
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 <ccj@acm.org> + + * 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 <corsepiu@faw.uni-ulm.de> * 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 |