source: rtems/cpukit/sapi/include/rtems/extension.h @ d6154c7

4.104.114.84.95
Last change on this file since d6154c7 was 8bd41178, checked in by Ralf Corsepius <ralf.corsepius@…>, on 03/29/04 at 16:20:10

2004-03-29 Ralf Corsepius <ralf_corsepius@…>

  • sapi/include/confdefs.h, sapi/include/rtems/config.h, sapi/include/rtems/extension.h, sapi/include/rtems/fatal.h, sapi/include/rtems/init.h, sapi/include/rtems/io.h, sapi/src/exinit.c, sapi/src/extension.c, sapi/src/fatal.c, sapi/src/io.c: Convert to using c99 fixed size types.
  • Property mode set to 100644
File size: 3.6 KB
Line 
1/*  extension.h
2 *
3 *  This include file contains all the constants, structures, and
4 *  prototypes associated with the User Extension Manager.  This manager
5 *  provides a mechanism for manipulating sets of user-defined extensions.
6 *
7 *  Directives provided are:
8 *
9 *     + create user extension set
10 *     + get ID of user extension set
11 *     + delete user extension set
12 *
13 *  COPYRIGHT (c) 1989-1999.
14 *  On-Line Applications Research Corporation (OAR).
15 *
16 *  The license and distribution terms for this file may be
17 *  found in the file LICENSE in this distribution or at
18 *  http://www.rtems.com/license/LICENSE.
19 *
20 *  $Id$
21 */
22
23#ifndef __RTEMS_EXTENSION_MANAGER_h
24#define __RTEMS_EXTENSION_MANAGER_h
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30#include <rtems/score/object.h>
31#include <rtems/score/userext.h>
32#include <rtems/rtems/status.h>  /* XXX */
33#include <rtems/rtems/types.h>  /* XXX */
34
35/*
36 *  Extension related types
37 */
38
39typedef User_extensions_routine                   rtems_extension;
40typedef User_extensions_thread_create_extension   rtems_task_create_extension;
41typedef User_extensions_thread_delete_extension   rtems_task_delete_extension;
42typedef User_extensions_thread_start_extension    rtems_task_start_extension;
43typedef User_extensions_thread_restart_extension  rtems_task_restart_extension;
44typedef User_extensions_thread_switch_extension   rtems_task_switch_extension;
45typedef User_extensions_thread_post_switch_extension
46                                              rtems_task_post_switch_extension;
47typedef User_extensions_thread_begin_extension    rtems_task_begin_extension;
48typedef User_extensions_thread_exitted_extension  rtems_task_exitted_extension;
49typedef User_extensions_fatal_extension           rtems_fatal_extension;
50
51typedef User_extensions_Table                     rtems_extensions_table;
52
53/*
54 *  The following defines the information control block used to manage
55 *  this class of objects.
56 */
57
58SAPI_EXTERN Objects_Information  _Extension_Information;
59
60/*
61 *  The following records define the control block used to manage
62 *  each extension.
63 */
64
65typedef struct {
66  Objects_Control          Object;
67  User_extensions_Control  Extension;
68}   Extension_Control;
69
70/*
71 *  _Extension_Manager_initialization
72 *
73 *  DESCRIPTION:
74 *
75 *  This routine performs the initialization necessary for this manager.
76 */
77
78void _Extension_Manager_initialization(
79  uint32_t   maximum_extensions
80);
81
82/*
83 *  rtems_extension_create
84 *
85 *  DESCRIPTION:
86 *
87 *  This routine implements the rtems_extension_create directive.  The
88 *  extension will have the name name.   The entry points of the
89 *  routines which constitute this extension set are in EXTENSION_TABLE.
90 *  It returns the id of the created extension in ID.
91 */
92
93rtems_status_code rtems_extension_create(
94  rtems_name              name,
95  rtems_extensions_table *extension_table,
96  Objects_Id              *id
97);
98
99/*
100 *  rtems_extension_ident
101 *
102 *  DESCRIPTION:
103 *
104 *  This routine implements the rtems_extension_ident directive.
105 *  This directive returns the extension ID associated with name.
106 *  If more than one extension is named name, then the extension
107 *  to which the ID belongs is arbitrary.
108 */
109
110rtems_status_code rtems_extension_ident(
111  rtems_name    name,
112  Objects_Id   *id
113);
114
115/*
116 *  rtems_extension_delete
117 *
118 *  DESCRIPTION:
119 *
120 *  This routine implements the rtems_extension_delete directive.  The
121 *  extension indicated by ID is deleted.
122 */
123
124rtems_status_code rtems_extension_delete(
125  Objects_Id id
126);
127
128#ifndef __RTEMS_APPLICATION__
129#include <rtems/extension.inl>
130#endif
131
132#ifdef __cplusplus
133}
134#endif
135
136#endif
137/* end of include file */
Note: See TracBrowser for help on using the repository browser.