From 36556eafe6795e801ba175dbcee0fa3f67af62b0 Mon Sep 17 00:00:00 2001 From: Adi Masputra Date: Thu, 30 Sep 1999 19:56:37 +0000 Subject: [PATCH] Added Solaris-specific variables --- pppd/eui64.h | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) 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__ */ + -- 2.39.2