source: rtems/cpukit/posix/include/rtems/posix/key.h @ 9b4422a2

4.115
Last change on this file since 9b4422a2 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 15:09:24

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

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