Date: Mon, 26 Feb 2001 10:49:08 +0200 (EET) From: Ana Romero <anar@ees2.oulu.fi> To: Francis Dupont <Francis.Dupont@enst-bretagne.fr> Cc: Questions FreeBSD <questions@freeBSD.org> Subject: error making world Message-ID: <Pine.GSO.4.33.0102261038060.1445-200000@stekt56>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
HI!!
I have two identical laptops in which I am trying to make world to install
IPv6 inria
code. I succeded with the first one, but with the second I have errors
compiling in6_var.h file.I attach also the mentioned file. Do you know
how to fix it??
This is the error:
cc -nostdinc -O -pipe -I/usr/src/usr.bin/kdump/../ktrace
-I/usr/src/usr.bin/kdump/../.. -I/usr/obj/usr/src/tmp/usr/include -c
ioctl.c
In file included from ioctl.c:81:
/usr/obj/usr/src/tmp/usr/include/sys/memrange.h:16: warning: `MDF_ACTIVE'
redefined
/usr/obj/usr/src/tmp/usr/include/pccard/cardinfo.h:77: warning: this is the
location of the previous definition
In file included from ioctl.c:65:
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:52: field `ia_addr' has
incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:53: field `ia_dstaddr'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:54: field `ia_sockmask'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:66: field `ifra_addr'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:67: field `ifra_dstaddr'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:68: field `ifra_mask'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:73: field `ifr_Addr' has
incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:89: field `addr' has
incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:90: field `dstaddr' has
incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:224: field `inm6_addr'
has incomplete type
/usr/obj/usr/src/tmp/usr/include/netinet/in6_var.h:312: field `ina6_addr'
has incomplete type
*** Error code 1
Stop.
*** Error code 1
Stop.
*** Error code 1
Stop.
*** Error code 1
Stop.
*** Error code 1
Stop.
*** Error code 1
Stop. winner-laptop5# exit
exit
Script done on Mon Feb 26 10:40:27 2001
___________________________________
Ana Romero
Centre for Wireless Communications
PL 4500, Tutkijantie 2 E, FIN-90014
University of Oulu
Oulu, Finland
[-- Attachment #2 --]
/*
* Copyright (c) 1985, 1986, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)in_var.h 8.1 (Berkeley) 6/10/93
*/
#ifndef _NETINET_IN6_VAR_H_
#define _NETINET_IN6_VAR_H_
#include <sys/queue.h>
/*
* Interface address, IPv6 version. One of these structures
* is allocated for each IPv6 address on an interface.
* The ifaddr structure contains the protocol-independent part
* of the structure and is assumed to be first.
*/
struct in6_ifaddr {
struct ifaddr ia_ifa; /* protocol-independent info */
#define ia_ifp ia_ifa.ifa_ifp
#define ia_flags ia_ifa.ifa_flags
TAILQ_ENTRY(in6_ifaddr) ia_list; /* list of IPv6 addresses */
struct sockaddr_in6 ia_addr; /* space for interface name */
struct sockaddr_in6 ia_dstaddr; /* space for broadcast addr */
struct sockaddr_in6 ia_sockmask; /* space for general netmask */
};
#ifndef NO_SIOC_6
/*
* XXX - ioctl to be suppressed :
* SIOCDIFADDR6 SIOCAIFADDR6
* and structs in6_aliasreq and in6_ifreq
*/
struct in6_aliasreq {
char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */
struct sockaddr_in6 ifra_addr;
struct sockaddr_in6 ifra_dstaddr;
struct sockaddr_in6 ifra_mask;
};
struct in6_ifreq {
char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */
struct sockaddr_in6 ifr_Addr;
};
#endif /* NO_SIOC_6 */
/*
* Structure for SIOC[AGD]LIFADDR SIOC[GS]BTILADDR
*/
struct if_laddrreq {
char iflr_name[IFNAMSIZ];
unsigned int flags; /* out: ia_flags; in: see below */
#define IFLR_PREFIX 0x1
#define IFLR_FIRST 0x2
#define IFLR_NOSET 0x4
#define IFLR_PREFDST 0x8
#define IFLR_KILL 0x10
unsigned int prefixlen;
struct sockaddr_storage addr;
struct sockaddr_storage dstaddr;
};
/*
* SIOC[GAD]LIFADDR.
* SIOCGLIFADDR: get first address (no wildchar: addr ignored as input)
* SIOCGLIFADDR with IFLR_PREFIX:
* Get first address that matches the specified prefix.
* SIOCALIFADDR: add the specified address. (no wildchar: addr must be set)
* SIOCALIFADDR with IFLR_PREFIX:
* Add the specified prefix, filling hostid part from
* eui-64 or the first link-local address.
* Return the correct address
* local mods (only meaningful for SIOCALIFADDR)
* IFLR_FIRST add/put in first
* IFLR_PREFDST fill hostid part of dstaddr (need IFLR_PREFIX)
* IFLR_NOSET do only the verif/PREF part, do not set addr
* If addr is new, prefixlen must be >0 and dstaddr must be set
* on a p2p interface
* If addr already exists, prefixlen == 0 means do not change and
* on a p2p interface, dstaddr.sa_family == 0 means do not change
* SIOCDLIFADDR: delete the specified address. (no wildchar: must exist)
* SIOCDLIFADDR with IFLR_PREFIX:
* Delete the first address that matches the specified prefix.
* SIOCDLIFADDR with IFLR_KILL:
* Sends an error to all the PCBs using the address as source.
* return values:
* EINVAL on invalid parameters
* EADDRNOTAVAIL on prefix match failed/specified address not found
* other values may be returned from in6_ioctl()
*
* NOTE: SIOCALIFADDR(with IFLR_PREFIX set) allows any prefixlen.
* this is to accomodate address naming scheme other than RFC237.
*/
/*
* Given a pointer to an in6_ifaddr (ifaddr),
* return a pointer to the addr as a sockaddr_in6.
*/
#define IA_SIN6(ia) (&(((struct in6_ifaddr *)(ia))->ia_addr))
#define IA_DSTSIN6(ia) (&(((struct in6_ifaddr *)(ia))->ia_dstaddr))
#define if_site6 if_scid6[MADDR6_SCP_SITE]
#ifndef NO_SIOC_6
/*
* XXX - ioctl to be suppressed :
* SIOCDIFADDR6 SIOCAIFADDR6
* and structs in6_aliasreq and in6_ifreq
*/
#define SIOCDIFADDR6 _IOW('i', 25, struct in6_ifreq) /* delete IF addr */
#define SIOCAIFADDR6 _IOW('i', 26, struct in6_aliasreq)/* add/chg IF alias */
#endif /* NO_SIOC_6 */
#define SIOCALIFADDR _IOWR('i', 27, struct if_laddrreq)/* add IF addr */
#define SIOCGLIFADDR _IOWR('i', 28, struct if_laddrreq)/* get IF addr */
#define SIOCDLIFADDR _IOW('i', 29, struct if_laddrreq) /* delete IF addr */
#define SIOCADDANY _IOW('i', 41, struct if_laddrreq) /* add an anycast */
#define SIOCDELANY _IOW('i', 42, struct if_laddrreq) /* delete an anycast */
#define SIOCGIFSCID6 _IOWR('i', 43, struct ifreq) /* get a scope ID */
#define SIOCSIFSCID6 _IOW('i', 44, struct ifreq) /* set a scope ID */
#define SIOCGTUGLADDR _IOWR('i', 45, struct if_laddrreq)/* get TUG real addr */
#define SIOCSTUGLADDR _IOW('i', 46, struct if_laddrreq) /* set TUG real addr */
/* DTI and TUG: meme combat ! */
#define SIOCGDTILADDR _IOWR('i', 45, struct if_laddrreq)/* get DTI addr6 */
#define SIOCSDTILADDR _IOW('i', 46, struct if_laddrreq) /* set DTI addr6 */
#define SIOCGBTILADDR _IOWR('i', 47, struct if_laddrreq)/* get BTI addr6 */
#define SIOCSBTILADDR _IOW('i', 48, struct if_laddrreq) /* set BTI addr6 */
#define SIOCGDTILAST _IOWR('i', 47, struct ifreq) /* get DTI last */
#if defined(KERNEL) && defined(INET6)
TAILQ_HEAD(in6_ifaddrhead, in6_ifaddr);
extern struct in6_ifaddrhead in6_ifaddr;
extern int main_if6, main_site6;
/*
* Macro for finding the interface (ifnet structure) corresponding to one
* of our IPv6 addresses.
*/
#define IN6ADDR_TO_IFP(addr, ifp) \
/* struct in6_addr addr; */ \
/* struct ifnet *ifp; */ \
{ \
register struct in6_ifaddr *ia; \
\
for (ia = in6_ifaddr.tqh_first; \
ia != NULL && \
!SAME_ADDR6(((ia->ia_ifp->if_flags & IFF_POINTOPOINT) ? \
IA_DSTSIN6(ia) : IA_SIN6(ia))->sin6_addr, addr); \
ia = ia->ia_list.tqe_next) \
continue; \
if (ia == NULL) \
for (ia = in6_ifaddr.tqh_first; \
ia != NULL; \
ia = ia->ia_list.tqe_next) \
if (ia->ia_ifp->if_flags & IFF_POINTOPOINT && \
SAME_ADDR6(IA_SIN6(ia)->sin6_addr, addr)) \
break; \
(ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \
}
/*
* Macro for finding the IPv6 address structure (in6_ifaddr) corresponding
* to a given interface (ifnet structure).
*/
#define IFP_TO_IA6(ifp, ia) \
/* struct ifnet *ifp; */ \
/* struct in6_ifaddr *ia; */ \
{ \
for ((ia) = in6_ifaddr.tqh_first; \
(ia) != NULL && (ia)->ia_ifp != (ifp); \
(ia) = (ia)->ia_list.tqe_next) \
continue; \
}
#endif
/*
* IPv6 multicast address structure. There is one of these for each IPv6
* multicast group to which this host belongs on a given network interface.
* For every entry on the interface's if_multiaddrs list which represents
* an IPv6 multicast group, there is one of these structures. They are also
* kept on a system-wide list to make it easier to keep our legacy ICMPv6 code
* compatible with the rest of the world (see IN6_FIRST_MULTI et al, below).
*/
struct in6_multi {
LIST_ENTRY(in6_multi) inm6_entry; /* list glue */
struct in6_addr inm6_addr; /* IPv6 multicast address */
struct ifnet *inm6_ifp; /* back pointer to ifnet */
struct ifmultiaddr *inm6_ifma; /* back pointer to ifmultiaddr */
u_int inm6_timer; /* ICMPv6 membership report timer */
u_int inm6_state; /* state of the membership */
};
#define MULTI6_OTHERMEMBER 1
#define MULTI6_IREPORTEDLAST 2
#if defined(KERNEL) && defined(INET6)
extern LIST_HEAD(in6_multihead, in6_multi) in6_multihead;
/*
* Structure used by macros below to remember position when stepping through
* all of the in6_multi records.
*/
struct in6_multistep {
struct in6_multi *i6_inm;
};
/*
* Macro for looking up the in6_multi record for a given IPv6 multicast
* address on a given interface. If no matching record is found,
* "inm" is set null.
*/
#define IN6_LOOKUP_MULTI(addr, ifp, inm) \
/* struct in6_addr addr; */ \
/* struct ifnet *ifp; */ \
/* struct in6_multi *inm; */ \
do { \
register struct ifmultiaddr *ifma; \
\
for (ifma = (ifp)->if_multiaddrs.lh_first; ifma; \
ifma = ifma->ifma_link.le_next) { \
if (ifma->ifma_addr->sa_family == AF_INET6 \
&& SAME_ADDR6(((struct sockaddr_in6 *)ifma->ifma_addr)->sin6_addr, \
(addr))) \
break; \
} \
(inm) = ifma ? ifma->ifma_protospec : 0; \
} while(0)
/*
* Macro to step through all of the in6_multi records, one at a time.
* The current position is remembered in "step", which the caller must
* provide. IN6_FIRST_MULTI(), below, must be called to initialize "step"
* and get the first record. Both macros return a NULL "inm" when there
* are no remaining records.
*/
#define IN6_NEXT_MULTI(step, inm) \
/* struct in6_multistep step; */ \
/* struct in6_multi *inm; */ \
do { \
if (((inm) = (step).i6_inm) != NULL) \
(step).i6_inm = (step).i6_inm->inm6_entry.le_next; \
} while(0)
#define IN6_FIRST_MULTI(step, inm) \
/* struct in6_multistep step; */ \
/* struct in6_multi *inm; */ \
do { \
(step).i6_inm = in6_multihead.lh_first; \
IN6_NEXT_MULTI((step), (inm)); \
} while(0)
struct route;
struct in6_multi *in6_addmulti __P((struct in6_addr *, struct ifnet *));
void in6_delmulti __P((struct in6_multi *));
void in6_restartmulti __P((struct in6_addr *, struct ifnet *));
int in6_control __P((struct socket *, u_long, caddr_t, struct ifnet *,
struct proc *));
int in6_ifadown __P((struct ifaddr *ifa));
void in6_ifscrub __P((struct ifnet *, struct in6_ifaddr *));
int ip6flow_fastforward __P((struct mbuf *));
void ip6flow_create __P((const struct route *, struct mbuf *));
void ip6flow_slowtimo __P((void));
#endif /* KERNEL */
/*
* Anycast address structure.
*/
struct in6_anycast {
#ifdef KERNEL
LIST_ENTRY(in6_anycast) ina6_list; /* list glue */
#endif
struct in6_addr ina6_addr; /* IPv6 anycast address */
u_int ina6_refcount; /* reference count */
u_int ina6_flags; /* flags */
};
#define IP6ANY_HOST_PROXY 1 /* proxy (host) */
#define IP6ANY_ROUTER_PROXY 2 /* proxy (router) */
#define IP6ANY_ANYCAST 3 /* anycast */
#if defined(KERNEL) && defined(INET6)
extern LIST_HEAD(in6_anyhead, in6_anycast) in6_anyhead;
#endif
/*
* Definitions for IPv6 sysctl operations.
*
* Third level is protocol number.
* Fourth level is desired variable within that protocol.
*/
#define IP6PROTO_MAXID (1) /* don't list to IP6PROTO_MAX */
#define CTL_IP6PROTO_NAMES { \
{ "ipv6", CTLTYPE_NODE }, \
}
/*
* Names for IPv6 sysctl objects
*/
#define IP6CTL_FORWARDING 1 /* act as router */
#define IP6CTL_MFORWARDING 2 /* act as multicast router */
#define IP6CTL_FORWSRCRT 3 /* forward source-routed packets */
#define IP6CTL_DEFTTL 4 /* default TTL */
#define IP6CTL_PRUNE 5 /* route prune timer */
#define IP6CTL_KEEP 6 /* route default lifetime */
#define IP6CTL_REACHABLE 7 /* reachable time */
#define IP6CTL_RETRANS 8 /* retrans timer */
#define IP6CTL_PROBE 9 /* delay first probe */
#define IP6CTL_DOWN 10 /* hold down timer */
#define IP6CTL_UMAXTRIES 11 /* max unicast solicit */
#define IP6CTL_MMAXTRIES 12 /* max multicast solicit */
#define IP6CTL_MHLEVEL 13 /* multi-homed support level */
#define IP6CTL_MAININTF 14 /* index of the main interface */
#define IP6CTL_MAINSITE 15 /* index of the main site */
#define IP6CTL_ANYCASTS 16 /* anycast address list */
#define IP6CTL_CTICNT 17 /* number of CTI interfaces */
#define IP6CTL_BTICNT 18 /* number of BTI interfaces */
#define IP6CTL_DTICNT 19 /* number of DTI interfaces */
#define IP6CTL_STATS 20 /* ip6stat structure */
#define IP6CTL_FASTFORWARDING 21 /* use fast IPv6 forwarding code */
#define IP6CTL_MAXID 22
#define IP6CTL_NAMES { \
{ 0, 0 }, \
{ "forwarding", CTLTYPE_INT }, \
{ "mforwarding", CTLTYPE_INT }, \
{ "forwsrcrt", CTLTYPE_INT }, \
{ "ttl", CTLTYPE_INT }, \
{ "prune", CTLTYPE_INT }, \
{ "keep", CTLTYPE_INT }, \
{ "reachable", CTLTYPE_INT }, \
{ "retrans", CTLTYPE_INT }, \
{ "probe", CTLTYPE_INT }, \
{ "hold_down", CTLTYPE_INT }, \
{ "utries_max", CTLTYPE_INT }, \
{ "mtries_max", CTLTYPE_INT }, \
{ "multi_homed", CTLTYPE_INT }, \
{ "main_interface", CTLTYPE_INT }, \
{ "main_site", CTLTYPE_INT }, \
{ "anycasts", CTLTYPE_STRUCT }, \
{ "cti_count", CTLTYPE_INT }, \
{ "bti_count", CTLTYPE_INT }, \
{ "dti_count", CTLTYPE_INT }, \
{ "stats", CTLTYPE_STRUCT }, \
{ "fastforwarding", CTLTYPE_INT }, \
}
int main_interface __P((int *));
int main_site __P((int *));
#endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.33.0102261038060.1445-200000>
