BRL-CAD
bsocket.h
Go to the documentation of this file.
1
/* B S O C K E T . H
2
* BRL-CAD
3
*
4
* Copyright (c) 2011-2023 United States Government as represented by
5
* the U.S. Army Research Laboratory.
6
*
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public License
9
* version 2.1 as published by the Free Software Foundation.
10
*
11
* This library is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this file; see the file named COPYING for more
18
* information.
19
*/
20
/** @addtogroup bu_bsocket
21
*
22
* @brief
23
* BRL-CAD system compatibility wrapper header that provides declarations for
24
* native and standard system select() routines.
25
*
26
* This header is commonly used in lieu of including the following:
27
* sys/select.h, winsock2.h (select, fd_set)
28
*/
29
30
/** @{ */
31
/** @file bsocket.h */
32
33
#ifndef BSOCKET_H
34
#define BSOCKET_H
35
36
#include "
common.h
"
37
38
#ifdef HAVE_SYS_SELECT_H
39
# include <sys/select.h>
40
#endif
41
42
#ifdef HAVE_SYS_SOCKET_H
43
# include <sys/socket.h>
44
#endif
45
46
/* Windows Sockets provides select() and friends */
47
#if defined(_WIN32) && !defined(__CYGWIN__)
48
# ifndef _WINSOCKAPI_
49
# include <winsock2.h>
50
# endif
51
#endif
52
53
/* compatibility for pedantic bug/limitation in gcc 4.6.2, need to
54
* mark macros as extensions else they may emit "ISO C forbids
55
* braced-groups within expressions" warnings.
56
*/
57
#if defined(__extension__) && GCC_PREREQ(4, 6) && !GCC_PREREQ(4, 7)
58
59
# if defined(FD_SET) && defined(__FD_SET)
60
# undef FD_SET
61
# define FD_SET(x, y) __extension__ __FD_SET((x), (y))
62
# endif
63
64
# if defined(FD_CLR) && defined(__FD_CLR)
65
# undef FD_CLR
66
# define FD_CLR(x, y) __extension__ __FD_CLR((x), (y))
67
# endif
68
69
# if defined(FD_ISSET) && defined(__FD_ISSET)
70
# undef FD_ISSET
71
# define FD_ISSET(x, y) __extension__ __FD_ISSET((x), (y))
72
# endif
73
74
#endif
/* GCC_PREREQ */
75
76
#endif
/* BSOCKET_H */
77
78
/** @} */
79
80
/*
81
* Local Variables:
82
* tab-width: 8
83
* mode: C
84
* indent-tabs-mode: t
85
* c-file-style: "stroustrup"
86
* End:
87
* ex: shiftwidth=4 tabstop=8
88
*/
common.h
Header file for the BRL-CAD common definitions.
include
bsocket.h
Generated on Tue Mar 7 2023 23:41:49 for BRL-CAD by
1.9.3