Remove unnecessary code from x86-32 SSSE3 strncmp
[platform/upstream/glibc.git] / include / netdb.h
1 #ifndef _NETDB_H
2 #include <resolv/netdb.h>
3
4 /* Macros for accessing h_errno from inside libc.  */
5 # undef  h_errno
6 # ifdef _LIBC_REENTRANT
7 #  include <tls.h>
8 #  ifndef NOT_IN_libc
9 #   define h_errno __libc_h_errno
10 #  else
11 #   define h_errno h_errno      /* For #ifndef h_errno tests.  */
12 #  endif
13 extern __thread int h_errno attribute_tls_model_ie;
14 # else
15 extern int h_errno;
16 # endif /* _LIBC_REENTRANT */
17 # define __set_h_errno(x) (h_errno = (x))
18
19 libc_hidden_proto (hstrerror)
20 libc_hidden_proto (innetgr)
21 libc_hidden_proto (rcmd_af)
22 libc_hidden_proto (rexec_af)
23 libc_hidden_proto (rresvport_af)
24 libc_hidden_proto (ruserok_af)
25
26 libc_hidden_proto (getaddrinfo)
27 libc_hidden_proto (getnameinfo)
28 libc_hidden_proto (freeaddrinfo)
29 libc_hidden_proto (gai_strerror)
30 libc_hidden_proto (__h_errno_location)
31
32 /* Document internal interfaces.  */
33 extern int __gethostent_r (struct hostent *__restrict __result_buf,
34                            char *__restrict __buf, size_t __buflen,
35                            struct hostent **__restrict __result,
36                            int *__restrict __h_errnop) attribute_hidden;
37 extern int __old_gethostent_r (struct hostent *__restrict __result_buf,
38                                char *__restrict __buf, size_t __buflen,
39                                struct hostent **__restrict __result,
40                                int *__restrict __h_errnop);
41
42 extern int __gethostbyaddr_r (__const void *__restrict __addr,
43                               socklen_t __len, int __type,
44                               struct hostent *__restrict __result_buf,
45                               char *__restrict __buf, size_t __buflen,
46                               struct hostent **__restrict __result,
47                               int *__restrict __h_errnop);
48 extern int __old_gethostbyaddr_r (__const void *__restrict __addr,
49                                   socklen_t __len, int __type,
50                                   struct hostent *__restrict __result_buf,
51                                   char *__restrict __buf, size_t __buflen,
52                                   struct hostent **__restrict __result,
53                                   int *__restrict __h_errnop);
54
55 extern int __gethostbyaddr2_r (__const void *__restrict __addr,
56                                socklen_t __len, int __type,
57                                struct hostent *__restrict __result_buf,
58                                char *__restrict __buf, size_t __buflen,
59                                struct hostent **__restrict __result,
60                                int *__restrict __h_errnop,
61                                int32_t *ttlp);
62
63 extern int __gethostbyname_r (__const char *__restrict __name,
64                               struct hostent *__restrict __result_buf,
65                               char *__restrict __buf, size_t __buflen,
66                               struct hostent **__restrict __result,
67                               int *__restrict __h_errnop);
68 extern int __old_gethostbyname_r (__const char *__restrict __name,
69                                   struct hostent *__restrict __result_buf,
70                                   char *__restrict __buf, size_t __buflen,
71                                   struct hostent **__restrict __result,
72                                   int *__restrict __h_errnop);
73
74 extern int __gethostbyname2_r (__const char *__restrict __name, int __af,
75                                struct hostent *__restrict __result_buf,
76                                char *__restrict __buf, size_t __buflen,
77                                struct hostent **__restrict __result,
78                                int *__restrict __h_errnop);
79 extern int __old_gethostbyname2_r (__const char *__restrict __name, int __af,
80                                    struct hostent *__restrict __result_buf,
81                                    char *__restrict __buf, size_t __buflen,
82                                    struct hostent **__restrict __result,
83                                    int *__restrict __h_errnop);
84
85 extern int __gethostbyname3_r (__const char *__restrict __name, int __af,
86                                struct hostent *__restrict __result_buf,
87                                char *__restrict __buf, size_t __buflen,
88                                struct hostent **__restrict __result,
89                                int *__restrict __h_errnop,
90                                int32_t *ttlp, char **canonp);
91
92 extern int __getnetent_r (struct netent *__restrict __result_buf,
93                           char *__restrict __buf, size_t __buflen,
94                           struct netent **__restrict __result,
95                           int *__restrict __h_errnop) attribute_hidden;
96 extern int __old_getnetent_r (struct netent *__restrict __result_buf,
97                               char *__restrict __buf, size_t __buflen,
98                               struct netent **__restrict __result,
99                               int *__restrict __h_errnop);
100
101 extern int __getnetbyaddr_r (uint32_t __net, int __type,
102                              struct netent *__restrict __result_buf,
103                              char *__restrict __buf, size_t __buflen,
104                              struct netent **__restrict __result,
105                              int *__restrict __h_errnop);
106 extern int __old_getnetbyaddr_r (uint32_t __net, int __type,
107                                  struct netent *__restrict __result_buf,
108                                  char *__restrict __buf, size_t __buflen,
109                                  struct netent **__restrict __result,
110                                  int *__restrict __h_errnop);
111
112 extern int __getnetbyname_r (__const char *__restrict __name,
113                              struct netent *__restrict __result_buf,
114                              char *__restrict __buf, size_t __buflen,
115                              struct netent **__restrict __result,
116                              int *__restrict __h_errnop);
117 extern int __old_getnetbyname_r (__const char *__restrict __name,
118                                  struct netent *__restrict __result_buf,
119                                  char *__restrict __buf, size_t __buflen,
120                                  struct netent **__restrict __result,
121                                  int *__restrict __h_errnop);
122
123 extern int __getservent_r (struct servent *__restrict __result_buf,
124                            char *__restrict __buf, size_t __buflen,
125                            struct servent **__restrict __result)
126      attribute_hidden;
127 extern int __old_getservent_r (struct servent *__restrict __result_buf,
128                                char *__restrict __buf, size_t __buflen,
129                                struct servent **__restrict __result);
130
131 extern int __getservbyname_r (__const char *__restrict __name,
132                               __const char *__restrict __proto,
133                               struct servent *__restrict __result_buf,
134                               char *__restrict __buf, size_t __buflen,
135                               struct servent **__restrict __result);
136 extern int __old_getservbyname_r (__const char *__restrict __name,
137                                   __const char *__restrict __proto,
138                                   struct servent *__restrict __result_buf,
139                                   char *__restrict __buf, size_t __buflen,
140                                   struct servent **__restrict __result);
141
142 extern int __getservbyport_r (int __port,
143                               __const char *__restrict __proto,
144                               struct servent *__restrict __result_buf,
145                               char *__restrict __buf, size_t __buflen,
146                               struct servent **__restrict __result);
147 extern int __old_getservbyport_r (int __port,
148                                   __const char *__restrict __proto,
149                                   struct servent *__restrict __result_buf,
150                                   char *__restrict __buf, size_t __buflen,
151                                   struct servent **__restrict __result);
152
153 extern int __getprotoent_r (struct protoent *__restrict __result_buf,
154                             char *__restrict __buf, size_t __buflen,
155                             struct protoent **__restrict __result)
156      attribute_hidden;
157 extern int __old_getprotoent_r (struct protoent *__restrict __result_buf,
158                                 char *__restrict __buf, size_t __buflen,
159                                 struct protoent **__restrict __result);
160
161 extern int __getprotobyname_r (__const char *__restrict __name,
162                                struct protoent *__restrict __result_buf,
163                                char *__restrict __buf, size_t __buflen,
164                                struct protoent **__restrict __result);
165 extern int __old_getprotobyname_r (__const char *__restrict __name,
166                                    struct protoent *__restrict __result_buf,
167                                    char *__restrict __buf, size_t __buflen,
168                                    struct protoent **__restrict __result);
169
170 extern int __getprotobynumber_r (int __proto,
171                                  struct protoent *__restrict __res_buf,
172                                  char *__restrict __buf, size_t __buflen,
173                                  struct protoent **__restrict __result);
174 extern int __old_getprotobynumber_r (int __proto,
175                                      struct protoent *__restrict __res_buf,
176                                      char *__restrict __buf, size_t __buflen,
177                                      struct protoent **__restrict __result);
178
179 extern int __getnetgrent_r (char **__restrict __hostp,
180                             char **__restrict __userp,
181                             char **__restrict __domainp,
182                             char *__restrict __buffer, size_t __buflen);
183
184 extern int ruserpass (const char *host, const char **aname,
185                       const char **apass);
186 libc_hidden_proto (ruserpass)
187
188
189 /* The following definition has been removed from the public header
190    since we don't want people to use them.  */
191
192 #define AI_DEFAULT    (AI_V4MAPPED | AI_ADDRCONFIG)
193
194 #include <inet/netgroup.h>
195
196 struct parser_data;
197 extern int _nss_files_parse_protoent (char *line, struct protoent *result,
198                                       struct parser_data *data,
199                                       size_t datalen, int *errnop);
200 extern int _nss_files_parse_servent (char *line, struct servent *result,
201                                      struct parser_data *data,
202                                      size_t datalen, int *errnop);
203 extern int _nss_files_parse_netent (char *line, struct netent *result,
204                                     struct parser_data *data,
205                                     size_t datalen, int *errnop);
206 extern enum nss_status _nss_netgroup_parseline (char **cursor,
207                                                 struct __netgrent *result,
208                                                 char *buffer, size_t buflen,
209                                                 int *errnop);
210 libnss_files_hidden_proto (_nss_files_parse_protoent)
211 libnss_files_hidden_proto (_nss_files_parse_servent)
212 libnss_files_hidden_proto (_nss_files_parse_netent)
213 libnss_files_hidden_proto (_nss_netgroup_parseline)
214
215 #define DECLARE_NSS_PROTOTYPES(service)                                       \
216 extern enum nss_status _nss_ ## service ## _setprotoent (int);                \
217 extern enum nss_status _nss_ ## service ## _endprotoent (void);               \
218 extern enum nss_status _nss_ ## service ## _getprotoent_r                     \
219                        (struct protoent *proto, char *buffer, size_t buflen,  \
220                         int *errnop);                                         \
221 extern enum nss_status _nss_ ## service ## _getprotobyname_r                  \
222                        (const char *name, struct protoent *proto,             \
223                         char *buffer, size_t buflen, int *errnop);            \
224 extern enum nss_status _nss_ ## service ## _getprotobynumber_r                \
225                        (int number, struct protoent *proto,                   \
226                         char *buffer, size_t buflen, int *errnop);            \
227 extern enum nss_status _nss_ ## service ## _sethostent (int);                 \
228 extern enum nss_status _nss_ ## service ## _endhostent (void);                \
229 extern enum nss_status _nss_ ## service ## _gethostent_r                      \
230                        (struct hostent *host, char *buffer, size_t buflen,    \
231                         int *errnop, int *h_errnop);                          \
232 extern enum nss_status _nss_ ## service ## _gethostbyname2_r                  \
233                        (const char *name, int af, struct hostent *host,       \
234                         char *buffer, size_t buflen, int *errnop,             \
235                         int *h_errnop);                                       \
236 extern enum nss_status _nss_ ## service ## _gethostbyname_r                   \
237                        (const char *name, struct hostent *host, char *buffer, \
238                         size_t buflen, int *errnop, int *h_errnop);           \
239 extern enum nss_status _nss_ ## service ## _gethostbyaddr_r                   \
240                        (const void *addr, socklen_t addrlen, int af,          \
241                         struct hostent *host, char *buffer, size_t buflen,    \
242                         int *errnop, int *h_errnop);                          \
243 extern enum nss_status _nss_ ## service ## _setservent (int);                 \
244 extern enum nss_status _nss_ ## service ## _endservent (void);                \
245 extern enum nss_status _nss_ ## service ## _getservent_r                      \
246                        (struct servent *serv, char *buffer, size_t buflen,    \
247                         int *errnop);                                         \
248 extern enum nss_status _nss_ ## service ## _getservbyname_r                   \
249                        (const char *name, const char *protocol,               \
250                         struct servent *serv, char *buffer, size_t buflen,    \
251                         int *errnop);                                         \
252 extern enum nss_status _nss_ ## service ## _getservbyport_r                   \
253                        (int port, const char *protocol, struct servent *serv, \
254                         char *buffer, size_t buflen, int *errnop);            \
255 extern enum nss_status _nss_ ## service ## _setnetgrent                       \
256                        (const char *group, struct __netgrent *result);        \
257 extern enum nss_status _nss_ ## service ## _endnetgrent                       \
258                        (struct __netgrent *result);                           \
259 extern enum nss_status _nss_ ## service ## _getnetgrent_r                     \
260                        (struct __netgrent *result, char *buffer,              \
261                         size_t buflen, int *errnop);                          \
262 extern enum nss_status _nss_ ## service ## _setnetent (int stayopen);         \
263 extern enum nss_status _nss_ ## service ## _endnetent (void);                 \
264 extern enum nss_status _nss_ ## service ## _getnetent_r                       \
265                         (struct netent *net, char *buffer, size_t buflen,     \
266                          int *errnop, int *herrnop);                          \
267 extern enum nss_status _nss_ ## service ## _getnetbyname_r                    \
268                         (const char *name, struct netent *net, char *buffer,  \
269                          size_t buflen, int *errnop, int *herrnop);           \
270 extern enum nss_status _nss_ ## service ## _getnetbyaddr_r                    \
271                        (uint32_t addr, int type, struct netent *net,          \
272                         char *buffer, size_t buflen, int *errnop,             \
273                         int *herrnop);
274
275 DECLARE_NSS_PROTOTYPES (compat)
276 DECLARE_NSS_PROTOTYPES (dns)
277 DECLARE_NSS_PROTOTYPES (files)
278 DECLARE_NSS_PROTOTYPES (hesiod)
279 DECLARE_NSS_PROTOTYPES (nis)
280 DECLARE_NSS_PROTOTYPES (nisplus)
281
282 #undef DECLARE_NSS_PROTOTYPES
283
284 #endif /* !_NETDB_H */