32 #include "ip64-addr.h" 
   46 ip64_addr_copy6(uip_ip6addr_t *dest, 
const uip_ip6addr_t *src)
 
   48   memcpy(dest, src, 
sizeof(uip_ip6addr_t));
 
   53                uip_ip6addr_t *ipv6addr)
 
   71   ipv6addr->u8[10] = 0xff;
 
   72   ipv6addr->u8[11] = 0xff;
 
   73   ipv6addr->u8[12] = ipv4addr->u8[0];
 
   74   ipv6addr->u8[13] = ipv4addr->u8[1];
 
   75   ipv6addr->u8[14] = ipv4addr->u8[2];
 
   76   ipv6addr->u8[15] = ipv4addr->u8[3];
 
   77   printf(
"ip64_addr_4to6: IPv6-encoded IPv4 address %d.%d.%d.%d\n",
 
   78          ipv4addr->u8[0], ipv4addr->u8[1],
 
   79          ipv4addr->u8[2], ipv4addr->u8[3]);
 
   86 ip64_addr_6to4(
const uip_ip6addr_t *ipv6addr,
 
   96   if(ipv6addr->u8[0] == 0 &&
 
   97      ipv6addr->u8[1] == 0 &&
 
   98      ipv6addr->u8[2] == 0 &&
 
   99      ipv6addr->u8[3] == 0 &&
 
  100      ipv6addr->u8[4] == 0 &&
 
  101      ipv6addr->u8[5] == 0 &&
 
  102      ipv6addr->u8[6] == 0 &&
 
  103      ipv6addr->u8[7] == 0 &&
 
  104      ipv6addr->u8[8] == 0 &&
 
  105      ipv6addr->u8[9] == 0 &&
 
  106      ipv6addr->u8[10] == 0xff &&
 
  107      ipv6addr->u8[11] == 0xff) {
 
  108     ipv4addr->u8[0] = ipv6addr->u8[12];
 
  109     ipv4addr->u8[1] = ipv6addr->u8[13];
 
  110     ipv4addr->u8[2] = ipv6addr->u8[14];
 
  111     ipv4addr->u8[3] = ipv6addr->u8[15];
 
  113     printf(
"ip64_addr_6to4: IPv6-encoded IPv4 address %d.%d.%d.%d\n",
 
  114            ipv4addr->u8[0], ipv4addr->u8[1],
 
  115            ipv4addr->u8[2], ipv4addr->u8[3]);
 
Representation of an IP address.