dhcpd-pools  3.0
ISC dhcpd lease usage analyser
socket.h
Go to the documentation of this file.
1 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
2 /* Provide a sys/socket header file for systems lacking it (read: MinGW)
3  and for systems where it is incomplete.
4  Copyright (C) 2005-2017 Free Software Foundation, Inc.
5  Written by Simon Josefsson.
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 3, or (at your option)
10  any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, see <https://www.gnu.org/licenses/>. */
19 
20 /* This file is supposed to be used on platforms that lack <sys/socket.h>,
21  on platforms where <sys/socket.h> cannot be included standalone, and on
22  platforms where <sys/socket.h> does not provide all necessary definitions.
23  It is intended to provide definitions and prototypes needed by an
24  application. */
25 
26 #if __GNUC__ >= 3
27 #pragma GCC system_header
28 #endif
29 
30 
31 #if defined _GL_ALREADY_INCLUDING_SYS_SOCKET_H
32 /* Special invocation convention:
33  - On Cygwin 1.5.x we have a sequence of nested includes
34  <sys/socket.h> -> <cygwin/socket.h> -> <asm/socket.h> -> <cygwin/if.h>,
35  and the latter includes <sys/socket.h>. In this situation, the functions
36  are not yet declared, therefore we cannot provide the C++ aliases. */
37 
38 #include_next <sys/socket.h>
39 
40 #else
41 /* Normal invocation convention. */
42 
43 #ifndef _GL_SYS_SOCKET_H
44 
45 #if 1
46 
47 # define _GL_ALREADY_INCLUDING_SYS_SOCKET_H
48 
49 /* On many platforms, <sys/socket.h> assumes prior inclusion of
50  <sys/types.h>. */
51 # include <sys/types.h>
52 
53 /* On FreeBSD 6.4, <sys/socket.h> defines some macros that assume that NULL
54  is defined. */
55 # include <stddef.h>
56 
57 /* The include_next requires a split double-inclusion guard. */
58 # include_next <sys/socket.h>
59 
60 # undef _GL_ALREADY_INCLUDING_SYS_SOCKET_H
61 
62 #endif
63 
64 #ifndef _GL_SYS_SOCKET_H
65 #define _GL_SYS_SOCKET_H
66 
67 #ifndef _GL_INLINE_HEADER_BEGIN
68  #error "Please include config.h first."
69 #endif
71 #ifndef _GL_SYS_SOCKET_INLINE
72 # define _GL_SYS_SOCKET_INLINE _GL_INLINE
73 #endif
74 
75 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
76 /* C++ compatible function declaration macros.
77  Copyright (C) 2010-2017 Free Software Foundation, Inc.
78 
79  This program is free software: you can redistribute it and/or modify it
80  under the terms of the GNU General Public License as published
81  by the Free Software Foundation; either version 3 of the License, or
82  (at your option) any later version.
83 
84  This program is distributed in the hope that it will be useful,
85  but WITHOUT ANY WARRANTY; without even the implied warranty of
86  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
87  General Public License for more details.
88 
89  You should have received a copy of the GNU General Public License
90  along with this program. If not, see <https://www.gnu.org/licenses/>. */
91 
92 #ifndef _GL_CXXDEFS_H
93 #define _GL_CXXDEFS_H
94 
95 /* Begin/end the GNULIB_NAMESPACE namespace. */
96 #if defined __cplusplus && defined GNULIB_NAMESPACE
97 # define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE {
98 # define _GL_END_NAMESPACE }
99 #else
100 # define _GL_BEGIN_NAMESPACE
101 # define _GL_END_NAMESPACE
102 #endif
103 
104 /* The three most frequent use cases of these macros are:
105 
106  * For providing a substitute for a function that is missing on some
107  platforms, but is declared and works fine on the platforms on which
108  it exists:
109 
110  #if @GNULIB_FOO@
111  # if !@HAVE_FOO@
112  _GL_FUNCDECL_SYS (foo, ...);
113  # endif
114  _GL_CXXALIAS_SYS (foo, ...);
115  _GL_CXXALIASWARN (foo);
116  #elif defined GNULIB_POSIXCHECK
117  ...
118  #endif
119 
120  * For providing a replacement for a function that exists on all platforms,
121  but is broken/insufficient and needs to be replaced on some platforms:
122 
123  #if @GNULIB_FOO@
124  # if @REPLACE_FOO@
125  # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
126  # undef foo
127  # define foo rpl_foo
128  # endif
129  _GL_FUNCDECL_RPL (foo, ...);
130  _GL_CXXALIAS_RPL (foo, ...);
131  # else
132  _GL_CXXALIAS_SYS (foo, ...);
133  # endif
134  _GL_CXXALIASWARN (foo);
135  #elif defined GNULIB_POSIXCHECK
136  ...
137  #endif
138 
139  * For providing a replacement for a function that exists on some platforms
140  but is broken/insufficient and needs to be replaced on some of them and
141  is additionally either missing or undeclared on some other platforms:
142 
143  #if @GNULIB_FOO@
144  # if @REPLACE_FOO@
145  # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
146  # undef foo
147  # define foo rpl_foo
148  # endif
149  _GL_FUNCDECL_RPL (foo, ...);
150  _GL_CXXALIAS_RPL (foo, ...);
151  # else
152  # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@
153  _GL_FUNCDECL_SYS (foo, ...);
154  # endif
155  _GL_CXXALIAS_SYS (foo, ...);
156  # endif
157  _GL_CXXALIASWARN (foo);
158  #elif defined GNULIB_POSIXCHECK
159  ...
160  #endif
161 */
162 
163 /* _GL_EXTERN_C declaration;
164  performs the declaration with C linkage. */
165 #if defined __cplusplus
166 # define _GL_EXTERN_C extern "C"
167 #else
168 # define _GL_EXTERN_C extern
169 #endif
170 
171 /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes);
172  declares a replacement function, named rpl_func, with the given prototype,
173  consisting of return type, parameters, and attributes.
174  Example:
175  _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...)
176  _GL_ARG_NONNULL ((1)));
177  */
178 #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \
179  _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes)
180 #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \
181  _GL_EXTERN_C rettype rpl_func parameters_and_attributes
182 
183 /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes);
184  declares the system function, named func, with the given prototype,
185  consisting of return type, parameters, and attributes.
186  Example:
187  _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...)
188  _GL_ARG_NONNULL ((1)));
189  */
190 #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \
191  _GL_EXTERN_C rettype func parameters_and_attributes
192 
193 /* _GL_CXXALIAS_RPL (func, rettype, parameters);
194  declares a C++ alias called GNULIB_NAMESPACE::func
195  that redirects to rpl_func, if GNULIB_NAMESPACE is defined.
196  Example:
197  _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...));
198 
199  Wrapping rpl_func in an object with an inline conversion operator
200  avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is
201  actually used in the program. */
202 #define _GL_CXXALIAS_RPL(func,rettype,parameters) \
203  _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters)
204 #if defined __cplusplus && defined GNULIB_NAMESPACE
205 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
206  namespace GNULIB_NAMESPACE \
207  { \
208  static const struct _gl_ ## func ## _wrapper \
209  { \
210  typedef rettype (*type) parameters; \
211  \
212  inline operator type () const \
213  { \
214  return ::rpl_func; \
215  } \
216  } func = {}; \
217  } \
218  _GL_EXTERN_C int _gl_cxxalias_dummy
219 #else
220 # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \
221  _GL_EXTERN_C int _gl_cxxalias_dummy
222 #endif
223 
224 /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters);
225  is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
226  except that the C function rpl_func may have a slightly different
227  declaration. A cast is used to silence the "invalid conversion" error
228  that would otherwise occur. */
229 #if defined __cplusplus && defined GNULIB_NAMESPACE
230 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
231  namespace GNULIB_NAMESPACE \
232  { \
233  static const struct _gl_ ## func ## _wrapper \
234  { \
235  typedef rettype (*type) parameters; \
236  \
237  inline operator type () const \
238  { \
239  return reinterpret_cast<type>(::rpl_func); \
240  } \
241  } func = {}; \
242  } \
243  _GL_EXTERN_C int _gl_cxxalias_dummy
244 #else
245 # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \
246  _GL_EXTERN_C int _gl_cxxalias_dummy
247 #endif
248 
249 /* _GL_CXXALIAS_SYS (func, rettype, parameters);
250  declares a C++ alias called GNULIB_NAMESPACE::func
251  that redirects to the system provided function func, if GNULIB_NAMESPACE
252  is defined.
253  Example:
254  _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...));
255 
256  Wrapping func in an object with an inline conversion operator
257  avoids a reference to func unless GNULIB_NAMESPACE::func is
258  actually used in the program. */
259 #if defined __cplusplus && defined GNULIB_NAMESPACE
260 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
261  namespace GNULIB_NAMESPACE \
262  { \
263  static const struct _gl_ ## func ## _wrapper \
264  { \
265  typedef rettype (*type) parameters; \
266  \
267  inline operator type () const \
268  { \
269  return ::func; \
270  } \
271  } func = {}; \
272  } \
273  _GL_EXTERN_C int _gl_cxxalias_dummy
274 #else
275 # define _GL_CXXALIAS_SYS(func,rettype,parameters) \
276  _GL_EXTERN_C int _gl_cxxalias_dummy
277 #endif
278 
279 /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters);
280  is like _GL_CXXALIAS_SYS (func, rettype, parameters);
281  except that the C function func may have a slightly different declaration.
282  A cast is used to silence the "invalid conversion" error that would
283  otherwise occur. */
284 #if defined __cplusplus && defined GNULIB_NAMESPACE
285 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
286  namespace GNULIB_NAMESPACE \
287  { \
288  static const struct _gl_ ## func ## _wrapper \
289  { \
290  typedef rettype (*type) parameters; \
291  \
292  inline operator type () const \
293  { \
294  return reinterpret_cast<type>(::func); \
295  } \
296  } func = {}; \
297  } \
298  _GL_EXTERN_C int _gl_cxxalias_dummy
299 #else
300 # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \
301  _GL_EXTERN_C int _gl_cxxalias_dummy
302 #endif
303 
304 /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2);
305  is like _GL_CXXALIAS_SYS (func, rettype, parameters);
306  except that the C function is picked among a set of overloaded functions,
307  namely the one with rettype2 and parameters2. Two consecutive casts
308  are used to silence the "cannot find a match" and "invalid conversion"
309  errors that would otherwise occur. */
310 #if defined __cplusplus && defined GNULIB_NAMESPACE
311  /* The outer cast must be a reinterpret_cast.
312  The inner cast: When the function is defined as a set of overloaded
313  functions, it works as a static_cast<>, choosing the designated variant.
314  When the function is defined as a single variant, it works as a
315  reinterpret_cast<>. The parenthesized cast syntax works both ways. */
316 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
317  namespace GNULIB_NAMESPACE \
318  { \
319  static const struct _gl_ ## func ## _wrapper \
320  { \
321  typedef rettype (*type) parameters; \
322  \
323  inline operator type () const \
324  { \
325  return reinterpret_cast<type>((rettype2 (*) parameters2)(::func)); \
326  } \
327  } func = {}; \
328  } \
329  _GL_EXTERN_C int _gl_cxxalias_dummy
330 #else
331 # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
332  _GL_EXTERN_C int _gl_cxxalias_dummy
333 #endif
334 
335 /* _GL_CXXALIASWARN (func);
336  causes a warning to be emitted when ::func is used but not when
337  GNULIB_NAMESPACE::func is used. func must be defined without overloaded
338  variants. */
339 #if defined __cplusplus && defined GNULIB_NAMESPACE
340 # define _GL_CXXALIASWARN(func) \
341  _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
342 # define _GL_CXXALIASWARN_1(func,namespace) \
343  _GL_CXXALIASWARN_2 (func, namespace)
344 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
345  we enable the warning only when not optimizing. */
346 # if !__OPTIMIZE__
347 # define _GL_CXXALIASWARN_2(func,namespace) \
348  _GL_WARN_ON_USE (func, \
349  "The symbol ::" #func " refers to the system function. " \
350  "Use " #namespace "::" #func " instead.")
351 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
352 # define _GL_CXXALIASWARN_2(func,namespace) \
353  extern __typeof__ (func) func
354 # else
355 # define _GL_CXXALIASWARN_2(func,namespace) \
356  _GL_EXTERN_C int _gl_cxxalias_dummy
357 # endif
358 #else
359 # define _GL_CXXALIASWARN(func) \
360  _GL_EXTERN_C int _gl_cxxalias_dummy
361 #endif
362 
363 /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
364  causes a warning to be emitted when the given overloaded variant of ::func
365  is used but not when GNULIB_NAMESPACE::func is used. */
366 #if defined __cplusplus && defined GNULIB_NAMESPACE
367 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
368  _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
369  GNULIB_NAMESPACE)
370 # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
371  _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
372 /* To work around GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
373  we enable the warning only when not optimizing. */
374 # if !__OPTIMIZE__
375 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
376  _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
377  "The symbol ::" #func " refers to the system function. " \
378  "Use " #namespace "::" #func " instead.")
379 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
380 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
381  extern __typeof__ (func) func
382 # else
383 # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
384  _GL_EXTERN_C int _gl_cxxalias_dummy
385 # endif
386 #else
387 # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
388  _GL_EXTERN_C int _gl_cxxalias_dummy
389 #endif
390 
391 #endif /* _GL_CXXDEFS_H */
392 
393 /* The definition of _GL_ARG_NONNULL is copied here. */
394 /* A C macro for declaring that specific arguments must not be NULL.
395  Copyright (C) 2009-2017 Free Software Foundation, Inc.
396 
397  This program is free software: you can redistribute it and/or modify it
398  under the terms of the GNU General Public License as published
399  by the Free Software Foundation; either version 3 of the License, or
400  (at your option) any later version.
401 
402  This program is distributed in the hope that it will be useful,
403  but WITHOUT ANY WARRANTY; without even the implied warranty of
404  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
405  General Public License for more details.
406 
407  You should have received a copy of the GNU General Public License
408  along with this program. If not, see <https://www.gnu.org/licenses/>. */
409 
410 /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
411  that the values passed as arguments n, ..., m must be non-NULL pointers.
412  n = 1 stands for the first argument, n = 2 for the second argument etc. */
413 #ifndef _GL_ARG_NONNULL
414 # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
415 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
416 # else
417 # define _GL_ARG_NONNULL(params)
418 # endif
419 #endif
420 
421 /* The definition of _GL_WARN_ON_USE is copied here. */
422 /* A C macro for emitting warnings if a function is used.
423  Copyright (C) 2010-2017 Free Software Foundation, Inc.
424 
425  This program is free software: you can redistribute it and/or modify it
426  under the terms of the GNU General Public License as published
427  by the Free Software Foundation; either version 3 of the License, or
428  (at your option) any later version.
429 
430  This program is distributed in the hope that it will be useful,
431  but WITHOUT ANY WARRANTY; without even the implied warranty of
432  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
433  General Public License for more details.
434 
435  You should have received a copy of the GNU General Public License
436  along with this program. If not, see <https://www.gnu.org/licenses/>. */
437 
438 /* _GL_WARN_ON_USE (function, "literal string") issues a declaration
439  for FUNCTION which will then trigger a compiler warning containing
440  the text of "literal string" anywhere that function is called, if
441  supported by the compiler. If the compiler does not support this
442  feature, the macro expands to an unused extern declaration.
443 
444  This macro is useful for marking a function as a potential
445  portability trap, with the intent that "literal string" include
446  instructions on the replacement function that should be used
447  instead. However, one of the reasons that a function is a
448  portability trap is if it has the wrong signature. Declaring
449  FUNCTION with a different signature in C is a compilation error, so
450  this macro must use the same type as any existing declaration so
451  that programs that avoid the problematic FUNCTION do not fail to
452  compile merely because they included a header that poisoned the
453  function. But this implies that _GL_WARN_ON_USE is only safe to
454  use if FUNCTION is known to already have a declaration. Use of
455  this macro implies that there must not be any other macro hiding
456  the declaration of FUNCTION; but undefining FUNCTION first is part
457  of the poisoning process anyway (although for symbols that are
458  provided only via a macro, the result is a compilation error rather
459  than a warning containing "literal string"). Also note that in
460  C++, it is only safe to use if FUNCTION has no overloads.
461 
462  For an example, it is possible to poison 'getline' by:
463  - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]],
464  [getline]) in configure.ac, which potentially defines
465  HAVE_RAW_DECL_GETLINE
466  - adding this code to a header that wraps the system <stdio.h>:
467  #undef getline
468  #if HAVE_RAW_DECL_GETLINE
469  _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but"
470  "not universally present; use the gnulib module getline");
471  #endif
472 
473  It is not possible to directly poison global variables. But it is
474  possible to write a wrapper accessor function, and poison that
475  (less common usage, like &environ, will cause a compilation error
476  rather than issue the nice warning, but the end result of informing
477  the developer about their portability problem is still achieved):
478  #if HAVE_RAW_DECL_ENVIRON
479  static char ***rpl_environ (void) { return &environ; }
480  _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared");
481  # undef environ
482  # define environ (*rpl_environ ())
483  #endif
484  */
485 #ifndef _GL_WARN_ON_USE
486 
487 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
488 /* A compiler attribute is available in gcc versions 4.3.0 and later. */
489 # define _GL_WARN_ON_USE(function, message) \
490 extern __typeof__ (function) function __attribute__ ((__warning__ (message)))
491 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
492 /* Verify the existence of the function. */
493 # define _GL_WARN_ON_USE(function, message) \
494 extern __typeof__ (function) function
495 # else /* Unsupported. */
496 # define _GL_WARN_ON_USE(function, message) \
497 _GL_WARN_EXTERN_C int _gl_warn_on_use
498 # endif
499 #endif
500 
501 /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
502  is like _GL_WARN_ON_USE (function, "string"), except that the function is
503  declared with the given prototype, consisting of return type, parameters,
504  and attributes.
505  This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
506  not work in this case. */
507 #ifndef _GL_WARN_ON_USE_CXX
508 # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
509 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
510 extern rettype function parameters_and_attributes \
511  __attribute__ ((__warning__ (msg)))
512 # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
513 /* Verify the existence of the function. */
514 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
515 extern rettype function parameters_and_attributes
516 # else /* Unsupported. */
517 # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
518 _GL_WARN_EXTERN_C int _gl_warn_on_use
519 # endif
520 #endif
521 
522 /* _GL_WARN_EXTERN_C declaration;
523  performs the declaration with C linkage. */
524 #ifndef _GL_WARN_EXTERN_C
525 # if defined __cplusplus
526 # define _GL_WARN_EXTERN_C extern "C"
527 # else
528 # define _GL_WARN_EXTERN_C extern
529 # endif
530 #endif
531 
532 #if !1
533 # if !GNULIB_defined_sa_family_t
534 /* On OS/2 kLIBC, sa_family_t is unsigned char unless TCPV40HDRS is defined. */
535 # if !defined __KLIBC__ || defined TCPV40HDRS
536 typedef unsigned short sa_family_t;
537 # else
538 typedef unsigned char sa_family_t;
539 # endif
540 # define GNULIB_defined_sa_family_t 1
541 # endif
542 #endif
543 
544 #if 1
545 /* Make the 'struct sockaddr_storage' field 'ss_family' visible on AIX 7.1. */
546 # if !1
547 # ifndef ss_family
548 # define ss_family __ss_family
549 # endif
550 # endif
551 #else
552 # include <stdalign.h>
553 /* Code taken from glibc sysdeps/unix/sysv/linux/bits/socket.h on
554  2009-05-08, licensed under LGPLv2.1+, plus portability fixes. */
555 # define __ss_aligntype unsigned long int
556 # define _SS_SIZE 256
557 # define _SS_PADSIZE \
558  (_SS_SIZE - ((sizeof (sa_family_t) >= alignof (__ss_aligntype) \
559  ? sizeof (sa_family_t) \
560  : alignof (__ss_aligntype)) \
561  + sizeof (__ss_aligntype)))
562 
563 # if !GNULIB_defined_struct_sockaddr_storage
564 struct sockaddr_storage
565 {
566  sa_family_t ss_family; /* Address family, etc. */
567  __ss_aligntype __ss_align; /* Force desired alignment. */
569 };
570 # define GNULIB_defined_struct_sockaddr_storage 1
571 # endif
572 
573 #endif
574 
575 /* Get struct iovec. */
576 /* But avoid namespace pollution on glibc systems. */
577 #if ! defined __GLIBC__
578 # include <sys/uio.h>
579 #endif
580 
581 #if 1
582 
583 /* A platform that has <sys/socket.h>. */
584 
585 /* For shutdown(). */
586 # if !defined SHUT_RD
587 # define SHUT_RD 0
588 # endif
589 # if !defined SHUT_WR
590 # define SHUT_WR 1
591 # endif
592 # if !defined SHUT_RDWR
593 # define SHUT_RDWR 2
594 # endif
595 
596 # ifdef __VMS /* OpenVMS */
597 # ifndef CMSG_SPACE
598 # define CMSG_SPACE(length) _CMSG_SPACE(length)
599 # endif
600 # ifndef CMSG_LEN
601 # define CMSG_LEN(length) _CMSG_LEN(length)
602 # endif
603 # endif
604 
605 #else
606 
607 # ifdef __CYGWIN__
608 # error "Cygwin does have a sys/socket.h, doesn't it?!?"
609 # endif
610 
611 /* A platform that lacks <sys/socket.h>.
612 
613  Currently only MinGW is supported. See the gnulib manual regarding
614  Windows sockets. MinGW has the header files winsock2.h and
615  ws2tcpip.h that declare the sys/socket.h definitions we need. Note
616  that you can influence which definitions you get by setting the
617  WINVER symbol before including these two files. For example,
618  getaddrinfo is only available if _WIN32_WINNT >= 0x0501 (that
619  symbol is set indirectly through WINVER). You can set this by
620  adding AC_DEFINE(WINVER, 0x0501) to configure.ac. Note that your
621  code may not run on older Windows releases then. My Windows 2000
622  box was not able to run the code, for example. The situation is
623  slightly confusing because
624  <https://msdn.microsoft.com/en-us/library/ms738520>
625  suggests that getaddrinfo should be available on all Windows
626  releases. */
627 
628 # if 0
629 # include <winsock2.h>
630 # endif
631 # if 0
632 # include <ws2tcpip.h>
633 # endif
634 
635 /* For shutdown(). */
636 # if !defined SHUT_RD && defined SD_RECEIVE
637 # define SHUT_RD SD_RECEIVE
638 # endif
639 # if !defined SHUT_WR && defined SD_SEND
640 # define SHUT_WR SD_SEND
641 # endif
642 # if !defined SHUT_RDWR && defined SD_BOTH
643 # define SHUT_RDWR SD_BOTH
644 # endif
645 
646 # if 0
647 /* Include headers needed by the emulation code. */
648 # include <sys/types.h>
649 # include <io.h>
650 
651 # if !GNULIB_defined_socklen_t
652 typedef int socklen_t;
653 # define GNULIB_defined_socklen_t 1
654 # endif
655 
656 # endif
657 
658 /* Rudimentary 'struct msghdr'; this works as long as you don't try to
659  access msg_control or msg_controllen. */
660 struct msghdr {
661  void *msg_name;
662  socklen_t msg_namelen;
663  struct iovec *msg_iov;
664  int msg_iovlen;
665  int msg_flags;
666 };
667 
668 #endif
669 
670 /* Fix some definitions from <winsock2.h>. */
671 
672 #if 0
673 
674 # if !GNULIB_defined_rpl_fd_isset
675 
676 /* Re-define FD_ISSET to avoid a WSA call while we are not using
677  network sockets. */
679 rpl_fd_isset (SOCKET fd, fd_set * set)
680 {
681  u_int i;
682  if (set == NULL)
683  return 0;
684 
685  for (i = 0; i < set->fd_count; i++)
686  if (set->fd_array[i] == fd)
687  return 1;
688 
689  return 0;
690 }
691 
692 # define GNULIB_defined_rpl_fd_isset 1
693 # endif
694 
695 # undef FD_ISSET
696 # define FD_ISSET(fd, set) rpl_fd_isset(fd, set)
697 
698 #endif
699 
700 /* Hide some function declarations from <winsock2.h>. */
701 
702 #if 0
703 # if !defined _GL_UNISTD_H
704 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
705 # undef close
706 # define close close_used_without_including_unistd_h
707 # else
708  _GL_WARN_ON_USE (close,
709  "close() used without including <unistd.h>");
710 # endif
711 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
712 # undef gethostname
713 # define gethostname gethostname_used_without_including_unistd_h
714 # else
715  _GL_WARN_ON_USE (gethostname,
716  "gethostname() used without including <unistd.h>");
717 # endif
718 # endif
719 # if !defined _GL_SYS_SELECT_H
720 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
721 # undef select
722 # define select select_used_without_including_sys_select_h
723 # else
724  _GL_WARN_ON_USE (select,
725  "select() used without including <sys/select.h>");
726 # endif
727 # endif
728 #endif
729 
730 /* Wrap everything else to use libc file descriptors for sockets. */
731 
732 #if 0
733 # if 0
734 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
735 # undef socket
736 # define socket rpl_socket
737 # endif
738 _GL_FUNCDECL_RPL (socket, int, (int domain, int type, int protocol));
739 _GL_CXXALIAS_RPL (socket, int, (int domain, int type, int protocol));
740 # else
741 _GL_CXXALIAS_SYS (socket, int, (int domain, int type, int protocol));
742 # endif
743 _GL_CXXALIASWARN (socket);
744 #elif 0
745 # undef socket
746 # define socket socket_used_without_requesting_gnulib_module_socket
747 #elif defined GNULIB_POSIXCHECK
748 # undef socket
749 # if HAVE_RAW_DECL_SOCKET
750 _GL_WARN_ON_USE (socket, "socket is not always POSIX compliant - "
751  "use gnulib module socket for portability");
752 # endif
753 #endif
754 
755 #if 0
756 # if 0
757 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
758 # undef connect
759 # define connect rpl_connect
760 # endif
761 _GL_FUNCDECL_RPL (connect, int,
762  (int fd, const struct sockaddr *addr, socklen_t addrlen)
763  _GL_ARG_NONNULL ((2)));
764 _GL_CXXALIAS_RPL (connect, int,
765  (int fd, const struct sockaddr *addr, socklen_t addrlen));
766 # else
767 /* Need to cast, because on NonStop Kernel, the third parameter is
768  size_t addrlen. */
769 _GL_CXXALIAS_SYS_CAST (connect, int,
770  (int fd,
771  const struct sockaddr *addr, socklen_t addrlen));
772 # endif
773 _GL_CXXALIASWARN (connect);
774 #elif 0
775 # undef connect
776 # define connect socket_used_without_requesting_gnulib_module_connect
777 #elif defined GNULIB_POSIXCHECK
778 # undef connect
779 # if HAVE_RAW_DECL_CONNECT
780 _GL_WARN_ON_USE (connect, "connect is not always POSIX compliant - "
781  "use gnulib module connect for portability");
782 # endif
783 #endif
784 
785 #if 0
786 # if 0
787 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
788 # undef accept
789 # define accept rpl_accept
790 # endif
791 _GL_FUNCDECL_RPL (accept, int,
792  (int fd, struct sockaddr *addr, socklen_t *addrlen));
793 _GL_CXXALIAS_RPL (accept, int,
794  (int fd, struct sockaddr *addr, socklen_t *addrlen));
795 # else
796 /* Need to cast, because on Solaris 10 systems, the third parameter is
797  void *addrlen. */
798 _GL_CXXALIAS_SYS_CAST (accept, int,
799  (int fd, struct sockaddr *addr, socklen_t *addrlen));
800 # endif
801 _GL_CXXALIASWARN (accept);
802 #elif 0
803 # undef accept
804 # define accept accept_used_without_requesting_gnulib_module_accept
805 #elif defined GNULIB_POSIXCHECK
806 # undef accept
807 # if HAVE_RAW_DECL_ACCEPT
808 _GL_WARN_ON_USE (accept, "accept is not always POSIX compliant - "
809  "use gnulib module accept for portability");
810 # endif
811 #endif
812 
813 #if 0
814 # if 0
815 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
816 # undef bind
817 # define bind rpl_bind
818 # endif
819 _GL_FUNCDECL_RPL (bind, int,
820  (int fd, const struct sockaddr *addr, socklen_t addrlen)
821  _GL_ARG_NONNULL ((2)));
822 _GL_CXXALIAS_RPL (bind, int,
823  (int fd, const struct sockaddr *addr, socklen_t addrlen));
824 # else
825 /* Need to cast, because on NonStop Kernel, the third parameter is
826  size_t addrlen. */
827 _GL_CXXALIAS_SYS_CAST (bind, int,
828  (int fd,
829  const struct sockaddr *addr, socklen_t addrlen));
830 # endif
831 _GL_CXXALIASWARN (bind);
832 #elif 0
833 # undef bind
834 # define bind bind_used_without_requesting_gnulib_module_bind
835 #elif defined GNULIB_POSIXCHECK
836 # undef bind
837 # if HAVE_RAW_DECL_BIND
838 _GL_WARN_ON_USE (bind, "bind is not always POSIX compliant - "
839  "use gnulib module bind for portability");
840 # endif
841 #endif
842 
843 #if 0
844 # if 0
845 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
846 # undef getpeername
847 # define getpeername rpl_getpeername
848 # endif
849 _GL_FUNCDECL_RPL (getpeername, int,
850  (int fd, struct sockaddr *addr, socklen_t *addrlen)
851  _GL_ARG_NONNULL ((2, 3)));
852 _GL_CXXALIAS_RPL (getpeername, int,
853  (int fd, struct sockaddr *addr, socklen_t *addrlen));
854 # else
855 /* Need to cast, because on Solaris 10 systems, the third parameter is
856  void *addrlen. */
857 _GL_CXXALIAS_SYS_CAST (getpeername, int,
858  (int fd, struct sockaddr *addr, socklen_t *addrlen));
859 # endif
860 _GL_CXXALIASWARN (getpeername);
861 #elif 0
862 # undef getpeername
863 # define getpeername getpeername_used_without_requesting_gnulib_module_getpeername
864 #elif defined GNULIB_POSIXCHECK
865 # undef getpeername
866 # if HAVE_RAW_DECL_GETPEERNAME
867 _GL_WARN_ON_USE (getpeername, "getpeername is not always POSIX compliant - "
868  "use gnulib module getpeername for portability");
869 # endif
870 #endif
871 
872 #if 0
873 # if 0
874 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
875 # undef getsockname
876 # define getsockname rpl_getsockname
877 # endif
878 _GL_FUNCDECL_RPL (getsockname, int,
879  (int fd, struct sockaddr *addr, socklen_t *addrlen)
880  _GL_ARG_NONNULL ((2, 3)));
881 _GL_CXXALIAS_RPL (getsockname, int,
882  (int fd, struct sockaddr *addr, socklen_t *addrlen));
883 # else
884 /* Need to cast, because on Solaris 10 systems, the third parameter is
885  void *addrlen. */
886 _GL_CXXALIAS_SYS_CAST (getsockname, int,
887  (int fd, struct sockaddr *addr, socklen_t *addrlen));
888 # endif
889 _GL_CXXALIASWARN (getsockname);
890 #elif 0
891 # undef getsockname
892 # define getsockname getsockname_used_without_requesting_gnulib_module_getsockname
893 #elif defined GNULIB_POSIXCHECK
894 # undef getsockname
895 # if HAVE_RAW_DECL_GETSOCKNAME
896 _GL_WARN_ON_USE (getsockname, "getsockname is not always POSIX compliant - "
897  "use gnulib module getsockname for portability");
898 # endif
899 #endif
900 
901 #if 0
902 # if 0
903 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
904 # undef getsockopt
905 # define getsockopt rpl_getsockopt
906 # endif
907 _GL_FUNCDECL_RPL (getsockopt, int, (int fd, int level, int optname,
908  void *optval, socklen_t *optlen)
909  _GL_ARG_NONNULL ((4, 5)));
910 _GL_CXXALIAS_RPL (getsockopt, int, (int fd, int level, int optname,
911  void *optval, socklen_t *optlen));
912 # else
913 /* Need to cast, because on Solaris 10 systems, the fifth parameter is
914  void *optlen. */
915 _GL_CXXALIAS_SYS_CAST (getsockopt, int, (int fd, int level, int optname,
916  void *optval, socklen_t *optlen));
917 # endif
918 _GL_CXXALIASWARN (getsockopt);
919 #elif 0
920 # undef getsockopt
921 # define getsockopt getsockopt_used_without_requesting_gnulib_module_getsockopt
922 #elif defined GNULIB_POSIXCHECK
923 # undef getsockopt
924 # if HAVE_RAW_DECL_GETSOCKOPT
925 _GL_WARN_ON_USE (getsockopt, "getsockopt is not always POSIX compliant - "
926  "use gnulib module getsockopt for portability");
927 # endif
928 #endif
929 
930 #if 0
931 # if 0
932 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
933 # undef listen
934 # define listen rpl_listen
935 # endif
936 _GL_FUNCDECL_RPL (listen, int, (int fd, int backlog));
937 _GL_CXXALIAS_RPL (listen, int, (int fd, int backlog));
938 # else
939 _GL_CXXALIAS_SYS (listen, int, (int fd, int backlog));
940 # endif
941 _GL_CXXALIASWARN (listen);
942 #elif 0
943 # undef listen
944 # define listen listen_used_without_requesting_gnulib_module_listen
945 #elif defined GNULIB_POSIXCHECK
946 # undef listen
947 # if HAVE_RAW_DECL_LISTEN
948 _GL_WARN_ON_USE (listen, "listen is not always POSIX compliant - "
949  "use gnulib module listen for portability");
950 # endif
951 #endif
952 
953 #if 0
954 # if 0
955 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
956 # undef recv
957 # define recv rpl_recv
958 # endif
959 _GL_FUNCDECL_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags)
960  _GL_ARG_NONNULL ((2)));
961 _GL_CXXALIAS_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags));
962 # else
963 _GL_CXXALIAS_SYS (recv, ssize_t, (int fd, void *buf, size_t len, int flags));
964 # endif
965 _GL_CXXALIASWARN (recv);
966 #elif 0
967 # undef recv
968 # define recv recv_used_without_requesting_gnulib_module_recv
969 #elif defined GNULIB_POSIXCHECK
970 # undef recv
971 # if HAVE_RAW_DECL_RECV
972 _GL_WARN_ON_USE (recv, "recv is not always POSIX compliant - "
973  "use gnulib module recv for portability");
974 # endif
975 #endif
976 
977 #if 0
978 # if 0
979 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
980 # undef send
981 # define send rpl_send
982 # endif
983 _GL_FUNCDECL_RPL (send, ssize_t,
984  (int fd, const void *buf, size_t len, int flags)
985  _GL_ARG_NONNULL ((2)));
986 _GL_CXXALIAS_RPL (send, ssize_t,
987  (int fd, const void *buf, size_t len, int flags));
988 # else
989 _GL_CXXALIAS_SYS (send, ssize_t,
990  (int fd, const void *buf, size_t len, int flags));
991 # endif
992 _GL_CXXALIASWARN (send);
993 #elif 0
994 # undef send
995 # define send send_used_without_requesting_gnulib_module_send
996 #elif defined GNULIB_POSIXCHECK
997 # undef send
998 # if HAVE_RAW_DECL_SEND
999 _GL_WARN_ON_USE (send, "send is not always POSIX compliant - "
1000  "use gnulib module send for portability");
1001 # endif
1002 #endif
1003 
1004 #if 0
1005 # if 0
1006 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1007 # undef recvfrom
1008 # define recvfrom rpl_recvfrom
1009 # endif
1010 _GL_FUNCDECL_RPL (recvfrom, ssize_t,
1011  (int fd, void *buf, size_t len, int flags,
1012  struct sockaddr *from, socklen_t *fromlen)
1013  _GL_ARG_NONNULL ((2)));
1014 _GL_CXXALIAS_RPL (recvfrom, ssize_t,
1015  (int fd, void *buf, size_t len, int flags,
1016  struct sockaddr *from, socklen_t *fromlen));
1017 # else
1018 /* Need to cast, because on Solaris 10 systems, the sixth parameter is
1019  void *fromlen. */
1020 _GL_CXXALIAS_SYS_CAST (recvfrom, ssize_t,
1021  (int fd, void *buf, size_t len, int flags,
1022  struct sockaddr *from, socklen_t *fromlen));
1023 # endif
1024 _GL_CXXALIASWARN (recvfrom);
1025 #elif 0
1026 # undef recvfrom
1027 # define recvfrom recvfrom_used_without_requesting_gnulib_module_recvfrom
1028 #elif defined GNULIB_POSIXCHECK
1029 # undef recvfrom
1030 # if HAVE_RAW_DECL_RECVFROM
1031 _GL_WARN_ON_USE (recvfrom, "recvfrom is not always POSIX compliant - "
1032  "use gnulib module recvfrom for portability");
1033 # endif
1034 #endif
1035 
1036 #if 0
1037 # if 0
1038 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1039 # undef sendto
1040 # define sendto rpl_sendto
1041 # endif
1042 _GL_FUNCDECL_RPL (sendto, ssize_t,
1043  (int fd, const void *buf, size_t len, int flags,
1044  const struct sockaddr *to, socklen_t tolen)
1045  _GL_ARG_NONNULL ((2)));
1046 _GL_CXXALIAS_RPL (sendto, ssize_t,
1047  (int fd, const void *buf, size_t len, int flags,
1048  const struct sockaddr *to, socklen_t tolen));
1049 # else
1050 /* Need to cast, because on NonStop Kernel, the sixth parameter is
1051  size_t tolen. */
1052 _GL_CXXALIAS_SYS_CAST (sendto, ssize_t,
1053  (int fd, const void *buf, size_t len, int flags,
1054  const struct sockaddr *to, socklen_t tolen));
1055 # endif
1056 _GL_CXXALIASWARN (sendto);
1057 #elif 0
1058 # undef sendto
1059 # define sendto sendto_used_without_requesting_gnulib_module_sendto
1060 #elif defined GNULIB_POSIXCHECK
1061 # undef sendto
1062 # if HAVE_RAW_DECL_SENDTO
1063 _GL_WARN_ON_USE (sendto, "sendto is not always POSIX compliant - "
1064  "use gnulib module sendto for portability");
1065 # endif
1066 #endif
1067 
1068 #if 0
1069 # if 0
1070 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1071 # undef setsockopt
1072 # define setsockopt rpl_setsockopt
1073 # endif
1074 _GL_FUNCDECL_RPL (setsockopt, int, (int fd, int level, int optname,
1075  const void * optval, socklen_t optlen)
1076  _GL_ARG_NONNULL ((4)));
1077 _GL_CXXALIAS_RPL (setsockopt, int, (int fd, int level, int optname,
1078  const void * optval, socklen_t optlen));
1079 # else
1080 /* Need to cast, because on NonStop Kernel, the fifth parameter is
1081  size_t optlen. */
1082 _GL_CXXALIAS_SYS_CAST (setsockopt, int,
1083  (int fd, int level, int optname,
1084  const void * optval, socklen_t optlen));
1085 # endif
1086 _GL_CXXALIASWARN (setsockopt);
1087 #elif 0
1088 # undef setsockopt
1089 # define setsockopt setsockopt_used_without_requesting_gnulib_module_setsockopt
1090 #elif defined GNULIB_POSIXCHECK
1091 # undef setsockopt
1092 # if HAVE_RAW_DECL_SETSOCKOPT
1093 _GL_WARN_ON_USE (setsockopt, "setsockopt is not always POSIX compliant - "
1094  "use gnulib module setsockopt for portability");
1095 # endif
1096 #endif
1097 
1098 #if 0
1099 # if 0
1100 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1101 # undef shutdown
1102 # define shutdown rpl_shutdown
1103 # endif
1104 _GL_FUNCDECL_RPL (shutdown, int, (int fd, int how));
1105 _GL_CXXALIAS_RPL (shutdown, int, (int fd, int how));
1106 # else
1107 _GL_CXXALIAS_SYS (shutdown, int, (int fd, int how));
1108 # endif
1109 _GL_CXXALIASWARN (shutdown);
1110 #elif 0
1111 # undef shutdown
1112 # define shutdown shutdown_used_without_requesting_gnulib_module_shutdown
1113 #elif defined GNULIB_POSIXCHECK
1114 # undef shutdown
1115 # if HAVE_RAW_DECL_SHUTDOWN
1116 _GL_WARN_ON_USE (shutdown, "shutdown is not always POSIX compliant - "
1117  "use gnulib module shutdown for portability");
1118 # endif
1119 #endif
1120 
1121 #if 0
1122 /* Accept a connection on a socket, with specific opening flags.
1123  The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
1124  and O_TEXT, O_BINARY (defined in "binary-io.h").
1125  See also the Linux man page at
1126  <https://www.kernel.org/doc/man-pages/online/pages/man2/accept4.2.html>. */
1127 # if 1
1128 # if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1129 # define accept4 rpl_accept4
1130 # endif
1131 _GL_FUNCDECL_RPL (accept4, int,
1132  (int sockfd, struct sockaddr *addr, socklen_t *addrlen,
1133  int flags));
1134 _GL_CXXALIAS_RPL (accept4, int,
1135  (int sockfd, struct sockaddr *addr, socklen_t *addrlen,
1136  int flags));
1137 # else
1138 _GL_FUNCDECL_SYS (accept4, int,
1139  (int sockfd, struct sockaddr *addr, socklen_t *addrlen,
1140  int flags));
1141 _GL_CXXALIAS_SYS (accept4, int,
1142  (int sockfd, struct sockaddr *addr, socklen_t *addrlen,
1143  int flags));
1144 # endif
1145 _GL_CXXALIASWARN (accept4);
1146 #elif defined GNULIB_POSIXCHECK
1147 # undef accept4
1148 # if HAVE_RAW_DECL_ACCEPT4
1149 _GL_WARN_ON_USE (accept4, "accept4 is unportable - "
1150  "use gnulib module accept4 for portability");
1151 # endif
1152 #endif
1153 
1155 
1156 #endif /* _GL_SYS_SOCKET_H */
1157 #endif /* _GL_SYS_SOCKET_H */
1158 #endif
unsigned short sa_family_t
Definition: sys_socket.in.h:84
Definition: sys_socket.in.h:208
#define _GL_FUNCDECL_SYS(func, rettype, parameters_and_attributes)
Definition: socket.h:190
#define _GL_ARG_NONNULL(params)
Definition: socket.h:417
#define _SS_PADSIZE
Definition: sys_socket.in.h:105
#define _GL_CXXALIAS_SYS_CAST(func, rettype, parameters)
Definition: socket.h:300
#define _GL_CXXALIAS_SYS(func, rettype, parameters)
Definition: socket.h:275
__ss_aligntype __ss_align
Definition: sys_socket.in.h:115
sa_family_t ss_family
Definition: sys_socket.in.h:114
Definition: sys_socket.in.h:112
#define NULL
Definition: stddef.in.h:72
Definition: sys_uio.in.h:49
#define _GL_CXXALIAS_RPL(func, rettype, parameters)
Definition: socket.h:202
#define __ss_aligntype
Definition: sys_socket.in.h:103
#define _GL_SYS_SOCKET_INLINE
Definition: socket.h:72
#define _GL_INLINE_HEADER_BEGIN
Definition: config.h:1817
#define _GL_FUNCDECL_RPL(func, rettype, parameters_and_attributes)
Definition: socket.h:178
char __ss_padding[_SS_PADSIZE]
Definition: sys_socket.in.h:116
#define _GL_INLINE_HEADER_END
Definition: config.h:1818
#define _GL_WARN_ON_USE(function, message)
Definition: socket.h:496
#define _GL_CXXALIASWARN(func)
Definition: socket.h:359