ifaddrs.hin revision 178825
172445Sassar/*
272445Sassar * Copyright (c) 2000 Kungliga Tekniska H�gskolan
372445Sassar * (Royal Institute of Technology, Stockholm, Sweden).
472445Sassar * All rights reserved.
572445Sassar * 
672445Sassar * Redistribution and use in source and binary forms, with or without
772445Sassar * modification, are permitted provided that the following conditions
872445Sassar * are met:
972445Sassar * 
1072445Sassar * 1. Redistributions of source code must retain the above copyright
1172445Sassar *    notice, this list of conditions and the following disclaimer.
1272445Sassar * 
1372445Sassar * 2. Redistributions in binary form must reproduce the above copyright
1472445Sassar *    notice, this list of conditions and the following disclaimer in the
1572445Sassar *    documentation and/or other materials provided with the distribution.
1672445Sassar * 
1772445Sassar * 3. Neither the name of the Institute nor the names of its contributors
1872445Sassar *    may be used to endorse or promote products derived from this software
1972445Sassar *    without specific prior written permission.
2072445Sassar * 
2172445Sassar * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
2272445Sassar * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2372445Sassar * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2472445Sassar * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
2572445Sassar * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2672445Sassar * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2772445Sassar * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2872445Sassar * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2972445Sassar * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3072445Sassar * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3172445Sassar * SUCH DAMAGE.
3272445Sassar */
3372445Sassar
34178825Sdfr/* $Id: ifaddrs.hin 19309 2006-12-11 18:58:15Z lha $ */
3572445Sassar
3672445Sassar#ifndef __ifaddrs_h__
3772445Sassar#define __ifaddrs_h__
3872445Sassar
39178825Sdfr#ifndef ROKEN_LIB_FUNCTION
40178825Sdfr#ifdef _WIN32
41178825Sdfr#define ROKEN_LIB_FUNCTION _stdcall
42178825Sdfr#else
43178825Sdfr#define ROKEN_LIB_FUNCTION
44178825Sdfr#endif
45178825Sdfr#endif
46178825Sdfr
4772445Sassar/*
4872445Sassar * the interface is defined in terms of the fields below, and this is
4972445Sassar * sometimes #define'd, so there seems to be no simple way of solving
5072445Sassar * this and this seemed the best. */
5172445Sassar
5272445Sassar#undef ifa_dstaddr
5372445Sassar
5472445Sassarstruct ifaddrs {
5572445Sassar    struct ifaddrs *ifa_next;
5672445Sassar    char *ifa_name;
5772445Sassar    unsigned int ifa_flags;
5872445Sassar    struct sockaddr *ifa_addr;
5972445Sassar    struct sockaddr *ifa_netmask;
6072445Sassar    struct sockaddr *ifa_dstaddr;
6172445Sassar    void *ifa_data;
6272445Sassar};
6372445Sassar
6472445Sassar#ifndef ifa_broadaddr
6572445Sassar#define ifa_broadaddr ifa_dstaddr
6672445Sassar#endif
6772445Sassar
68178825Sdfrint ROKEN_LIB_FUNCTION
69178825Sdfrrk_getifaddrs(struct ifaddrs**);
7072445Sassar
71178825Sdfrvoid ROKEN_LIB_FUNCTION
72178825Sdfrrk_freeifaddrs(struct ifaddrs*);
7372445Sassar
74178825Sdfr#define getifaddrs(a) rk_getifaddrs(a)
75178825Sdfr#define freeifaddrs(a) rk_freeifaddrs(a)
76178825Sdfr
7772445Sassar#endif /* __ifaddrs_h__ */
78