ReactOS
0.4.16-dev-136-g52192f1
libc_private.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 1998 John Birrell <jb@cimlogic.com.au>.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. All advertising materials mentioning features or use of this software
14
* must display the following acknowledgement:
15
* This product includes software developed by John Birrell.
16
* 4. Neither the name of the author nor the names of any co-contributors
17
* may be used to endorse or promote products derived from this software
18
* without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL AND CONTRIBUTORS ``AS IS'' AND
21
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
* SUCH DAMAGE.
31
*
32
* $FreeBSD: src/lib/libc/include/libc_private.h,v 1.11 2003/11/05 18:17:30 deischen Exp $
33
*
34
* Private definitions for libc, libc_r and libpthread.
35
*
36
*/
37
38
#ifndef _LIBC_PRIVATE_H_
39
#define _LIBC_PRIVATE_H_
40
41
/*
42
* This global flag is non-zero when a process has created one
43
* or more threads. It is used to avoid calling locking functions
44
* when they are not required.
45
*/
46
extern
int
__isthreaded
;
47
48
/*
49
* File lock contention is difficult to diagnose without knowing
50
* where locks were set. Allow a debug library to be built which
51
* records the source file and line number of each lock call.
52
*/
53
#ifdef _FLOCK_DEBUG
54
#define _FLOCKFILE(x) _flockfile_debug(x, __FILE__, __LINE__)
55
#else
56
#define _FLOCKFILE(x) _flockfile(x)
57
#endif
58
59
/*
60
* Macros for locking and unlocking FILEs. These test if the
61
* process is threaded to avoid locking when not required.
62
*/
63
#define FLOCKFILE(fp) if (__isthreaded) _FLOCKFILE(fp)
64
#define FUNLOCKFILE(fp) if (__isthreaded) _funlockfile(fp)
65
66
/*
67
* Indexes into the pthread jump table.
68
*
69
* Warning! If you change this type, you must also change the threads
70
* libraries that reference it (libc_r, libpthread).
71
*/
72
typedef
enum
{
73
PJT_COND_BROADCAST
,
74
PJT_COND_DESTROY
,
75
PJT_COND_INIT
,
76
PJT_COND_SIGNAL
,
77
PJT_COND_WAIT
,
78
PJT_GETSPECIFIC
,
79
PJT_KEY_CREATE
,
80
PJT_KEY_DELETE
,
81
PJT_MAIN_NP
,
82
PJT_MUTEX_DESTROY
,
83
PJT_MUTEX_INIT
,
84
PJT_MUTEX_LOCK
,
85
PJT_MUTEX_TRYLOCK
,
86
PJT_MUTEX_UNLOCK
,
87
PJT_MUTEXATTR_DESTROY
,
88
PJT_MUTEXATTR_INIT
,
89
PJT_MUTEXATTR_SETTYPE
,
90
PJT_ONCE
,
91
PJT_RWLOCK_DESTROY
,
92
PJT_RWLOCK_INIT
,
93
PJT_RWLOCK_RDLOCK
,
94
PJT_RWLOCK_TRYRDLOCK
,
95
PJT_RWLOCK_TRYWRLOCK
,
96
PJT_RWLOCK_UNLOCK
,
97
PJT_RWLOCK_WRLOCK
,
98
PJT_SELF
,
99
PJT_SETSPECIFIC
,
100
PJT_SIGMASK
,
101
PJT_MAX
102
}
pjt_index_t
;
103
104
typedef
int
(*
pthread_func_t
)(
void
);
105
typedef
pthread_func_t
pthread_func_entry_t
[2];
106
107
extern
pthread_func_entry_t
__thr_jtable
[];
108
109
/*
110
* yplib internal interfaces
111
*/
112
#ifdef YP
113
int
_yp_check(
char
**);
114
#endif
115
116
117
/*
118
* This is a pointer in the C run-time startup code. It is used
119
* by getprogname() and setprogname().
120
*/
121
extern
const
char
*
__progname
;
122
123
/*
124
* This is the lock to make malloc() thread-safe. It is externalized
125
* so that thread libraries can protect malloc across fork().
126
*/
127
extern
struct
_spinlock
*
__malloc_lock
;
128
129
#endif
/* _LIBC_PRIVATE_H_ */
int
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition:
typeof.h:31
void
Definition:
nsiface.idl:2307
__isthreaded
int __isthreaded
pthread_func_entry_t
pthread_func_t pthread_func_entry_t[2]
Definition:
libc_private.h:105
__malloc_lock
struct _spinlock * __malloc_lock
pthread_func_t
int(* pthread_func_t)(void)
Definition:
libc_private.h:104
pjt_index_t
pjt_index_t
Definition:
libc_private.h:72
PJT_RWLOCK_DESTROY
@ PJT_RWLOCK_DESTROY
Definition:
libc_private.h:91
PJT_MUTEXATTR_DESTROY
@ PJT_MUTEXATTR_DESTROY
Definition:
libc_private.h:87
PJT_RWLOCK_WRLOCK
@ PJT_RWLOCK_WRLOCK
Definition:
libc_private.h:97
PJT_MUTEXATTR_SETTYPE
@ PJT_MUTEXATTR_SETTYPE
Definition:
libc_private.h:89
PJT_COND_DESTROY
@ PJT_COND_DESTROY
Definition:
libc_private.h:74
PJT_RWLOCK_UNLOCK
@ PJT_RWLOCK_UNLOCK
Definition:
libc_private.h:96
PJT_KEY_DELETE
@ PJT_KEY_DELETE
Definition:
libc_private.h:80
PJT_KEY_CREATE
@ PJT_KEY_CREATE
Definition:
libc_private.h:79
PJT_RWLOCK_INIT
@ PJT_RWLOCK_INIT
Definition:
libc_private.h:92
PJT_COND_WAIT
@ PJT_COND_WAIT
Definition:
libc_private.h:77
PJT_MUTEXATTR_INIT
@ PJT_MUTEXATTR_INIT
Definition:
libc_private.h:88
PJT_RWLOCK_RDLOCK
@ PJT_RWLOCK_RDLOCK
Definition:
libc_private.h:93
PJT_RWLOCK_TRYWRLOCK
@ PJT_RWLOCK_TRYWRLOCK
Definition:
libc_private.h:95
PJT_MUTEX_INIT
@ PJT_MUTEX_INIT
Definition:
libc_private.h:83
PJT_MUTEX_LOCK
@ PJT_MUTEX_LOCK
Definition:
libc_private.h:84
PJT_MUTEX_TRYLOCK
@ PJT_MUTEX_TRYLOCK
Definition:
libc_private.h:85
PJT_COND_BROADCAST
@ PJT_COND_BROADCAST
Definition:
libc_private.h:73
PJT_COND_INIT
@ PJT_COND_INIT
Definition:
libc_private.h:75
PJT_SETSPECIFIC
@ PJT_SETSPECIFIC
Definition:
libc_private.h:99
PJT_SIGMASK
@ PJT_SIGMASK
Definition:
libc_private.h:100
PJT_RWLOCK_TRYRDLOCK
@ PJT_RWLOCK_TRYRDLOCK
Definition:
libc_private.h:94
PJT_MAIN_NP
@ PJT_MAIN_NP
Definition:
libc_private.h:81
PJT_SELF
@ PJT_SELF
Definition:
libc_private.h:98
PJT_MUTEX_UNLOCK
@ PJT_MUTEX_UNLOCK
Definition:
libc_private.h:86
PJT_ONCE
@ PJT_ONCE
Definition:
libc_private.h:90
PJT_MUTEX_DESTROY
@ PJT_MUTEX_DESTROY
Definition:
libc_private.h:82
PJT_GETSPECIFIC
@ PJT_GETSPECIFIC
Definition:
libc_private.h:78
PJT_COND_SIGNAL
@ PJT_COND_SIGNAL
Definition:
libc_private.h:76
PJT_MAX
@ PJT_MAX
Definition:
libc_private.h:101
__thr_jtable
pthread_func_entry_t __thr_jtable[]
__progname
const char * __progname
Definition:
finger.c:63
_spinlock
Definition:
spinlock.h:46
dll
3rdparty
libtirpc
tirpc
libc_private.h
Generated on Tue Oct 15 2024 06:02:46 for ReactOS by
1.9.6