From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Bobbio?= <lunar@debian.org>
Date: Sat, 23 Jul 2011 17:41:05 +0200
Subject: [PATCH] Fix conditional FreeBSD include for GNU/kFreeBSD
---
bgpctl/bgpctl.c | 16 ++++++------
bgpctl/irrfilter.c | 4 +-
bgpctl/irrfilter.h | 4 +-
bgpctl/parser.c | 4 +-
bgpd/bgpd.h | 4 +-
bgpd/carp.c | 8 +++---
bgpd/config.c | 4 +-
bgpd/kroute.c | 70 ++++++++++++++++++++++++++--------------------------
bgpd/parse.y | 2 +-
bgpd/printconf.c | 2 +-
bgpd/rde_attr.c | 8 +++---
bgpd/rde_rib.c | 4 +-
bgpd/rde_update.c | 8 +++---
bgpd/session.c | 6 ++--
bgpd/util.c | 4 +-
15 files changed, 74 insertions(+), 74 deletions(-)
diff --git a/bgpctl/bgpctl.c b/bgpctl/bgpctl.c
index 765c9e6..648077f 100644
--- a/bgpctl/bgpctl.c
+++ b/bgpctl/bgpctl.c
@@ -16,19 +16,19 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#if defined(__FreeBSD__) /* compat */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* compat */
#include "openbsd-compat.h"
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <net/if.h>
-#if defined(__FreeBSD__) /* net/if_media.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* net/if_media.h */
#include "if_media.h"
#else
#include <net/if_media.h>
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <net/if_types.h>
#include <err.h>
@@ -38,11 +38,11 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-#if defined(__FreeBSD__) /* util.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* util.h */
#include "util.h"
#else
#include <util.h>
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include "bgpd.h"
#include "session.h"
@@ -51,9 +51,9 @@
#include "parser.h"
#include "irrfilter.h"
-#if defined(__FreeBSD__) /* FreeBSD has no LINK_STATE_IS_UP macro. */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no LINK_STATE_IS_UP macro. */
#define LINK_STATE_IS_UP(_s) ((_s) >= LINK_STATE_UP)
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
enum neighbor_views {
NV_DEFAULT,
diff --git a/bgpctl/irrfilter.c b/bgpctl/irrfilter.c
index e731554..9abd1b3 100644
--- a/bgpctl/irrfilter.c
+++ b/bgpctl/irrfilter.c
@@ -15,9 +15,9 @@
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#if defined(__FreeBSD__) /* compat */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* compat */
#include "openbsd-compat.h"
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <sys/types.h>
#include <sys/param.h>
diff --git a/bgpctl/irrfilter.h b/bgpctl/irrfilter.h
index 9def255..d78f24a 100644
--- a/bgpctl/irrfilter.h
+++ b/bgpctl/irrfilter.h
@@ -16,9 +16,9 @@
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#if defined(__FreeBSD__) /* compat */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* compat */
#include "openbsd-compat.h"
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <sys/queue.h>
#include <sys/tree.h>
diff --git a/bgpctl/parser.c b/bgpctl/parser.c
index 4416f71..24a8c59 100644
--- a/bgpctl/parser.c
+++ b/bgpctl/parser.c
@@ -16,9 +16,9 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#if defined(__FreeBSD__) /* compat */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* compat */
#include "openbsd-compat.h"
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <sys/types.h>
#include <sys/socket.h>
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index c0a3841..eed7c3f 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -31,9 +31,9 @@
#include <poll.h>
#include <stdarg.h>
-#if defined(__FreeBSD__) /* compat */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* compat */
#include "openbsd-compat.h"
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include "imsg.h"
#define BGP_VERSION 4
diff --git a/bgpd/carp.c b/bgpd/carp.c
index aa25e46..7d9767b 100644
--- a/bgpd/carp.c
+++ b/bgpd/carp.c
@@ -104,7 +104,7 @@ carp_demote_shutdown(void)
int
carp_demote_get(char *group)
{
-#if defined(__FreeBSD__) /* FreeBSD does not have support for CARP */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD does not have support for CARP */
return (-1);
#else
int s;
@@ -129,7 +129,7 @@ carp_demote_get(char *group)
close(s);
return ((int)ifgr.ifgr_attrib.ifg_carp_demoted);
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
}
int
@@ -162,7 +162,7 @@ carp_demote_set(char *group, int demote)
int
carp_demote_ioctl(char *group, int demote)
{
-#if defined(__FreeBSD__) /* FreeBSD does not have support for CARP */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD does not have support for CARP */
return (-1);
#else
int s, res;
@@ -187,5 +187,5 @@ carp_demote_ioctl(char *group, int demote)
close(s);
return (res);
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
}
diff --git a/bgpd/config.c b/bgpd/config.c
index 51e3096..9079d10 100644
--- a/bgpd/config.c
+++ b/bgpd/config.c
@@ -22,7 +22,7 @@
#include <sys/mman.h>
#include <sys/ioctl.h>
-#if !defined(__FreeBSD__) /* FreeBSD has no mpls support. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no mpls support. */
#include <netmpls/mpls.h>
#endif
@@ -321,7 +321,7 @@ prepare_listeners(struct bgpd_config *conf)
int
get_mpe_label(struct rdomain *r)
{
-#if !defined(__FreeBSD__) /* FreeBSD has no mpls support. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no mpls support. */
struct ifreq ifr;
struct shim_hdr shim;
int s;
diff --git a/bgpd/kroute.c b/bgpd/kroute.c
index db8c8d4..6d1943f 100644
--- a/bgpd/kroute.c
+++ b/bgpd/kroute.c
@@ -27,7 +27,7 @@
#include <net/if.h>
#include <net/if_dl.h>
#include <net/route.h>
-#if !defined(__FreeBSD__) /* FreeBSD has no mpls support. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no mpls support. */
#include <netmpls/mpls.h>
#endif
#include <err.h>
@@ -195,7 +195,7 @@ int
kr_init(void)
{
int opt = 0, rcvbuf, default_rcvbuf;
-#if !defined(__FreeBSD__) /* FreeBSD does not have ROUTE_TABLEFILTER. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD does not have ROUTE_TABLEFILTER. */
unsigned int tid = RTABLE_ANY;
#endif
socklen_t optlen;
@@ -223,7 +223,7 @@ kr_init(void)
rcvbuf /= 2)
; /* nothing */
-#if !defined(__FreeBSD__) /* FreeBSD does not have ROUTE_TABLEFILTER. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD does not have ROUTE_TABLEFILTER. */
if (setsockopt(kr_state.fd, AF_ROUTE, ROUTE_TABLEFILTER, &tid,
sizeof(tid)) == -1) {
log_warn("kr_init: setsockopt AF_ROUTE ROUTE_TABLEFILTER");
@@ -432,7 +432,7 @@ ktable_postload(void)
int
ktable_exists(u_int rtableid, u_int *rdomid)
{
-#if !defined(__FreeBSD__) /* FreeBSD does not have NET_RT_TABLE. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD does not have NET_RT_TABLE. */
size_t len;
struct rt_tableinfo info;
int mib[6];
@@ -2566,10 +2566,10 @@ send_rtmsg(int fd, int action, struct ktable *kt, struct kroute *kroute)
struct sockaddr_dl dl;
char pad[sizeof(long)];
} ifp;
-#if !defined(__FreeBSD__) /* FreeBSD has no route labeling. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no route labeling. */
struct sockaddr_mpls mpls;
struct sockaddr_rtlabel label;
-#endif /* !defined(__FreeBSD__) */
+#endif /* !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
int iovcnt = 0;
if (!kt->fib_sync)
@@ -2579,14 +2579,14 @@ send_rtmsg(int fd, int action, struct ktable *kt, struct kroute *kroute)
bzero(&hdr, sizeof(hdr));
hdr.rtm_version = RTM_VERSION;
hdr.rtm_type = action;
-#if !defined(__FreeBSD__) /* XXX: FreeBSD has no multiple routing tables */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* XXX: FreeBSD has no multiple routing tables */
hdr.rtm_tableid = kt->rtableid;
-#endif /* !defined(__FreeBSD__) */
-#if !defined(__FreeBSD__) /* XXX: FreeBSD has no rtm_priority */
+#endif /* !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* XXX: FreeBSD has no rtm_priority */
hdr.rtm_priority = RTP_BGP;
#else
hdr.rtm_flags = RTF_PROTO1;
-#endif /* !defined(__FreeBSD__) */
+#endif /* !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
if (kroute->flags & F_BLACKHOLE)
hdr.rtm_flags |= RTF_BLACKHOLE;
if (kroute->flags & F_REJECT)
@@ -2648,7 +2648,7 @@ send_rtmsg(int fd, int action, struct ktable *kt, struct kroute *kroute)
iov[iovcnt++].iov_len = ROUNDUP(sizeof(struct sockaddr_dl));
}
-#if !defined(__FreeBSD__) /* FreeBSD has no mpls support. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no mpls support. */
if (kroute->flags & F_MPLS) {
bzero(&mpls, sizeof(mpls));
mpls.smpls_len = sizeof(mpls);
@@ -2665,7 +2665,7 @@ send_rtmsg(int fd, int action, struct ktable *kt, struct kroute *kroute)
}
#endif
-#if !defined(__FreeBSD__) /* FreeBSD has no route labeling. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no route labeling. */
if (kroute->labelid) {
bzero(&label, sizeof(label));
label.sr_len = sizeof(label);
@@ -2678,7 +2678,7 @@ send_rtmsg(int fd, int action, struct ktable *kt, struct kroute *kroute)
iov[iovcnt].iov_base = &label;
iov[iovcnt++].iov_len = sizeof(label);
}
-#endif /* !defined(__FreeBSD__) */
+#endif /* !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
retry:
if (writev(fd, iov, iovcnt) == -1) {
@@ -2710,9 +2710,9 @@ send_rt6msg(int fd, int action, struct ktable *kt, struct kroute6 *kroute)
struct sockaddr_in6 addr;
char pad[sizeof(long)];
} prefix, nexthop, mask;
-#if !defined(__FreeBSD__) /* FreeBSD has no route labeling. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no route labeling. */
struct sockaddr_rtlabel label;
-#endif /* !defined(__FreeBSD__) */
+#endif /* !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
int iovcnt = 0;
if (!kt->fib_sync)
@@ -2722,11 +2722,11 @@ send_rt6msg(int fd, int action, struct ktable *kt, struct kroute6 *kroute)
bzero(&hdr, sizeof(hdr));
hdr.rtm_version = RTM_VERSION;
hdr.rtm_type = action;
-#if !defined(__FreeBSD__) /* XXX: FreeBSD has no multiple routing tables */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* XXX: FreeBSD has no multiple routing tables */
hdr.rtm_tableid = kr_state.rtableid;
#else
hdr.rtm_flags = RTF_PROTO1;
-#endif /* !defined(__FreeBSD__) */
+#endif /* !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
if (kroute->flags & F_BLACKHOLE)
hdr.rtm_flags |= RTF_BLACKHOLE;
if (kroute->flags & F_REJECT)
@@ -2779,7 +2779,7 @@ send_rt6msg(int fd, int action, struct ktable *kt, struct kroute6 *kroute)
iov[iovcnt].iov_base = &mask;
iov[iovcnt++].iov_len = ROUNDUP(sizeof(struct sockaddr_in6));
-#if !defined(__FreeBSD__) /* FreeBSD has no route labeling. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no route labeling. */
if (kroute->labelid) {
bzero(&label, sizeof(label));
label.sr_len = sizeof(label);
@@ -2792,7 +2792,7 @@ send_rt6msg(int fd, int action, struct ktable *kt, struct kroute6 *kroute)
iov[iovcnt].iov_base = &label;
iov[iovcnt++].iov_len = sizeof(label);
}
-#endif /* !defined(__FreeBSD__) */
+#endif /* !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
retry:
if (writev(fd, iov, iovcnt) == -1) {
@@ -2819,7 +2819,7 @@ int
fetchtable(struct ktable *kt)
{
size_t len;
-#if !defined(__FreeBSD__) /* FreeBSD has no table id. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no table id. */
int mib[7];
#else
int mib[6];
@@ -2838,11 +2838,11 @@ fetchtable(struct ktable *kt)
mib[3] = 0;
mib[4] = NET_RT_DUMP;
mib[5] = 0;
-#if !defined(__FreeBSD__) /* FreeBSD has no table id. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no table id. */
mib[6] = kt->rtableid;
#endif
-#if !defined(__FreeBSD__) /* FreeBSD has no table id. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no table id. */
if (sysctl(mib, 7, NULL, &len, NULL, 0) == -1) {
#else
if (sysctl(mib, 6, NULL, &len, NULL, 0) == -1) {
@@ -2858,7 +2858,7 @@ fetchtable(struct ktable *kt)
log_warn("fetchtable");
return (-1);
}
-#if !defined(__FreeBSD__) /* FreeBSD has no table id. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no table id. */
if (sysctl(mib, 7, buf, &len, NULL, 0) == -1) {
#else
if (sysctl(mib, 6, buf, &len, NULL, 0) == -1) {
@@ -2874,7 +2874,7 @@ fetchtable(struct ktable *kt)
rtm = (struct rt_msghdr *)next;
if (rtm->rtm_version != RTM_VERSION)
continue;
-#if !defined(__FreeBSD__)
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
sa = (struct sockaddr *)(next + rtm->rtm_hdrlen);
#else
sa = (struct sockaddr *)(next + sizeof(struct rt_msghdr));
@@ -2897,7 +2897,7 @@ fetchtable(struct ktable *kt)
}
kr->r.flags = F_KERNEL;
-#if defined(__FreeBSD__) /* no rtm_priority on FreeBSD */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* no rtm_priority on FreeBSD */
kr->r.priority = RTP_BGP;
#else
kr->r.priority = rtm->rtm_priority;
@@ -2921,7 +2921,7 @@ fetchtable(struct ktable *kt)
mask2prefixlen(sa_in->sin_addr.s_addr);
} else if (rtm->rtm_flags & RTF_HOST) {
kr->r.prefixlen = 32;
-#if defined(__FreeBSD__) /* RTF_HOST means connected route */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* RTF_HOST means connected route */
kr->r.flags |= F_CONNECTED;
#endif
}
@@ -2938,7 +2938,7 @@ fetchtable(struct ktable *kt)
}
kr6->r.flags = F_KERNEL;
-#if defined(__FreeBSD__) /* no rtm_priority on FreeBSD */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* no rtm_priority on FreeBSD */
kr6->r.priority = RTP_BGP;
#else
kr6->r.priority = rtm->rtm_priority;
@@ -2963,7 +2963,7 @@ fetchtable(struct ktable *kt)
kr6->r.prefixlen = mask2prefixlen6(sa_in6);
} else if (rtm->rtm_flags & RTF_HOST) {
kr6->r.prefixlen = 128;
-#if defined(__FreeBSD__) /* RTF_HOST means connected route */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* RTF_HOST means connected route */
kr6->r.flags |= F_CONNECTED;
#endif
}
@@ -2998,7 +2998,7 @@ fetchtable(struct ktable *kt)
}
if (sa->sa_family == AF_INET) {
-#if !defined(__FreeBSD__) /* no rtm_priority on FreeBSD */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* no rtm_priority on FreeBSD */
if (rtm->rtm_priority == RTP_BGP) {
#else
/* never delete route */
@@ -3009,7 +3009,7 @@ fetchtable(struct ktable *kt)
} else
kroute_insert(kt, kr);
} else if (sa->sa_family == AF_INET6) {
-#if !defined(__FreeBSD__) /* no rtm_priority on FreeBSD */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* no rtm_priority on FreeBSD */
if (rtm->rtm_priority == RTP_BGP) {
#else
/* never delete route */
@@ -3131,7 +3131,7 @@ dispatch_rtmsg(void)
case RTM_ADD:
case RTM_CHANGE:
case RTM_DELETE:
-#if !defined(__FreeBSD__)
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
sa = (struct sockaddr *)(next + rtm->rtm_hdrlen);
#else
sa = (struct sockaddr *)(next + sizeof(struct rt_msghdr));
@@ -3147,7 +3147,7 @@ dispatch_rtmsg(void)
if (rtm->rtm_flags & RTF_LLINFO) /* arp cache */
continue;
-#if !defined(__FreeBSD__) /* FreeBSD has no rtm_tableid. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no rtm_tableid. */
if ((kt = ktable_get(rtm->rtm_tableid)) == NULL)
#else
if ((kt = ktable_get(0)) == NULL)
@@ -3209,7 +3209,7 @@ dispatch_rtmsg_addr(struct rt_msghdr *rtm, struct sockaddr *rti_info[RTAX_MAX],
mpath = 1;
#endif
-#if !defined(__FreeBSD__) /* no rtm_priority on FreeBSD */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* no rtm_priority on FreeBSD */
prio = rtm->rtm_priority;
#else
prio = RTP_BGP;
@@ -3225,7 +3225,7 @@ dispatch_rtmsg_addr(struct rt_msghdr *rtm, struct sockaddr *rti_info[RTAX_MAX],
sa_in->sin_addr.s_addr);
} else if (rtm->rtm_flags & RTF_HOST) {
prefixlen = 32;
-#if defined(__FreeBSD__) /* RTF_HOST means connected route */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* RTF_HOST means connected route */
flags |= F_CONNECTED;
#endif
}
@@ -3243,7 +3243,7 @@ dispatch_rtmsg_addr(struct rt_msghdr *rtm, struct sockaddr *rti_info[RTAX_MAX],
prefixlen = mask2prefixlen6(sa_in6);
} else if (rtm->rtm_flags & RTF_HOST) {
prefixlen = 128;
-#if defined(__FreeBSD__) /* RTF_HOST means connected route */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* RTF_HOST means connected route */
flags |= F_CONNECTED;
#endif
}
diff --git a/bgpd/parse.y b/bgpd/parse.y
index d76ac6a..1b7df01 100644
--- a/bgpd/parse.y
+++ b/bgpd/parse.y
@@ -25,7 +25,7 @@
#include <sys/stat.h>
#include <netinet/in.h>
#include <arpa/inet.h>
-#if !defined(__FreeBSD__) /* FreeBSD has no mpls support. */
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no mpls support. */
#include <netmpls/mpls.h>
#endif
diff --git a/bgpd/printconf.c b/bgpd/printconf.c
index 3086b88..5edbb6b 100644
--- a/bgpd/printconf.c
+++ b/bgpd/printconf.c
@@ -20,7 +20,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#if defined(__FreeBSD__) /* limits.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* limits.h */
#include <limits.h>
#endif
diff --git a/bgpd/rde_attr.c b/bgpd/rde_attr.c
index 9d1173e..32638a5 100644
--- a/bgpd/rde_attr.c
+++ b/bgpd/rde_attr.c
@@ -17,11 +17,11 @@
*/
#include <sys/types.h>
-#if defined(__FreeBSD__) /* sys/hash.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* sys/hash.h */
#include "hash.h"
#else
#include <sys/hash.h>
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <sys/queue.h>
#include <netinet/in.h>
@@ -30,9 +30,9 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#if defined(__FreeBSD__) /* limits.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* limits.h */
#include <limits.h>
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include "bgpd.h"
#include "rde.h"
diff --git a/bgpd/rde_rib.c b/bgpd/rde_rib.c
index afc01c9..2eae07a 100644
--- a/bgpd/rde_rib.c
+++ b/bgpd/rde_rib.c
@@ -18,11 +18,11 @@
#include <sys/types.h>
#include <sys/queue.h>
-#if defined(__FreeBSD__) /* sys/hash.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* sys/hash.h */
#include "hash.h"
#else
#include <sys/hash.h>
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <stdlib.h>
#include <string.h>
diff --git a/bgpd/rde_update.c b/bgpd/rde_update.c
index f50223b..96b3bfc 100644
--- a/bgpd/rde_update.c
+++ b/bgpd/rde_update.c
@@ -17,18 +17,18 @@
*/
#include <sys/types.h>
#include <sys/queue.h>
-#if defined(__FreeBSD__) /* sys/hash.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* sys/hash.h */
#include "hash.h"
#else
#include <sys/hash.h>
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <limits.h>
#include <stdlib.h>
#include <string.h>
-#if defined(__FreeBSD__) /* limits.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* limits.h */
#include <limits.h>
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include "bgpd.h"
#include "rde.h"
diff --git a/bgpd/session.c b/bgpd/session.c
index 3cdafc8..b777a39 100644
--- a/bgpd/session.c
+++ b/bgpd/session.c
@@ -55,9 +55,9 @@
#define PFD_SOCK_PFKEY 5
#define PFD_LISTENERS_START 6
-#if defined(__FreeBSD__) /* FreeBSD has no LINK_STATE_IS_UP macro. */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* FreeBSD has no LINK_STATE_IS_UP macro. */
#define LINK_STATE_IS_UP(_s) ((_s) >= LINK_STATE_UP)
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
void session_sighdlr(int);
int setup_listeners(u_int *);
@@ -390,7 +390,7 @@ session_main(int pipe_m2s[2], int pipe_s2r[2], int pipe_m2r[2],
pfd[PFD_SOCK_RCTL].fd = rcsock;
pfd[PFD_SOCK_RCTL].events = POLLIN;
pfd[PFD_SOCK_PFKEY].fd = pfkeysock;
-#if !defined(__FreeBSD__)
+#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
pfd[PFD_SOCK_PFKEY].events = POLLIN;
#else
pfd[PFD_SOCK_PFKEY].events = 0;
diff --git a/bgpd/util.c b/bgpd/util.c
index c5a10ed..46987d2 100644
--- a/bgpd/util.c
+++ b/bgpd/util.c
@@ -18,9 +18,9 @@
*/
#include <sys/types.h>
#include <sys/socket.h>
-#if defined(__FreeBSD__) /* sys/limits.h */
+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) /* sys/limits.h */
#include <sys/limits.h>
-#endif /* defined(__FreeBSD__) */
+#endif /* (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) */
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
--