xref: /aosp_15_r20/external/libepoxy/include/epoxy/common.h (revision 706d0b42ae4182339789e08d473a0b312ecdc60f)
1*706d0b42SXin Li /*
2*706d0b42SXin Li  * Copyright 2017  Emmanuele Bassi
3*706d0b42SXin Li  *
4*706d0b42SXin Li  * Permission is hereby granted, free of charge, to any person obtaining a
5*706d0b42SXin Li  * copy of this software and associated documentation files (the "Software"),
6*706d0b42SXin Li  * to deal in the Software without restriction, including without limitation
7*706d0b42SXin Li  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*706d0b42SXin Li  * and/or sell copies of the Software, and to permit persons to whom the
9*706d0b42SXin Li  * Software is furnished to do so, subject to the following conditions:
10*706d0b42SXin Li  *
11*706d0b42SXin Li  * The above copyright notice and this permission notice (including the next
12*706d0b42SXin Li  * paragraph) shall be included in all copies or substantial portions of the
13*706d0b42SXin Li  * Software.
14*706d0b42SXin Li  *
15*706d0b42SXin Li  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16*706d0b42SXin Li  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17*706d0b42SXin Li  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18*706d0b42SXin Li  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19*706d0b42SXin Li  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20*706d0b42SXin Li  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21*706d0b42SXin Li  * IN THE SOFTWARE.
22*706d0b42SXin Li  */
23*706d0b42SXin Li 
24*706d0b42SXin Li /** @file common.h
25*706d0b42SXin Li  *
26*706d0b42SXin Li  * A common header file, used to define macros and shared symbols.
27*706d0b42SXin Li  */
28*706d0b42SXin Li 
29*706d0b42SXin Li #ifndef EPOXY_COMMON_H
30*706d0b42SXin Li #define EPOXY_COMMON_H
31*706d0b42SXin Li 
32*706d0b42SXin Li #ifdef __cplusplus
33*706d0b42SXin Li # define EPOXY_BEGIN_DECLS      extern "C" {
34*706d0b42SXin Li # define EPOXY_END_DECLS        }
35*706d0b42SXin Li #else
36*706d0b42SXin Li # define EPOXY_BEGIN_DECLS
37*706d0b42SXin Li # define EPOXY_END_DECLS
38*706d0b42SXin Li #endif
39*706d0b42SXin Li 
40*706d0b42SXin Li #ifndef EPOXY_PUBLIC
41*706d0b42SXin Li # if defined(_MSC_VER)
42*706d0b42SXin Li #  define EPOXY_PUBLIC __declspec(dllimport) extern
43*706d0b42SXin Li # else
44*706d0b42SXin Li #  define EPOXY_PUBLIC extern
45*706d0b42SXin Li # endif
46*706d0b42SXin Li #endif
47*706d0b42SXin Li 
48*706d0b42SXin Li #if defined(_MSC_VER) && !defined(__bool_true_false_are_defined) && (_MSC_VER < 1800)
49*706d0b42SXin Li typedef unsigned char bool;
50*706d0b42SXin Li # define false 0
51*706d0b42SXin Li # define true 1
52*706d0b42SXin Li #else
53*706d0b42SXin Li # include <stdbool.h>
54*706d0b42SXin Li #endif
55*706d0b42SXin Li 
56*706d0b42SXin Li EPOXY_BEGIN_DECLS
57*706d0b42SXin Li 
58*706d0b42SXin Li EPOXY_PUBLIC bool epoxy_extension_in_string(const char *extension_list,
59*706d0b42SXin Li                                             const char *ext);
60*706d0b42SXin Li 
61*706d0b42SXin Li EPOXY_END_DECLS
62*706d0b42SXin Li 
63*706d0b42SXin Li #endif /* EPOXY_COMMON_H */
64