1 // Copyright 2016 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
10 #include <sys/socket.h>
11 #include <sys/sysctl.h>
14 #include <net/if_dl.h>
15 #include <net/route.h>
17 #include <netinet/in.h>
19 struct if_data_freebsd7 {
24 u_char ifi_link_state;
25 u_char ifi_spare_char1;
26 u_char ifi_spare_char2;
35 u_long ifi_collisions;
44 struct timeval __ifi_lastchange;
47 struct if_data_freebsd8 {
52 u_char ifi_link_state;
53 u_char ifi_spare_char1;
54 u_char ifi_spare_char2;
63 u_long ifi_collisions;
72 struct timeval __ifi_lastchange;
75 struct if_data_freebsd9 {
80 u_char ifi_link_state;
81 u_char ifi_spare_char1;
82 u_char ifi_spare_char2;
91 u_long ifi_collisions;
100 struct timeval __ifi_lastchange;
103 struct if_data_freebsd10 {
108 u_char ifi_link_state;
110 u_char ifi_baudrate_pf;
119 u_long ifi_collisions;
126 uint64_t ifi_hwassist;
128 struct timeval __ifi_lastchange;
131 struct if_data_freebsd11 {
133 uint8_t ifi_physical;
136 uint8_t ifi_link_state;
138 uint16_t ifi_datalen;
141 uint64_t ifi_baudrate;
142 uint64_t ifi_ipackets;
143 uint64_t ifi_ierrors;
144 uint64_t ifi_opackets;
145 uint64_t ifi_oerrors;
146 uint64_t ifi_collisions;
149 uint64_t ifi_imcasts;
150 uint64_t ifi_omcasts;
151 uint64_t ifi_iqdrops;
152 uint64_t ifi_oqdrops;
153 uint64_t ifi_noproto;
154 uint64_t ifi_hwassist;
168 struct if_msghdr_freebsd7 {
175 struct if_data_freebsd7 ifm_data;
178 struct if_msghdr_freebsd8 {
185 struct if_data_freebsd8 ifm_data;
188 struct if_msghdr_freebsd9 {
195 struct if_data_freebsd9 ifm_data;
198 struct if_msghdr_freebsd10 {
205 struct if_data_freebsd10 ifm_data;
208 struct if_msghdr_freebsd11 {
215 struct if_data_freebsd11 ifm_data;
221 sysAF_UNSPEC = C.AF_UNSPEC
222 sysAF_INET = C.AF_INET
223 sysAF_ROUTE = C.AF_ROUTE
224 sysAF_LINK = C.AF_LINK
225 sysAF_INET6 = C.AF_INET6
227 sysSOCK_RAW = C.SOCK_RAW
229 sysNET_RT_DUMP = C.NET_RT_DUMP
230 sysNET_RT_FLAGS = C.NET_RT_FLAGS
231 sysNET_RT_IFLIST = C.NET_RT_IFLIST
232 sysNET_RT_IFMALIST = C.NET_RT_IFMALIST
233 sysNET_RT_IFLISTL = C.NET_RT_IFLISTL
237 sysCTL_MAXNAME = C.CTL_MAXNAME
239 sysCTL_UNSPEC = C.CTL_UNSPEC
240 sysCTL_KERN = C.CTL_KERN
242 sysCTL_VFS = C.CTL_VFS
243 sysCTL_NET = C.CTL_NET
244 sysCTL_DEBUG = C.CTL_DEBUG
246 sysCTL_MACHDEP = C.CTL_MACHDEP
247 sysCTL_USER = C.CTL_USER
248 sysCTL_P1003_1B = C.CTL_P1003_1B
252 sysRTM_VERSION = C.RTM_VERSION
254 sysRTM_ADD = C.RTM_ADD
255 sysRTM_DELETE = C.RTM_DELETE
256 sysRTM_CHANGE = C.RTM_CHANGE
257 sysRTM_GET = C.RTM_GET
258 sysRTM_LOSING = C.RTM_LOSING
259 sysRTM_REDIRECT = C.RTM_REDIRECT
260 sysRTM_MISS = C.RTM_MISS
261 sysRTM_LOCK = C.RTM_LOCK
262 sysRTM_RESOLVE = C.RTM_RESOLVE
263 sysRTM_NEWADDR = C.RTM_NEWADDR
264 sysRTM_DELADDR = C.RTM_DELADDR
265 sysRTM_IFINFO = C.RTM_IFINFO
266 sysRTM_NEWMADDR = C.RTM_NEWMADDR
267 sysRTM_DELMADDR = C.RTM_DELMADDR
268 sysRTM_IFANNOUNCE = C.RTM_IFANNOUNCE
269 sysRTM_IEEE80211 = C.RTM_IEEE80211
271 sysRTA_DST = C.RTA_DST
272 sysRTA_GATEWAY = C.RTA_GATEWAY
273 sysRTA_NETMASK = C.RTA_NETMASK
274 sysRTA_GENMASK = C.RTA_GENMASK
275 sysRTA_IFP = C.RTA_IFP
276 sysRTA_IFA = C.RTA_IFA
277 sysRTA_AUTHOR = C.RTA_AUTHOR
278 sysRTA_BRD = C.RTA_BRD
280 sysRTAX_DST = C.RTAX_DST
281 sysRTAX_GATEWAY = C.RTAX_GATEWAY
282 sysRTAX_NETMASK = C.RTAX_NETMASK
283 sysRTAX_GENMASK = C.RTAX_GENMASK
284 sysRTAX_IFP = C.RTAX_IFP
285 sysRTAX_IFA = C.RTAX_IFA
286 sysRTAX_AUTHOR = C.RTAX_AUTHOR
287 sysRTAX_BRD = C.RTAX_BRD
288 sysRTAX_MAX = C.RTAX_MAX
292 sizeofIfMsghdrlFreeBSD10 = C.sizeof_struct_if_msghdrl
293 sizeofIfaMsghdrFreeBSD10 = C.sizeof_struct_ifa_msghdr
294 sizeofIfaMsghdrlFreeBSD10 = C.sizeof_struct_ifa_msghdrl
295 sizeofIfmaMsghdrFreeBSD10 = C.sizeof_struct_ifma_msghdr
296 sizeofIfAnnouncemsghdrFreeBSD10 = C.sizeof_struct_if_announcemsghdr
298 sizeofRtMsghdrFreeBSD10 = C.sizeof_struct_rt_msghdr
299 sizeofRtMetricsFreeBSD10 = C.sizeof_struct_rt_metrics
301 sizeofIfMsghdrFreeBSD7 = C.sizeof_struct_if_msghdr_freebsd7
302 sizeofIfMsghdrFreeBSD8 = C.sizeof_struct_if_msghdr_freebsd8
303 sizeofIfMsghdrFreeBSD9 = C.sizeof_struct_if_msghdr_freebsd9
304 sizeofIfMsghdrFreeBSD10 = C.sizeof_struct_if_msghdr_freebsd10
305 sizeofIfMsghdrFreeBSD11 = C.sizeof_struct_if_msghdr_freebsd11
307 sizeofIfDataFreeBSD7 = C.sizeof_struct_if_data_freebsd7
308 sizeofIfDataFreeBSD8 = C.sizeof_struct_if_data_freebsd8
309 sizeofIfDataFreeBSD9 = C.sizeof_struct_if_data_freebsd9
310 sizeofIfDataFreeBSD10 = C.sizeof_struct_if_data_freebsd10
311 sizeofIfDataFreeBSD11 = C.sizeof_struct_if_data_freebsd11
313 sizeofIfMsghdrlFreeBSD10Emu = C.sizeof_struct_if_msghdrl
314 sizeofIfaMsghdrFreeBSD10Emu = C.sizeof_struct_ifa_msghdr
315 sizeofIfaMsghdrlFreeBSD10Emu = C.sizeof_struct_ifa_msghdrl
316 sizeofIfmaMsghdrFreeBSD10Emu = C.sizeof_struct_ifma_msghdr
317 sizeofIfAnnouncemsghdrFreeBSD10Emu = C.sizeof_struct_if_announcemsghdr
319 sizeofRtMsghdrFreeBSD10Emu = C.sizeof_struct_rt_msghdr
320 sizeofRtMetricsFreeBSD10Emu = C.sizeof_struct_rt_metrics
322 sizeofIfMsghdrFreeBSD7Emu = C.sizeof_struct_if_msghdr_freebsd7
323 sizeofIfMsghdrFreeBSD8Emu = C.sizeof_struct_if_msghdr_freebsd8
324 sizeofIfMsghdrFreeBSD9Emu = C.sizeof_struct_if_msghdr_freebsd9
325 sizeofIfMsghdrFreeBSD10Emu = C.sizeof_struct_if_msghdr_freebsd10
326 sizeofIfMsghdrFreeBSD11Emu = C.sizeof_struct_if_msghdr_freebsd11
328 sizeofIfDataFreeBSD7Emu = C.sizeof_struct_if_data_freebsd7
329 sizeofIfDataFreeBSD8Emu = C.sizeof_struct_if_data_freebsd8
330 sizeofIfDataFreeBSD9Emu = C.sizeof_struct_if_data_freebsd9
331 sizeofIfDataFreeBSD10Emu = C.sizeof_struct_if_data_freebsd10
332 sizeofIfDataFreeBSD11Emu = C.sizeof_struct_if_data_freebsd11
334 sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
335 sizeofSockaddrInet = C.sizeof_struct_sockaddr_in
336 sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6