Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(570)

Side by Side Diff: mozilla/security/nss/lib/base/baset.h

Issue 14249009: Change the NSS and NSPR source tree to the new directory structure to be (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « mozilla/security/nss/lib/base/base.h ('k') | mozilla/security/nss/lib/base/error.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 #ifndef BASET_H
6 #define BASET_H
7
8 #ifdef DEBUG
9 static const char BASET_CVS_ID[] = "@(#) $RCSfile: baset.h,v $ $Revision: 1.9 $ $Date: 2012/04/25 14:49:26 $";
10 #endif /* DEBUG */
11
12 /*
13 * baset.h
14 *
15 * This file contains definitions for the basic types used throughout
16 * nss but not available publicly.
17 */
18
19 #ifndef NSSBASET_H
20 #include "nssbaset.h"
21 #endif /* NSSBASET_H */
22
23 #include "plhash.h"
24
25 PR_BEGIN_EXTERN_C
26
27 /*
28 * nssArenaMark
29 *
30 * This type is used to mark the current state of an NSSArena.
31 */
32
33 struct nssArenaMarkStr;
34 typedef struct nssArenaMarkStr nssArenaMark;
35
36 #ifdef DEBUG
37 /*
38 * ARENA_THREADMARK
39 *
40 * Optionally, this arena implementation can be compiled with some
41 * runtime checking enabled, which will catch the situation where
42 * one thread "marks" the arena, another thread allocates memory,
43 * and then the mark is released. Usually this is a surprise to
44 * the second thread, and this leads to weird runtime errors.
45 * Define ARENA_THREADMARK to catch these cases; we define it for all
46 * (internal and external) debug builds.
47 */
48 #define ARENA_THREADMARK
49
50 /*
51 * ARENA_DESTRUCTOR_LIST
52 *
53 * Unfortunately, our pointer-tracker facility, used in debug
54 * builds to agressively fight invalid pointers, requries that
55 * pointers be deregistered when objects are destroyed. This
56 * conflicts with the standard arena usage where "memory-only"
57 * objects (that don't hold onto resources outside the arena)
58 * can be allocated in an arena, and never destroyed other than
59 * when the arena is destroyed. Therefore we have added a
60 * destructor-registratio facility to our arenas. This was not
61 * a simple decision, since we're getting ever-further away from
62 * the original arena philosophy. However, it was felt that
63 * adding this in debug builds wouldn't be so bad; as it would
64 * discourage them from being used for "serious" purposes.
65 * This facility requires ARENA_THREADMARK to be defined.
66 */
67 #ifdef ARENA_THREADMARK
68 #define ARENA_DESTRUCTOR_LIST
69 #endif /* ARENA_THREADMARK */
70
71 #endif /* DEBUG */
72
73 typedef struct nssListStr nssList;
74 typedef struct nssListIteratorStr nssListIterator;
75 typedef PRBool (* nssListCompareFunc)(void *a, void *b);
76 typedef PRIntn (* nssListSortFunc)(void *a, void *b);
77 typedef void (* nssListElementDestructorFunc)(void *el);
78
79 typedef struct nssHashStr nssHash;
80 typedef void (PR_CALLBACK *nssHashIterator)(const void *key,
81 void *value,
82 void *arg);
83
84 /*
85 * nssPointerTracker
86 *
87 * This type is used in debug builds (both external and internal) to
88 * track our object pointers. Objects of this type must be statically
89 * allocated, which means the structure size must be available to the
90 * compiler. Therefore we must expose the contents of this structure.
91 * But please don't access elements directly; use the accessors.
92 */
93
94 #ifdef DEBUG
95 struct nssPointerTrackerStr {
96 PRCallOnceType once;
97 PZLock *lock;
98 PLHashTable *table;
99 };
100 typedef struct nssPointerTrackerStr nssPointerTracker;
101 #endif /* DEBUG */
102
103 /*
104 * nssStringType
105 *
106 * There are several types of strings in the real world. We try to
107 * use only UTF8 and avoid the rest, but that's not always possible.
108 * So we have a couple converter routines to go to and from the other
109 * string types. We have to be able to specify those string types,
110 * so we have this enumeration.
111 */
112
113 enum nssStringTypeEnum {
114 nssStringType_DirectoryString,
115 nssStringType_TeletexString, /* Not "teletext" with trailing 't' */
116 nssStringType_PrintableString,
117 nssStringType_UniversalString,
118 nssStringType_BMPString,
119 nssStringType_UTF8String,
120 nssStringType_PHGString,
121 nssStringType_GeneralString,
122
123 nssStringType_Unknown = -1
124 };
125 typedef enum nssStringTypeEnum nssStringType;
126
127 PR_END_EXTERN_C
128
129 #endif /* BASET_H */
OLDNEW
« no previous file with comments | « mozilla/security/nss/lib/base/base.h ('k') | mozilla/security/nss/lib/base/error.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698