jehanne/sys/src/lib/ip/bo.c

87 lines
1.2 KiB
C

/*
* This file is part of the UCB release of Plan 9. It is subject to the license
* terms in the LICENSE file found in the top-level directory of this
* distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
* part of the UCB release of Plan 9, including this file, may be copied,
* modified, propagated, or distributed except according to the terms contained
* in the LICENSE file.
*/
#include <u.h>
#include <lib9.h>
#include <ip.h>
void
hnputv(void *p, uint64_t v)
{
uint8_t *a;
a = p;
a[0] = v>>56;
a[1] = v>>48;
a[2] = v>>40;
a[3] = v>>32;
a[4] = v>>24;
a[5] = v>>16;
a[6] = v>>8;
a[7] = v;
}
void
hnputl(void *p, uint32_t v)
{
uint8_t *a;
a = p;
a[0] = v>>24;
a[1] = v>>16;
a[2] = v>>8;
a[3] = v;
}
void
hnputs(void *p, uint16_t v)
{
uint8_t *a;
a = p;
a[0] = v>>8;
a[1] = v;
}
uint64_t
nhgetv(void *p)
{
uint8_t *a;
uint64_t v;
a = p;
v = (uint64_t)a[0]<<56;
v |= (uint64_t)a[1]<<48;
v |= (uint64_t)a[2]<<40;
v |= (uint64_t)a[3]<<32;
v |= a[4]<<24;
v |= a[5]<<16;
v |= a[6]<<8;
v |= a[7]<<0;
return v;
}
uint32_t
nhgetl(void *p)
{
uint8_t *a;
a = p;
return (a[0]<<24)|(a[1]<<16)|(a[2]<<8)|(a[3]<<0);
}
uint16_t
nhgets(void *p)
{
uint8_t *a;
a = p;
return (a[0]<<8)|(a[1]<<0);
}