RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
gxx_wrappers.h
Go to the documentation of this file.
1
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
36/*
37 * These typedefs should match with the ones defined in the file
38 * gcc/gthr-rtems.h in the gcc distribution.
39 */
40typedef void *__gthread_key_t;
41typedef int __gthread_once_t;
42typedef void *__gthread_mutex_t;
43typedef void *__gthread_recursive_mutex_t;
44
45int rtems_gxx_once(__gthread_once_t *once, void (*func) (void));
46
47int rtems_gxx_key_create (__gthread_key_t *key, void (*dtor) (void *));
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 */
Definition: mutex.h:4