OLD | NEW |
| (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 NSSBASET_H | |
6 #define NSSBASET_H | |
7 | |
8 #ifdef DEBUG | |
9 static const char NSSBASET_CVS_ID[] = "@(#) $RCSfile: nssbaset.h,v $ $Revision:
1.9 $ $Date: 2012/04/25 14:49:26 $"; | |
10 #endif /* DEBUG */ | |
11 | |
12 /* | |
13 * nssbaset.h | |
14 * | |
15 * This file contains the most low-level, fundamental public types. | |
16 */ | |
17 | |
18 #include "nspr.h" | |
19 #include "nssilock.h" | |
20 | |
21 /* | |
22 * NSS_EXTERN, NSS_IMPLEMENT, NSS_EXTERN_DATA, NSS_IMPLEMENT_DATA | |
23 * | |
24 * NSS has its own versions of these NSPR macros, in a form which | |
25 * does not confuse ctags and other related utilities. NSPR | |
26 * defines these macros to take the type as an argument, because | |
27 * of certain OS requirements on platforms not supported by NSS. | |
28 */ | |
29 | |
30 #define DUMMY /* dummy */ | |
31 #define NSS_EXTERN extern | |
32 #define NSS_EXTERN_DATA extern | |
33 #define NSS_IMPLEMENT | |
34 #define NSS_IMPLEMENT_DATA | |
35 | |
36 PR_BEGIN_EXTERN_C | |
37 | |
38 /* | |
39 * NSSError | |
40 * | |
41 * Calls to NSS routines may result in one or more errors being placed | |
42 * on the calling thread's "error stack." Every possible error that | |
43 * may be returned from a function is declared where the function is | |
44 * prototyped. All errors are of the following type. | |
45 */ | |
46 | |
47 typedef PRInt32 NSSError; | |
48 | |
49 /* | |
50 * NSSArena | |
51 * | |
52 * Arenas are logical sets of heap memory, from which memory may be | |
53 * allocated. When an arena is destroyed, all memory allocated within | |
54 * that arena is implicitly freed. These arenas are thread-safe: | |
55 * an arena pointer may be used by multiple threads simultaneously. | |
56 * However, as they are not backed by shared memory, they may only be | |
57 * used within one process. | |
58 */ | |
59 | |
60 struct NSSArenaStr; | |
61 typedef struct NSSArenaStr NSSArena; | |
62 | |
63 /* | |
64 * NSSItem | |
65 * | |
66 * This is the basic type used to refer to an unconstrained datum of | |
67 * arbitrary size. | |
68 */ | |
69 | |
70 struct NSSItemStr { | |
71 void *data; | |
72 PRUint32 size; | |
73 }; | |
74 typedef struct NSSItemStr NSSItem; | |
75 | |
76 | |
77 /* | |
78 * NSSBER | |
79 * | |
80 * Data packed according to the Basic Encoding Rules of ASN.1. | |
81 */ | |
82 | |
83 typedef NSSItem NSSBER; | |
84 | |
85 /* | |
86 * NSSDER | |
87 * | |
88 * Data packed according to the Distinguished Encoding Rules of ASN.1; | |
89 * this form is also known as the Canonical Encoding Rules form (CER). | |
90 */ | |
91 | |
92 typedef NSSBER NSSDER; | |
93 | |
94 /* | |
95 * NSSBitString | |
96 * | |
97 * Some ASN.1 types use "bit strings," which are passed around as | |
98 * octet strings but whose length is counted in bits. We use this | |
99 * typedef of NSSItem to point out the occasions when the length | |
100 * is counted in bits, not octets. | |
101 */ | |
102 | |
103 typedef NSSItem NSSBitString; | |
104 | |
105 /* | |
106 * NSSUTF8 | |
107 * | |
108 * Character strings encoded in UTF-8, as defined by RFC 2279. | |
109 */ | |
110 | |
111 typedef char NSSUTF8; | |
112 | |
113 /* | |
114 * NSSASCII7 | |
115 * | |
116 * Character strings guaranteed to be 7-bit ASCII. | |
117 */ | |
118 | |
119 typedef char NSSASCII7; | |
120 | |
121 PR_END_EXTERN_C | |
122 | |
123 #endif /* NSSBASET_H */ | |
OLD | NEW |