source: rtems/cpukit/posix/include/rtems/posix/key.h @ 449ba1b

4.104.11
Last change on this file since 449ba1b was 8b3416f, checked in by Joel Sherrill <joel.sherrill@…>, on Jan 5, 2009 at 8:19:51 PM

2009-01-05 Joel Sherrill <joel.sherrill@…>

  • posix/include/rtems/posix/key.h: Remove redundant prototypes for inlines.
  • Property mode set to 100644
File size: 1.9 KB
Line 
1/**
2 * @file rtems/posix/key.h
3 */
4
5/*  rtems/posix/key.h
6 *
7 *  This include file contains all the private support information for
8 *  POSIX key.
9 *
10 *  COPYRIGHT (c) 1989-2008.
11 *  On-Line Applications Research Corporation (OAR).
12 *
13 *  The license and distribution terms for this file may be
14 *  found in the file LICENSE in this distribution or at
15 *  http://www.rtems.com/license/LICENSE.
16 *
17 *  $Id$
18 */
19
20#ifndef _RTEMS_POSIX_KEY_H
21#define _RTEMS_POSIX_KEY_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/*
28 *  Data Structure used to manage a POSIX key
29 *
30 *  NOTE:  The Values is a table indexed by the index portion of the
31 *         ID of the currently executing thread.
32 */
33
34typedef struct {
35   Objects_Control     Object;
36   bool                is_active;
37   void              (*destructor)( void * );
38   void              **Values[ OBJECTS_APIS_LAST + 1 ];
39}  POSIX_Keys_Control;
40
41/*
42 *  The following defines the information control block used to manage
43 *  this class of objects.
44 */
45
46POSIX_EXTERN Objects_Information  _POSIX_Keys_Information;
47
48/*
49 *  _POSIX_Keys_Manager_initialization
50 *
51 *  DESCRIPTION:
52 *
53 *  This routine performs the initialization necessary for this manager.
54 */
55
56void _POSIX_Key_Manager_initialization(void);
57
58/*
59 *  _POSIX_Keys_Run_destructors
60 *
61 *  DESCRIPTION:
62 *
63 *  This function executes all the destructors associated with the thread's
64 *  keys.  This function will execute until all values have been set to NULL.
65 *
66 *  NOTE:  This is the routine executed when a thread exits to
67 *         run through all the keys and do the destructor action.
68 */
69
70void _POSIX_Keys_Run_destructors(
71  Thread_Control *thread
72);
73
74/*
75 *  _POSIX_Keys_Free
76 *
77 *  DESCRIPTION:
78 *
79 *  This routine frees a keys control block to the
80 *  inactive chain of free keys control blocks.
81 */
82
83RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (
84  POSIX_Keys_Control *the_key
85);
86
87#include <rtems/posix/key.inl>
88
89#ifdef __cplusplus
90}
91#endif
92
93#endif
94/*  end of include file */
Note: See TracBrowser for help on using the repository browser.