525950c8008d080ca873214b776c45aa9a45566evboxsync * Main - Network Interfaces.
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * Copyright (C) 2008-2012 Oracle Corporation
525950c8008d080ca873214b776c45aa9a45566evboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
525950c8008d080ca873214b776c45aa9a45566evboxsync * available from http://www.virtualbox.org. This file is free software;
525950c8008d080ca873214b776c45aa9a45566evboxsync * you can redistribute it and/or modify it under the terms of the GNU
525950c8008d080ca873214b776c45aa9a45566evboxsync * General Public License (GPL) as published by the Free Software
525950c8008d080ca873214b776c45aa9a45566evboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
525950c8008d080ca873214b776c45aa9a45566evboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
525950c8008d080ca873214b776c45aa9a45566evboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
2f0d866e126dd288169fed591c259c1c6b4016e5vboxsync/** @todo r=bird: The inlined code below that drags in asm.h here. I doubt
2f0d866e126dd288169fed591c259c1c6b4016e5vboxsync * speed is very important here, so move it into a .cpp file, please. */
2f0d866e126dd288169fed591c259c1c6b4016e5vboxsync#endif /* !RT_OS_WINDOWS */
53b0fdeac7f9c6951c13042aa63c0a45fa606cfavboxsync#define VBOXNET_IPV4ADDR_DEFAULT 0x0138A8C0 /* 192.168.56.1 */
525950c8008d080ca873214b776c45aa9a45566evboxsync * Encapsulation type.
525950c8008d080ca873214b776c45aa9a45566evboxsync * Current state of the interface.
525950c8008d080ca873214b776c45aa9a45566evboxsync * Host Network Interface Information.
525950c8008d080ca873214b776c45aa9a45566evboxsync/** Pointer to a network interface info. */
525950c8008d080ca873214b776c45aa9a45566evboxsync/** Pointer to a const network interface info. */
32529464ff2d4288a3c949ab8042126b0fa903devboxsyncint NetIfList(std::list <ComObjPtr<HostNetworkInterface> > &list);
1468b39c8bba83821c9a88039ead6315de21da51vboxsyncint NetIfEnableStaticIpConfig(VirtualBox *pVBox, HostNetworkInterface * pIf, ULONG aOldIp, ULONG aNewIp, ULONG aMask);
1468b39c8bba83821c9a88039ead6315de21da51vboxsyncint NetIfEnableStaticIpConfigV6(VirtualBox *pVBox, HostNetworkInterface * pIf, IN_BSTR aOldIPV6Address, IN_BSTR aIPV6Address, ULONG aIPV6MaskPrefixLength);
1468b39c8bba83821c9a88039ead6315de21da51vboxsyncint NetIfEnableDynamicIpConfig(VirtualBox *pVBox, HostNetworkInterface * pIf);
1468b39c8bba83821c9a88039ead6315de21da51vboxsyncint NetIfCreateHostOnlyNetworkInterface (VirtualBox *pVBox, IHostNetworkInterface **aHostNetworkInterface, IProgress **aProgress, const char *pcszName = NULL);
1468b39c8bba83821c9a88039ead6315de21da51vboxsyncint NetIfRemoveHostOnlyNetworkInterface (VirtualBox *pVBox, IN_GUID aId, IProgress **aProgress);
c1367e053933211e2e4869cf3d5e5e7c0620fdd8vboxsyncint NetIfGetConfig(HostNetworkInterface * pIf, NETIFINFO *);
3fb18f864d3a3a6727c51f29be516f268d3baa96vboxsyncint NetIfGetState(const char *pcszIfName, NETIFSTATUS *penmState);
3fb18f864d3a3a6727c51f29be516f268d3baa96vboxsyncint NetIfGetLinkSpeed(const char *pcszIfName, uint32_t *puMbits);
1468b39c8bba83821c9a88039ead6315de21da51vboxsyncint NetIfDhcpRediscover(VirtualBox *pVBox, HostNetworkInterface * pIf);
e35d51bc86d234abdf08fe247ea901501faa022fvboxsyncint NetIfAdpCtlOut(const char * pcszName, const char * pcszCmd, char *pszBuffer, size_t cBufSize);
45677251379f493b12e17b018a00fb421bc03210vboxsyncDECLINLINE(Bstr) composeIPv6Address(PRTNETADDRIPV6 aAddrPtr)
eaa6b4b3907b130823d6d0789716d83cec7ab243vboxsync "%02x%02x:%02x%02x:%02x%02x:%02x%02x:"
eaa6b4b3907b130823d6d0789716d83cec7ab243vboxsync "%02x%02x:%02x%02x:%02x%02x:%02x%02x",
65d9eb0b2a96389c8512d1234c02aada7c131531vboxsyncDECLINLINE(ULONG) composeIPv6PrefixLenghFromAddress(PRTNETADDRIPV6 aAddrPtr)
a54fad028e14590f00f2bdc889ad5b0ff5995faevboxsync int res = ASMBitFirstClear(aAddrPtr, sizeof(RTNETADDRIPV6)*8);
45677251379f493b12e17b018a00fb421bc03210vboxsyncDECLINLINE(int) prefixLength2IPv6Address(ULONG cPrefix, PRTNETADDRIPV6 aAddrPtr)
45677251379f493b12e17b018a00fb421bc03210vboxsyncDECLINLINE(Bstr) composeHardwareAddress(PRTMAC aMacPtr)
45677251379f493b12e17b018a00fb421bc03210vboxsync "%02x:%02x:%02x:%02x:%02x:%02x",
53b0fdeac7f9c6951c13042aa63c0a45fa606cfavboxsyncDECLINLINE(Bstr) getDefaultIPv4Address(Bstr bstrIfName)
53b0fdeac7f9c6951c13042aa63c0a45fa606cfavboxsync /* Get the index from the name */
53b0fdeac7f9c6951c13042aa63c0a45fa606cfavboxsync tmp.S_un.S_addr = VBOXNET_IPV4ADDR_DEFAULT + (iInstance << 16);
53b0fdeac7f9c6951c13042aa63c0a45fa606cfavboxsync tmp.s_addr = VBOXNET_IPV4ADDR_DEFAULT + (iInstance << 16);
2f0d866e126dd288169fed591c259c1c6b4016e5vboxsync#endif /* !___netif_h */
5e3a885d489b1c99d79d576813f8f321bae46927vboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */