source: rtems/cpukit/libcsupport/include/rtems/gxx_wrappers.h @ ae55da72

4.115
Last change on this file since ae55da72 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.1 KB
Line 
1/**
2 * @file rtems/gxx_wrappers.h
3 *
4 * RTEMS threads compatibility routines for libgcc2.
5 */
6
7/*
8 *  by: Rosimildo da Silva (rdasilva@connecttel.com)
9 *
10 *  Used ideas from:
11 *    W. Eric Norum
12 *    Canadian Light Source
13 *    University of Saskatchewan
14 *    Saskatoon, Saskatchewan, CANADA
15 *    eric@cls.usask.ca
16 *
17 *  Eric sent some e-mail in the rtems-list as a start point for this
18 *  module implementation.
19 */
20
21#ifndef __GCC_WRAPPERS_h
22#define __GCC_WRAPPERS_h
23
24#ifdef __cplusplus
25extern "C" {
26#endif /* __cplusplus */
27
28/*
29 * These typedefs should match with the ones defined in the file
30 * gcc/gthr-rtems.h in the gcc distribution.
31 * FIXME: T.S, 2007/01/31: -> gcc/gthr-rtems.h still declares
32 *                            void * __gthread_key_t;
33 */
34typedef struct __gthread_key_ {
35        void *val;                 /* this is switched with the task      */
36        void (*dtor)(void*);   /* this remains in place for all tasks */
37} __gthread_key, *__gthread_key_t;
38
39typedef int   __gthread_once_t;
40typedef void *__gthread_mutex_t;
41typedef void *__gthread_recursive_mutex_t;
42
43int rtems_gxx_once(__gthread_once_t *once, void (*func) (void));
44
45int rtems_gxx_key_create (__gthread_key_t *key, void (*dtor) (void *));
46
47int rtems_gxx_key_dtor (__gthread_key_t key, void *ptr);
48
49int rtems_gxx_key_delete (__gthread_key_t key);
50
51void *rtems_gxx_getspecific(__gthread_key_t key);
52
53int rtems_gxx_setspecific(__gthread_key_t key, const void *ptr);
54
55/*
56 * MUTEX support
57 */
58void rtems_gxx_mutex_init (__gthread_mutex_t *mutex);
59
60int rtems_gxx_mutex_lock (__gthread_mutex_t *mutex);
61
62int rtems_gxx_mutex_destroy (__gthread_mutex_t *mutex);
63
64int rtems_gxx_mutex_trylock (__gthread_mutex_t *mutex);
65
66int rtems_gxx_mutex_unlock (__gthread_mutex_t *mutex);
67
68void rtems_gxx_recursive_mutex_init(__gthread_recursive_mutex_t *mutex);
69
70int rtems_gxx_recursive_mutex_lock(__gthread_recursive_mutex_t *mutex);
71
72int rtems_gxx_recursive_mutex_trylock(__gthread_recursive_mutex_t *mutex);
73
74int rtems_gxx_recursive_mutex_unlock(__gthread_recursive_mutex_t *mutex);
75
76#ifdef __cplusplus
77}
78#endif /* __cplusplus */
79
80#endif /* __GCC_WRAPPERS_h */
Note: See TracBrowser for help on using the repository browser.