#ifndef _COMPAT_SYS_SOCKIO_H_
#define _COMPAT_SYS_SOCKIO_H_
#include <sys/ioccom.h>
#include <compat/net/if.h>
#define OSIOCSIFADDR _IOW('i', 12, struct oifreq)
#define OOSIOCGIFADDR _IOWR('i', 13, struct oifreq)
#define OSIOCSIFDSTADDR _IOW('i', 14, struct oifreq)
#define OOSIOCGIFDSTADDR _IOWR('i', 15, struct oifreq)
#define OSIOCSIFFLAGS _IOW('i', 16, struct oifreq)
#define OSIOCGIFFLAGS _IOWR('i', 17, struct oifreq)
#define OOSIOCGIFBRDADDR _IOWR('i', 18, struct oifreq)
#define OSIOCSIFBRDADDR _IOW('i', 19, struct oifreq)
#define OOSIOCGIFCONF _IOWR('i', 20, struct ifconf)
#define OOSIOCGIFNETMASK _IOWR('i', 21, struct oifreq)
#define OSIOCSIFNETMASK _IOW('i', 22, struct oifreq)
#define OSIOCGIFCONF _IOWR('i', 36, struct ifconf)
#define OSIOCADDMULTI _IOW('i', 49, struct oifreq)
#define OSIOCDELMULTI _IOW('i', 50, struct oifreq)
#define SIOCSIFMEDIA_43 _IOWR('i', 53, struct oifreq)
#define SIOCSIFMEDIA_80 _IOWR('i', 53, struct ifreq)
#define SIOCGIFMEDIA_80 _IOWR('i', 54, struct ifmediareq)
#define OSIOCGIFMTU _IOWR('i', 126, struct oifreq)
#define OSIOCGIFDATA _IOWR('i', 128, struct ifdatareq50)
#define OSIOCZIFDATA _IOWR('i', 129, struct ifdatareq50)
#define OBIOCGETIF _IOR('B', 107, struct oifreq)
#define OBIOCSETIF _IOW('B', 108, struct oifreq)
#define OTAPGIFNAME _IOR('e', 0, struct oifreq)
#define IFREQN2O_43(oi, ni) \
do { \
(void)memcpy((oi)->ifr_name, (ni)->ifr_name, \
sizeof((oi)->ifr_name)); \
(void)memcpy(&(oi)->ifr_ifru, &(ni)->ifr_ifru, \
sizeof((oi)->ifr_ifru)); \
} while (0)
#define IFREQO2N_43(oi, ni) \
do { \
(void)memcpy((ni)->ifr_name, (oi)->ifr_name, \
sizeof((oi)->ifr_name)); \
(void)memcpy(&(ni)->ifr_ifru, &(oi)->ifr_ifru, \
sizeof((oi)->ifr_ifru)); \
} while (0)
#define ifdatan2o(oi, ni) \
do { \
(void)memcpy((oi), (ni), sizeof(*(oi))); \
(oi)->ifi_lastchange.tv_sec = \
(int32_t)(ni)->ifi_lastchange.tv_sec; \
(oi)->ifi_lastchange.tv_usec = \
(ni)->ifi_lastchange.tv_nsec / 1000; \
} while (0)
#define ifdatao2n(oi, ni) \
do { \
(void)memcpy((ni), (oi), sizeof(*(oi))); \
(ni)->ifi_lastchange.tv_sec = (oi)->ifi_lastchange.tv_sec; \
(ni)->ifi_lastchange.tv_nsec = \
(oi)->ifi_lastchange.tv_usec * 1000; \
} while (0)
#endif