|  | /* | 
|  | * 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); | 
|  | } |