X-Git-Url: https://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Feui64.h;fp=pppd%2Feui64.h;h=d31da7e5592e614c4deb51c6bacf5e54533bd89c;hp=b8a1c28911e695431f1e628339543533dd136ecb;hb=36556eafe6795e801ba175dbcee0fa3f67af62b0;hpb=a76dec3b0f10ad19bf9a8c93d8899f28f7c1585f diff --git a/pppd/eui64.h b/pppd/eui64.h index b8a1c28..d31da7e 100644 --- a/pppd/eui64.h +++ b/pppd/eui64.h @@ -17,9 +17,33 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - $Id: eui64.h,v 1.2 1999/08/25 04:15:51 paulus Exp $ + $Id: eui64.h,v 1.3 1999/09/30 19:56:37 masputra Exp $ */ +#ifndef __EUI64_H__ +#define __EUI64_H__ + +#if !defined(INET6) +#error "this file should only be included when INET6 is defined" +#endif /* not defined(INET6) */ + +#if defined(SOL2) +#include + +typedef union { + uint8_t e8[8]; /* lower 64-bit IPv6 address */ + uint32_t e32[2]; /* lower 64-bit IPv6 address */ +} eui64_t; + +/* + * Declare the two below, since in.h only defines them when _KERNEL + * is declared - which shouldn't be true when dealing with user-land programs + */ +#define s6_addr8 _S6_un._S6_u8 +#define s6_addr32 _S6_un._S6_u32 + +#else /* else if not defined(SOL2) */ + /* * TODO: * @@ -32,6 +56,8 @@ typedef union u_int32_t e32[2]; } eui64_t; +#endif /* defined(SOL2) */ + #define eui64_iszero(e) (((e).e32[0] | (e).e32[1]) == 0) #define eui64_equals(e, o) (((e).e32[0] == (o).e32[0]) && \ ((e).e32[1] == (o).e32[1])) @@ -68,3 +94,6 @@ typedef union #define eui64_setlo32(e, l) eui64_set32(e, l) char *eui64_ntoa __P((eui64_t)); /* Returns ascii representation of id */ + +#endif /* __EUI64_H__ */ +