| /* |
| * 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 <stdlib.h> |
| |
| #include <iplib/iplib.h> |
| #include <parlib/parlib.h> |
| #include <signal.h> |
| #include <stdio.h> |
| #include <unistd.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, unsigned int 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; |
| } |
| |
| unsigned int 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); |
| } |