#ifndef _COMPAT_NETINET6_IN6_VAR_H_
#define _COMPAT_NETINET6_IN6_VAR_H_
#include <sys/ioccom.h>
struct in6_addrlifetime50 {
int32_t ia6t_expire;
int32_t ia6t_preferred;
u_int32_t ia6t_vltime;
u_int32_t ia6t_pltime;
};
struct in6_aliasreq50 {
char ifra_name[IFNAMSIZ];
struct sockaddr_in6 ifra_addr;
struct sockaddr_in6 ifra_dstaddr;
struct sockaddr_in6 ifra_prefixmask;
int ifra_flags;
struct in6_addrlifetime50 ifra_lifetime;
};
struct prf_ra {
u_int32_t onlink : 1;
u_int32_t autonomous : 1;
u_int32_t router : 1;
u_int32_t reserved : 5;
};
#define OSIOCAIFADDR_IN6 _IOW('i', 26, struct in6_aliasreq50)
#define OSIOCSIFPHYADDR_IN6 _IOW('i', 70, struct in6_aliasreq50)
#define OSIOCGDRLST_IN6 _IOWR('i', 74, struct in6_drlist)
#define OSIOCGPRLST_IN6 _IOWR('i', 75, struct in6_oprlist)
#define OSIOCGIFINFO_IN6 _IOWR('i', 76, struct in6_ondireq)
#define OSIOCSNDFLUSH_IN6 _IOWR('i', 77, struct in6_ifreq)
#define OSIOCSPFXFLUSH_IN6 _IOWR('i', 79, struct in6_ifreq)
#define OSIOCSRTRFLUSH_IN6 _IOWR('i', 80, struct in6_ifreq)
#define OSIOCGIFALIFETIME_IN6 _IOWR('i', 81, struct in6_ifreq)
#define OSIOCSDEFIFACE_IN6 _IOWR('i', 85, struct in6_ndifreq90)
#define OSIOCGDEFIFACE_IN6 _IOWR('i', 86, struct in6_ndifreq90)
#define OSIOCSIFINFO_FLAGS_90 _IOWR('i', 87, struct in6_ndireq90)
#define OSIOCGIFINFO_IN6_90 _IOWR('i', 108, struct in6_ndireq90)
#define OSIOCSIFINFO_IN6_90 _IOWR('i', 109, struct in6_ndireq90)
static __inline void in6_addrlifetime_to_in6_addrlifetime50(
struct in6_addrlifetime *al)
{
struct in6_addrlifetime cp;
struct in6_addrlifetime50 *oal =
(struct in6_addrlifetime50 *)(void *)al;
(void)memcpy(&cp, al, sizeof(cp));
oal->ia6t_expire = (int32_t)cp.ia6t_expire;
oal->ia6t_preferred = (int32_t)cp.ia6t_preferred;
oal->ia6t_vltime = cp.ia6t_vltime;
oal->ia6t_pltime = cp.ia6t_pltime;
}
static __inline void in6_aliasreq50_to_in6_aliasreq(
struct in6_aliasreq *ar)
{
struct in6_aliasreq50 *oar =
(struct in6_aliasreq50 *)(void *)ar;
struct in6_aliasreq50 cp;
memcpy(&cp, oar, sizeof(cp));
ar->ifra_lifetime.ia6t_expire = cp.ifra_lifetime.ia6t_expire;
ar->ifra_lifetime.ia6t_preferred = cp.ifra_lifetime.ia6t_preferred;
ar->ifra_lifetime.ia6t_vltime = cp.ifra_lifetime.ia6t_vltime;
ar->ifra_lifetime.ia6t_pltime = cp.ifra_lifetime.ia6t_pltime;
}
#endif