589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync/*
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * Copyright (C) 2009 Jeff Latimer
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync *
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * This library is free software; you can redistribute it and/or
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * modify it under the terms of the GNU Lesser General Public
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * License as published by the Free Software Foundation; either
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * version 2.1 of the License, or (at your option) any later version.
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync *
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * This library is distributed in the hope that it will be useful,
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * Lesser General Public License for more details.
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync *
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * You should have received a copy of the GNU Lesser General Public
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * License along with this library; if not, write to the Free Software
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync */
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync/*
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * a choice of LGPL license versions is made available with the language indicating
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * of the LGPL is applied is otherwise unspecified.
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync */
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#ifndef __IN6ADDR__
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define __IN6ADDR__
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#ifdef USE_WS_PREFIX
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define WS(x) WS_##x
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#else
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define WS(x) x
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#endif
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsynctypedef struct WS(in6_addr) {
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync union {
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync WS(u_char) Byte[16];
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync WS(u_short) Word[8];
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync } u;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync} IN6_ADDR, *PIN6_ADDR, *LPIN6_ADDR;
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define in_addr6 WS(in6_addr)
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#ifdef USE_WS_PREFIX
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define WS__S6_un u
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define WS__S6_u8 Byte
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define WS_s6_addr WS__S6_un.WS__S6_u8
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#else
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define _S6_un u
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define _S6_u8 Byte
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define s6_addr _S6_un._S6_u8
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#endif
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define s6_bytes u.Byte
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#define s6_words u.Word
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#undef WS
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync#endif /* __IN6ADDR__ */