blob: fb3939fb8a379825b862f2e8e54cbd07eafa59fa [file] [log] [blame]
Elliott Hughes13da6002025-02-03 10:42:13 -08001// Copyright (C) 2017 The Android Open Source Project
2// SPDX-License-Identifier: BSD-2-Clause
Elliott Hughes21b56eb2017-10-20 17:57:17 -07003
4#include <netdb.h>
5
6#include "header_checks.h"
7
8static void netdb_h() {
9 TYPE(struct hostent);
10 STRUCT_MEMBER(struct hostent, char*, h_name);
11 STRUCT_MEMBER(struct hostent, char**, h_aliases);
12 STRUCT_MEMBER(struct hostent, int, h_addrtype);
13 STRUCT_MEMBER(struct hostent, int, h_length);
14 STRUCT_MEMBER(struct hostent, char**, h_addr_list);
15
16 TYPE(struct netent);
17 STRUCT_MEMBER(struct netent, char*, n_name);
18 STRUCT_MEMBER(struct netent, char**, n_aliases);
19 STRUCT_MEMBER(struct netent, int, n_addrtype);
20 STRUCT_MEMBER(struct netent, uint32_t, n_net);
21
22 TYPE(uint32_t);
23
24 TYPE(struct protoent);
25 STRUCT_MEMBER(struct protoent, char*, p_name);
26 STRUCT_MEMBER(struct protoent, char**, p_aliases);
27 STRUCT_MEMBER(struct protoent, int, p_proto);
28
29
30 TYPE(struct servent);
31 STRUCT_MEMBER(struct servent, char*, s_name);
32 STRUCT_MEMBER(struct servent, char**, s_aliases);
33 STRUCT_MEMBER(struct servent, int, s_port);
34 STRUCT_MEMBER(struct servent, char*, s_proto);
35
36 MACRO(IPPORT_RESERVED);
37
38 TYPE(struct addrinfo);
39 STRUCT_MEMBER(struct addrinfo, int, ai_flags);
40 STRUCT_MEMBER(struct addrinfo, int, ai_family);
41 STRUCT_MEMBER(struct addrinfo, int, ai_socktype);
42 STRUCT_MEMBER(struct addrinfo, int, ai_protocol);
43 STRUCT_MEMBER(struct addrinfo, socklen_t, ai_addrlen);
44 STRUCT_MEMBER(struct addrinfo, struct sockaddr*, ai_addr);
45 STRUCT_MEMBER(struct addrinfo, char*, ai_canonname);
46 STRUCT_MEMBER(struct addrinfo, struct addrinfo*, ai_next);
47
48 MACRO(AI_PASSIVE);
49 MACRO(AI_CANONNAME);
50 MACRO(AI_NUMERICHOST);
51 MACRO(AI_NUMERICSERV);
52 MACRO(AI_V4MAPPED);
53 MACRO(AI_ALL);
54 MACRO(AI_ADDRCONFIG);
55
56 MACRO(NI_NOFQDN);
57 MACRO(NI_NUMERICHOST);
58 MACRO(NI_NAMEREQD);
59 MACRO(NI_NUMERICSERV);
60#if !defined(__BIONIC__) && !defined(__GLIBC__)
61 MACRO(NI_NUMERICSCOPE);
62#endif
63 MACRO(NI_DGRAM);
64
65 MACRO(EAI_AGAIN);
66 MACRO(EAI_BADFLAGS);
67 MACRO(EAI_FAIL);
68 MACRO(EAI_FAMILY);
69 MACRO(EAI_MEMORY);
70 MACRO(EAI_NONAME);
71 MACRO(EAI_SERVICE);
72 MACRO(EAI_SOCKTYPE);
73 MACRO(EAI_SYSTEM);
74 MACRO(EAI_OVERFLOW);
75
76 FUNCTION(endhostent, void (*f)(void));
77 FUNCTION(endnetent, void (*f)(void));
78 FUNCTION(endprotoent, void (*f)(void));
79 FUNCTION(endservent, void (*f)(void));
80 FUNCTION(freeaddrinfo, void (*f)(struct addrinfo*));
81 FUNCTION(gai_strerror, const char* (*f)(int));
82 FUNCTION(getaddrinfo, int (*f)(const char*, const char*, const struct addrinfo*, struct addrinfo**));
83 FUNCTION(gethostent, struct hostent* (*f)(void));
84#if defined(__BIONIC__) // Historical ABI accident.
85 FUNCTION(getnameinfo, int (*f)(const struct sockaddr*, socklen_t, char*, size_t, char*, size_t, int));
86#else
87 FUNCTION(getnameinfo, int (*f)(const struct sockaddr*, socklen_t, char*, socklen_t, char*, socklen_t, int));
88#endif
89 FUNCTION(getnetbyaddr, struct netent* (*f)(uint32_t, int));
90 FUNCTION(getnetbyname, struct netent* (*f)(const char*));
91 FUNCTION(getnetent, struct netent* (*f)(void));
92 FUNCTION(getprotobyname, struct protoent* (*f)(const char*));
93 FUNCTION(getprotobynumber, struct protoent* (*f)(int));
94 FUNCTION(getprotoent, struct protoent* (*f)(void));
95 FUNCTION(getservbyname, struct servent* (*f)(const char*, const char*));
96 FUNCTION(getservbyport, struct servent* (*f)(int, const char*));
97 FUNCTION(getservent, struct servent* (*f)(void));
98 FUNCTION(sethostent, void (*f)(int));
99 FUNCTION(setnetent, void (*f)(int));
100 FUNCTION(setprotoent, void (*f)(int));
101 FUNCTION(setservent, void (*f)(int));
102
103 TYPE(socklen_t);
104}