comparison nspr/pr/include/prrwlock.h @ 0:1e5118fa0cb1

This is NSS with a Cmake Buildsyste To compile a static NSS library for Windows we've used the Chromium-NSS fork and added a Cmake buildsystem to compile it statically for Windows. See README.chromium for chromium changes and README.trustbridge for our modifications.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 28 Jul 2014 10:47:06 +0200
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1e5118fa0cb1
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6 /*
7 ** File: prrwlock.h
8 ** Description: API to basic reader-writer lock functions of NSPR.
9 **
10 **/
11
12 #ifndef prrwlock_h___
13 #define prrwlock_h___
14
15 #include "prtypes.h"
16
17 PR_BEGIN_EXTERN_C
18
19 /*
20 * PRRWLock --
21 *
22 * The reader writer lock, PRRWLock, is an opaque object to the clients
23 * of NSPR. All routines operate on a pointer to this opaque entity.
24 */
25
26
27 typedef struct PRRWLock PRRWLock;
28
29 #define PR_RWLOCK_RANK_NONE 0
30
31
32 /***********************************************************************
33 ** FUNCTION: PR_NewRWLock
34 ** DESCRIPTION:
35 ** Returns a pointer to a newly created reader-writer lock object.
36 ** INPUTS: Lock rank
37 ** Lock name
38 ** OUTPUTS: void
39 ** RETURN: PRRWLock*
40 ** If the lock cannot be created because of resource constraints, NULL
41 ** is returned.
42 **
43 ***********************************************************************/
44 NSPR_API(PRRWLock*) PR_NewRWLock(PRUint32 lock_rank, const char *lock_name);
45
46 /***********************************************************************
47 ** FUNCTION: PR_DestroyRWLock
48 ** DESCRIPTION:
49 ** Destroys a given RW lock object.
50 ** INPUTS: PRRWLock *lock - Lock to be freed.
51 ** OUTPUTS: void
52 ** RETURN: None
53 ***********************************************************************/
54 NSPR_API(void) PR_DestroyRWLock(PRRWLock *lock);
55
56 /***********************************************************************
57 ** FUNCTION: PR_RWLock_Rlock
58 ** DESCRIPTION:
59 ** Apply a read lock (non-exclusive) on a RWLock
60 ** INPUTS: PRRWLock *lock - Lock to be read-locked.
61 ** OUTPUTS: void
62 ** RETURN: None
63 ***********************************************************************/
64 NSPR_API(void) PR_RWLock_Rlock(PRRWLock *lock);
65
66 /***********************************************************************
67 ** FUNCTION: PR_RWLock_Wlock
68 ** DESCRIPTION:
69 ** Apply a write lock (exclusive) on a RWLock
70 ** INPUTS: PRRWLock *lock - Lock to write-locked.
71 ** OUTPUTS: void
72 ** RETURN: None
73 ***********************************************************************/
74 NSPR_API(void) PR_RWLock_Wlock(PRRWLock *lock);
75
76 /***********************************************************************
77 ** FUNCTION: PR_RWLock_Unlock
78 ** DESCRIPTION:
79 ** Release a RW lock. Unlocking an unlocked lock has undefined results.
80 ** INPUTS: PRRWLock *lock - Lock to unlocked.
81 ** OUTPUTS: void
82 ** RETURN: void
83 ***********************************************************************/
84 NSPR_API(void) PR_RWLock_Unlock(PRRWLock *lock);
85
86 PR_END_EXTERN_C
87
88 #endif /* prrwlock_h___ */
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)