1 | /* Prototypes for compatibility double == long double entry points. |
2 | Copyright (C) 2006-2022 Free Software Foundation, Inc. |
3 | This file is part of the GNU C Library. |
4 | |
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. |
9 | |
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. |
14 | |
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/>. */ |
18 | |
19 | #ifndef __NLDBL_COMPAT_H |
20 | #define __NLDBL_COMPAT_H 1 |
21 | |
22 | /* Ensure calls to libm functions from libnldbl_nonshared.a call |
23 | public names, not libm-internal names. */ |
24 | #define NO_MATH_REDIRECT |
25 | |
26 | /* Avoid long double prototypes. */ |
27 | #define __NO_LONG_DOUBLE_MATH 1 |
28 | #include <argp.h> |
29 | #include <err.h> |
30 | #include <error.h> |
31 | #include <stdarg.h> |
32 | #include <stdlib.h> |
33 | #include <stdint.h> |
34 | #include <stdio.h> |
35 | #include <printf.h> |
36 | #include <wchar.h> |
37 | #include <math.h> |
38 | #include <monetary.h> |
39 | #include <sys/syslog.h> |
40 | |
41 | |
42 | /* Declare the __nldbl_NAME function the wrappers call that's in libc.so. */ |
43 | #define NLDBL_DECL(name) extern __typeof (name) __nldbl_##name |
44 | |
45 | NLDBL_DECL (_IO_vfscanf); |
46 | NLDBL_DECL (vfscanf); |
47 | NLDBL_DECL (vfwscanf); |
48 | NLDBL_DECL (obstack_vprintf); |
49 | NLDBL_DECL (vasprintf); |
50 | NLDBL_DECL (dprintf); |
51 | NLDBL_DECL (vdprintf); |
52 | NLDBL_DECL (fprintf); |
53 | NLDBL_DECL (vfprintf); |
54 | NLDBL_DECL (vfwprintf); |
55 | NLDBL_DECL (vsnprintf); |
56 | NLDBL_DECL (vsprintf); |
57 | NLDBL_DECL (vsscanf); |
58 | NLDBL_DECL (vswprintf); |
59 | NLDBL_DECL (vswscanf); |
60 | NLDBL_DECL (__asprintf); |
61 | NLDBL_DECL (asprintf); |
62 | NLDBL_DECL (__printf_fp); |
63 | NLDBL_DECL (printf_size); |
64 | NLDBL_DECL (syslog); |
65 | NLDBL_DECL (vsyslog); |
66 | NLDBL_DECL (qecvt); |
67 | NLDBL_DECL (qfcvt); |
68 | NLDBL_DECL (qgcvt); |
69 | NLDBL_DECL (__isoc99_scanf); |
70 | NLDBL_DECL (__isoc99_fscanf); |
71 | NLDBL_DECL (__isoc99_sscanf); |
72 | NLDBL_DECL (__isoc99_vscanf); |
73 | NLDBL_DECL (__isoc99_vfscanf); |
74 | NLDBL_DECL (__isoc99_vsscanf); |
75 | NLDBL_DECL (__isoc99_wscanf); |
76 | NLDBL_DECL (__isoc99_fwscanf); |
77 | NLDBL_DECL (__isoc99_swscanf); |
78 | NLDBL_DECL (__isoc99_vwscanf); |
79 | NLDBL_DECL (__isoc99_vfwscanf); |
80 | NLDBL_DECL (__isoc99_vswscanf); |
81 | NLDBL_DECL (argp_error); |
82 | NLDBL_DECL (argp_failure); |
83 | NLDBL_DECL (warn); |
84 | NLDBL_DECL (vwarn); |
85 | NLDBL_DECL (warnx); |
86 | NLDBL_DECL (vwarnx); |
87 | NLDBL_DECL (err); |
88 | NLDBL_DECL (verr); |
89 | NLDBL_DECL (errx); |
90 | NLDBL_DECL (verrx); |
91 | NLDBL_DECL (error); |
92 | NLDBL_DECL (error_at_line); |
93 | |
94 | /* These do not exist in the normal interface, but must exist in the |
95 | __nldbl interface so that they can be called from libnldbl. */ |
96 | extern ssize_t __nldbl___vstrfmon (char *, size_t, const char *, va_list) |
97 | __THROW; |
98 | extern ssize_t __nldbl___vstrfmon_l (char *, size_t, locale_t, const char *, |
99 | va_list) |
100 | __THROW; |
101 | |
102 | /* These don't use __typeof because they were not declared by the headers, |
103 | since we don't compile with _FORTIFY_SOURCE. */ |
104 | extern int __nldbl___vfprintf_chk (FILE *__restrict, int, |
105 | const char *__restrict, __gnuc_va_list); |
106 | extern int __nldbl___vfwprintf_chk (FILE *__restrict, int, |
107 | const wchar_t *__restrict, __gnuc_va_list); |
108 | extern int __nldbl___vsprintf_chk (char *__restrict, int, size_t, |
109 | const char *__restrict, __gnuc_va_list) |
110 | __THROW; |
111 | extern int __nldbl___vsnprintf_chk (char *__restrict, size_t, int, size_t, |
112 | const char *__restrict, __gnuc_va_list) |
113 | __THROW; |
114 | extern int __nldbl___vswprintf_chk (wchar_t *__restrict, size_t, int, size_t, |
115 | const wchar_t *__restrict, __gnuc_va_list) |
116 | __THROW; |
117 | extern int __nldbl___vasprintf_chk (char **, int, const char *, __gnuc_va_list) |
118 | __THROW; |
119 | extern int __nldbl___vdprintf_chk (int, int, const char *, __gnuc_va_list); |
120 | extern int __nldbl___obstack_vprintf_chk (struct obstack *, int, const char *, |
121 | __gnuc_va_list) __THROW; |
122 | extern void __nldbl___vsyslog_chk (int, int, const char *, va_list); |
123 | |
124 | /* The original declarations of these were hidden by the including |
125 | file. */ |
126 | extern double __nldbl_daddl (double, double) __THROW; |
127 | extern double __nldbl_ddivl (double, double) __THROW; |
128 | extern double __nldbl_dmull (double, double) __THROW; |
129 | extern double __nldbl_dsubl (double, double) __THROW; |
130 | |
131 | #endif /* __NLDBL_COMPAT_H */ |
132 | |