]> git.ipfire.org Git - thirdparty/lldpd.git/blob - src/compat/compat.h
interfaces: switch to Netlink to gather interface-related information
[thirdparty/lldpd.git] / src / compat / compat.h
1 /* -*- mode: c; c-file-style: "openbsd" -*- */
2 /*
3 * Copyright (c) 1991, 1993
4 * The Regents of the University of California. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. Neither the name of the University nor the names of its contributors
15 * may be used to endorse or promote products derived from this software
16 * without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * @(#)queue.h 8.5 (Berkeley) 8/20/94
31 */
32
33 #ifndef _COMPAT_H
34 #define _COMPAT_H
35
36 #include <stddef.h>
37
38 #if !HAVE_DECL_TAILQ_FIRST
39 #define TAILQ_FIRST(head) ((head)->tqh_first)
40 #endif
41
42 #if !HAVE_DECL_TAILQ_NEXT
43 #define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
44 #endif
45
46 #if !HAVE_DECL_TAILQ_FOREACH
47 #define TAILQ_FOREACH(var, head, field) \
48 for ((var) = ((head)->tqh_first); \
49 (var); \
50 (var) = ((var)->field.tqe_next))
51 #endif
52
53 #if !HAVE_DECL_TAILQ_EMPTY
54 #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
55 #endif
56
57 #if !HAVE_SIOCGIFVLAN
58 #define SIOCGIFVLAN 0x8982
59 #endif
60
61 #if !HAVE_SIOCBONDINFOQUERY
62 #define SIOCBONDINFOQUERY 0x8994
63 #endif
64
65 #if !HAVE_SIOCBONDSLAVEINFOQUERY
66 #define SIOCBONDSLAVEINFOQUERY 0x8993
67 #endif
68
69 #if !HAVE_DECL_SPEED_10000
70 #define SPEED_10000 10000
71 #endif
72
73 #if !HAVE_DECL_ADVERTISED_10000BASET_Full
74 #define ADVERTISED_10000baseT_Full (1 << 12)
75 #endif
76
77 #if !HAVE_DECL_ADVERTISED_PAUSE
78 #define ADVERTISED_Pause (1 << 13)
79 #endif
80
81 #if !HAVE_DECL_ADVERTISED_ASYM_PAUSE
82 #define ADVERTISED_Asym_Pause (1 << 14)
83 #endif
84
85 #if !HAVE_DECL_ADVERTISED_2500BASEX_Full
86 #define ADVERTISED_2500baseX_Full (1 << 15)
87 #endif
88
89 #if !HAVE_DECL_PACKET_ORIGDEV
90 #define PACKET_ORIGDEV 9
91 #endif
92
93 #if !HAVE_DECL_ETHERTYPE_VLAN
94 #define ETHERTYPE_VLAN 0x8100
95 #endif
96
97 #if !HAVE_DECL_GET_VLAN_REALDEV_NAME_CMD
98 #include <linux/if_vlan.h>
99 #define GET_VLAN_REALDEV_NAME_CMD (SET_VLAN_FLAG_CMD + 1)
100 #endif
101
102 #if !HAVE_DECL_GET_VLAN_VID_CMD
103 #include <linux/if_vlan.h>
104 #define GET_VLAN_VID_CMD (GET_VLAN_REALDEV_NAME_CMD + 1)
105 #endif
106
107 #if !HAVE_STRLCPY
108 size_t strlcpy(char *, const char *, size_t);
109 #endif
110
111 #if !HAVE_MALLOC
112 void *malloc(size_t size);
113 #endif
114
115 #if !HAVE_REALLOC
116 void *realloc(void *ptr, size_t size);
117 #endif
118
119 #endif