elf: Add a way to check if tunable is set (BZ 27069)
[glibc.git] / wcsmbs / bits / wchar2-decl.h
blob08c8ebd0e84f41cdc4fcd94bf410ac1d0c9ba6bf
1 /* Checking macros for wchar functions. Declarations only.
2 Copyright (C) 2004-2023 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
19 #ifndef _BITS_WCHAR2_DECL_H
20 #define _BITS_WCHAR2_DECL_H 1
22 #ifndef _WCHAR_H
23 # error "Never include <bits/wchar2-decl.h> directly; use <wchar.h> instead."
24 #endif
27 extern wchar_t *__wmemcpy_chk (wchar_t *__restrict __s1,
28 const wchar_t *__restrict __s2, size_t __n,
29 size_t __ns1) __THROW;
30 extern wchar_t *__REDIRECT_NTH (__wmemcpy_alias,
31 (wchar_t *__restrict __s1,
32 const wchar_t *__restrict __s2, size_t __n),
33 wmemcpy);
34 extern wchar_t *__REDIRECT_NTH (__wmemcpy_chk_warn,
35 (wchar_t *__restrict __s1,
36 const wchar_t *__restrict __s2, size_t __n,
37 size_t __ns1), __wmemcpy_chk)
38 __warnattr ("wmemcpy called with length bigger than size of destination "
39 "buffer");
41 extern wchar_t *__wmemmove_chk (wchar_t *__s1, const wchar_t *__s2,
42 size_t __n, size_t __ns1) __THROW;
43 extern wchar_t *__REDIRECT_NTH (__wmemmove_alias, (wchar_t *__s1,
44 const wchar_t *__s2,
45 size_t __n), wmemmove);
46 extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
47 (wchar_t *__s1, const wchar_t *__s2,
48 size_t __n, size_t __ns1), __wmemmove_chk)
49 __warnattr ("wmemmove called with length bigger than size of destination "
50 "buffer");
53 #ifdef __USE_GNU
55 extern wchar_t *__wmempcpy_chk (wchar_t *__restrict __s1,
56 const wchar_t *__restrict __s2, size_t __n,
57 size_t __ns1) __THROW;
58 extern wchar_t *__REDIRECT_NTH (__wmempcpy_alias,
59 (wchar_t *__restrict __s1,
60 const wchar_t *__restrict __s2,
61 size_t __n), wmempcpy);
62 extern wchar_t *__REDIRECT_NTH (__wmempcpy_chk_warn,
63 (wchar_t *__restrict __s1,
64 const wchar_t *__restrict __s2, size_t __n,
65 size_t __ns1), __wmempcpy_chk)
66 __warnattr ("wmempcpy called with length bigger than size of destination "
67 "buffer");
69 #endif
72 extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
73 size_t __ns) __THROW;
74 extern wchar_t *__REDIRECT_FORTIFY_NTH (__wmemset_alias, (wchar_t *__s, wchar_t __c,
75 size_t __n), wmemset);
76 extern wchar_t *__REDIRECT_NTH (__wmemset_chk_warn,
77 (wchar_t *__s, wchar_t __c, size_t __n,
78 size_t __ns), __wmemset_chk)
79 __warnattr ("wmemset called with length bigger than size of destination "
80 "buffer");
82 extern wchar_t *__wcscpy_chk (wchar_t *__restrict __dest,
83 const wchar_t *__restrict __src,
84 size_t __n) __THROW;
85 extern wchar_t *__REDIRECT_NTH (__wcscpy_alias,
86 (wchar_t *__restrict __dest,
87 const wchar_t *__restrict __src), wcscpy);
89 extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest,
90 const wchar_t *__restrict __src,
91 size_t __destlen) __THROW;
92 extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
93 (wchar_t *__restrict __dest,
94 const wchar_t *__restrict __src), wcpcpy);
96 extern wchar_t *__wcsncpy_chk (wchar_t *__restrict __dest,
97 const wchar_t *__restrict __src, size_t __n,
98 size_t __destlen) __THROW;
99 extern wchar_t *__REDIRECT_NTH (__wcsncpy_alias,
100 (wchar_t *__restrict __dest,
101 const wchar_t *__restrict __src,
102 size_t __n), wcsncpy);
103 extern wchar_t *__REDIRECT_NTH (__wcsncpy_chk_warn,
104 (wchar_t *__restrict __dest,
105 const wchar_t *__restrict __src,
106 size_t __n, size_t __destlen), __wcsncpy_chk)
107 __warnattr ("wcsncpy called with length bigger than size of destination "
108 "buffer");
110 extern wchar_t *__wcpncpy_chk (wchar_t *__restrict __dest,
111 const wchar_t *__restrict __src, size_t __n,
112 size_t __destlen) __THROW;
114 extern wchar_t *__REDIRECT_NTH (__wcpncpy_alias,
115 (wchar_t *__restrict __dest,
116 const wchar_t *__restrict __src,
117 size_t __n), wcpncpy);
118 extern wchar_t *__REDIRECT_NTH (__wcpncpy_chk_warn,
119 (wchar_t *__restrict __dest,
120 const wchar_t *__restrict __src,
121 size_t __n, size_t __destlen), __wcpncpy_chk)
122 __warnattr ("wcpncpy called with length bigger than size of destination "
123 "buffer");
125 extern wchar_t *__wcscat_chk (wchar_t *__restrict __dest,
126 const wchar_t *__restrict __src,
127 size_t __destlen) __THROW;
128 extern wchar_t *__REDIRECT_NTH (__wcscat_alias,
129 (wchar_t *__restrict __dest,
130 const wchar_t *__restrict __src), wcscat);
132 extern wchar_t *__wcsncat_chk (wchar_t *__restrict __dest,
133 const wchar_t *__restrict __src,
134 size_t __n, size_t __destlen) __THROW;
135 extern wchar_t *__REDIRECT_NTH (__wcsncat_alias,
136 (wchar_t *__restrict __dest,
137 const wchar_t *__restrict __src,
138 size_t __n), wcsncat);
140 extern int __swprintf_chk (wchar_t *__restrict __s, size_t __n,
141 int __flag, size_t __s_len,
142 const wchar_t *__restrict __format, ...)
143 __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 6))) */;
144 extern int __REDIRECT_NTH_LDBL (__swprintf_alias,
145 (wchar_t *__restrict __s, size_t __n,
146 const wchar_t *__restrict __fmt, ...),
147 swprintf);
149 extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
150 int __flag, size_t __s_len,
151 const wchar_t *__restrict __format,
152 __gnuc_va_list __arg)
153 __THROW /* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
154 extern int __REDIRECT_NTH_LDBL (__vswprintf_alias,
155 (wchar_t *__restrict __s, size_t __n,
156 const wchar_t *__restrict __fmt,
157 __gnuc_va_list __ap), vswprintf);
160 #if __USE_FORTIFY_LEVEL > 1
162 extern int __fwprintf_chk (__FILE *__restrict __stream, int __flag,
163 const wchar_t *__restrict __format, ...);
164 extern int __wprintf_chk (int __flag, const wchar_t *__restrict __format,
165 ...);
166 extern int __vfwprintf_chk (__FILE *__restrict __stream, int __flag,
167 const wchar_t *__restrict __format,
168 __gnuc_va_list __ap);
169 extern int __vwprintf_chk (int __flag, const wchar_t *__restrict __format,
170 __gnuc_va_list __ap);
172 #endif
174 extern wchar_t *__fgetws_chk (wchar_t *__restrict __s, size_t __size, int __n,
175 __FILE *__restrict __stream) __wur;
176 extern wchar_t *__REDIRECT (__fgetws_alias,
177 (wchar_t *__restrict __s, int __n,
178 __FILE *__restrict __stream), fgetws) __wur;
179 extern wchar_t *__REDIRECT (__fgetws_chk_warn,
180 (wchar_t *__restrict __s, size_t __size, int __n,
181 __FILE *__restrict __stream), __fgetws_chk)
182 __wur __warnattr ("fgetws called with bigger size than length "
183 "of destination buffer");
185 #ifdef __USE_GNU
187 extern wchar_t *__fgetws_unlocked_chk (wchar_t *__restrict __s, size_t __size,
188 int __n, __FILE *__restrict __stream)
189 __wur;
190 extern wchar_t *__REDIRECT (__fgetws_unlocked_alias,
191 (wchar_t *__restrict __s, int __n,
192 __FILE *__restrict __stream), fgetws_unlocked)
193 __wur;
194 extern wchar_t *__REDIRECT (__fgetws_unlocked_chk_warn,
195 (wchar_t *__restrict __s, size_t __size, int __n,
196 __FILE *__restrict __stream),
197 __fgetws_unlocked_chk)
198 __wur __warnattr ("fgetws_unlocked called with bigger size than length "
199 "of destination buffer");
201 #endif
203 extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar,
204 mbstate_t *__restrict __p,
205 size_t __buflen) __THROW __wur;
206 extern size_t __REDIRECT_FORTIFY_NTH (__wcrtomb_alias,
207 (char *__restrict __s, wchar_t __wchar,
208 mbstate_t *__restrict __ps), wcrtomb) __wur;
210 extern size_t __mbsrtowcs_chk (wchar_t *__restrict __dst,
211 const char **__restrict __src,
212 size_t __len, mbstate_t *__restrict __ps,
213 size_t __dstlen) __THROW;
214 extern size_t __REDIRECT_NTH (__mbsrtowcs_alias,
215 (wchar_t *__restrict __dst,
216 const char **__restrict __src,
217 size_t __len, mbstate_t *__restrict __ps),
218 mbsrtowcs);
219 extern size_t __REDIRECT_NTH (__mbsrtowcs_chk_warn,
220 (wchar_t *__restrict __dst,
221 const char **__restrict __src,
222 size_t __len, mbstate_t *__restrict __ps,
223 size_t __dstlen), __mbsrtowcs_chk)
224 __warnattr ("mbsrtowcs called with dst buffer smaller than len "
225 "* sizeof (wchar_t)");
227 extern size_t __wcsrtombs_chk (char *__restrict __dst,
228 const wchar_t **__restrict __src,
229 size_t __len, mbstate_t *__restrict __ps,
230 size_t __dstlen) __THROW;
231 extern size_t __REDIRECT_NTH (__wcsrtombs_alias,
232 (char *__restrict __dst,
233 const wchar_t **__restrict __src,
234 size_t __len, mbstate_t *__restrict __ps),
235 wcsrtombs);
236 extern size_t __REDIRECT_NTH (__wcsrtombs_chk_warn,
237 (char *__restrict __dst,
238 const wchar_t **__restrict __src,
239 size_t __len, mbstate_t *__restrict __ps,
240 size_t __dstlen), __wcsrtombs_chk)
241 __warnattr ("wcsrtombs called with dst buffer smaller than len");
243 #ifdef __USE_XOPEN2K8
245 extern size_t __mbsnrtowcs_chk (wchar_t *__restrict __dst,
246 const char **__restrict __src, size_t __nmc,
247 size_t __len, mbstate_t *__restrict __ps,
248 size_t __dstlen) __THROW;
249 extern size_t __REDIRECT_NTH (__mbsnrtowcs_alias,
250 (wchar_t *__restrict __dst,
251 const char **__restrict __src, size_t __nmc,
252 size_t __len, mbstate_t *__restrict __ps),
253 mbsnrtowcs);
254 extern size_t __REDIRECT_NTH (__mbsnrtowcs_chk_warn,
255 (wchar_t *__restrict __dst,
256 const char **__restrict __src, size_t __nmc,
257 size_t __len, mbstate_t *__restrict __ps,
258 size_t __dstlen), __mbsnrtowcs_chk)
259 __warnattr ("mbsnrtowcs called with dst buffer smaller than len "
260 "* sizeof (wchar_t)");
262 extern size_t __wcsnrtombs_chk (char *__restrict __dst,
263 const wchar_t **__restrict __src,
264 size_t __nwc, size_t __len,
265 mbstate_t *__restrict __ps, size_t __dstlen)
266 __THROW;
267 extern size_t __REDIRECT_NTH (__wcsnrtombs_alias,
268 (char *__restrict __dst,
269 const wchar_t **__restrict __src,
270 size_t __nwc, size_t __len,
271 mbstate_t *__restrict __ps), wcsnrtombs);
272 extern size_t __REDIRECT_NTH (__wcsnrtombs_chk_warn,
273 (char *__restrict __dst,
274 const wchar_t **__restrict __src,
275 size_t __nwc, size_t __len,
276 mbstate_t *__restrict __ps,
277 size_t __dstlen), __wcsnrtombs_chk)
278 __warnattr ("wcsnrtombs called with dst buffer smaller than len");
280 #endif
282 #ifdef __USE_MISC
283 extern size_t __wcslcpy_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
284 size_t __destlen) __THROW;
285 extern size_t __REDIRECT_NTH (__wcslcpy_alias,
286 (wchar_t *__dest, const wchar_t *__src,
287 size_t __n), wcslcpy);
289 extern size_t __wcslcat_chk (wchar_t *__dest, const wchar_t *__src, size_t __n,
290 size_t __destlen) __THROW;
291 extern size_t __REDIRECT_NTH (__wcslcat_alias,
292 (wchar_t *__dest, const wchar_t *__src,
293 size_t __n), wcslcat);
294 #endif /* __USE_MISC */
296 #endif /* bits/wchar2-decl.h. */