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

Side by Side Diff: nss/lib/base/libc.c

Issue 2078763002: Delete bundled copy of NSS and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss@master
Patch Set: Delete bundled copy of NSS and replace with README. Created 4 years, 6 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
« no previous file with comments | « nss/lib/base/item.c ('k') | nss/lib/base/list.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 /*
6 * libc.c
7 *
8 * This file contains our wrappers/reimplementations for "standard"
9 * libc functions. Things like "memcpy." We add to this as we need
10 * it. Oh, and let's keep it in alphabetical order, should it ever
11 * get large. Most string/character stuff should be in utf8.c, not
12 * here. This file (and maybe utf8.c) should be the only ones in
13 * NSS to include files with angle brackets.
14 */
15
16 #ifndef BASE_H
17 #include "base.h"
18 #endif /* BASE_H */
19
20 #include <string.h> /* memcpy, memset */
21
22 /*
23 * nsslibc_memcpy
24 * nsslibc_memset
25 * nsslibc_offsetof
26 * nsslibc_memequal
27 */
28
29 /*
30 * nsslibc_memcpy
31 *
32 * Errors:
33 * NSS_ERROR_INVALID_POINTER
34 *
35 * Return value:
36 * NULL on error
37 * The destination pointer on success
38 */
39
40 NSS_IMPLEMENT void *
41 nsslibc_memcpy(void *dest, const void *source, PRUint32 n)
42 {
43 #ifdef NSSDEBUG
44 if (((void *)NULL == dest) || ((const void *)NULL == source)) {
45 nss_SetError(NSS_ERROR_INVALID_POINTER);
46 return (void *)NULL;
47 }
48 #endif /* NSSDEBUG */
49
50 return memcpy(dest, source, (size_t)n);
51 }
52
53 /*
54 * nsslibc_memset
55 *
56 * Errors:
57 * NSS_ERROR_INVALID_POINTER
58 *
59 * Return value:
60 * NULL on error
61 * The destination pointer on success
62 */
63
64 NSS_IMPLEMENT void *
65 nsslibc_memset(void *dest, PRUint8 byte, PRUint32 n)
66 {
67 #ifdef NSSDEBUG
68 if (((void *)NULL == dest)) {
69 nss_SetError(NSS_ERROR_INVALID_POINTER);
70 return (void *)NULL;
71 }
72 #endif /* NSSDEBUG */
73
74 return memset(dest, (int)byte, (size_t)n);
75 }
76
77 /*
78 * nsslibc_memequal
79 *
80 * Errors:
81 * NSS_ERROR_INVALID_POINTER
82 *
83 * Return value:
84 * PR_TRUE if they match
85 * PR_FALSE if they don't
86 * PR_FALSE upon error
87 */
88
89 NSS_IMPLEMENT PRBool
90 nsslibc_memequal(const void *a, const void *b, PRUint32 len,
91 PRStatus *statusOpt)
92 {
93 #ifdef NSSDEBUG
94 if ((((void *)NULL == a) || ((void *)NULL == b))) {
95 nss_SetError(NSS_ERROR_INVALID_POINTER);
96 if ((PRStatus *)NULL != statusOpt) {
97 *statusOpt = PR_FAILURE;
98 }
99 return PR_FALSE;
100 }
101 #endif /* NSSDEBUG */
102
103 if ((PRStatus *)NULL != statusOpt) {
104 *statusOpt = PR_SUCCESS;
105 }
106
107 if (0 == memcmp(a, b, len)) {
108 return PR_TRUE;
109 } else {
110 return PR_FALSE;
111 }
112 }
113
114 /*
115 * nsslibc_memcmp
116 */
117
118 NSS_IMPLEMENT PRInt32
119 nsslibc_memcmp(const void *a, const void *b, PRUint32 len, PRStatus *statusOpt)
120 {
121 int v;
122
123 #ifdef NSSDEBUG
124 if ((((void *)NULL == a) || ((void *)NULL == b))) {
125 nss_SetError(NSS_ERROR_INVALID_POINTER);
126 if ((PRStatus *)NULL != statusOpt) {
127 *statusOpt = PR_FAILURE;
128 }
129 return -2;
130 }
131 #endif /* NSSDEBUG */
132
133 if ((PRStatus *)NULL != statusOpt) {
134 *statusOpt = PR_SUCCESS;
135 }
136
137 v = memcmp(a, b, len);
138 return (PRInt32)v;
139 }
140
141 /*
142 * offsetof is a preprocessor definition
143 */
OLDNEW
« no previous file with comments | « nss/lib/base/item.c ('k') | nss/lib/base/list.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698