88 lines · 1.4 KB · C
RawDownload
/*  * 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> /* * big-endian short */ushortbeswab(ushort s){	uchar *p; 	p = (uchar*)&s;	return (p[0]<<8) | p[1];} /* * big-endian long */ulongbeswal(ulong l){	uchar *p; 	p = (uchar*)&l;	return (p[0]<<24) | (p[1]<<16) | (p[2]<<8) | p[3];} /* * big-endian vlong */uvlongbeswav(uvlong v){	uchar *p; 	p = (uchar*)&v;	return ((uvlong)p[0]<<56) | ((uvlong)p[1]<<48) | ((uvlong)p[2]<<40)				  | ((uvlong)p[3]<<32) | ((uvlong)p[4]<<24)				  | ((uvlong)p[5]<<16) | ((uvlong)p[6]<<8)				  | (uvlong)p[7];} /* * little-endian short */ushortleswab(ushort s){	uchar *p; 	p = (uchar*)&s;	return (p[1]<<8) | p[0];} /* * little-endian long */ulongleswal(ulong l){	uchar *p; 	p = (uchar*)&l;	return (p[3]<<24) | (p[2]<<16) | (p[1]<<8) | p[0];} /* * little-endian vlong */uvlongleswav(uvlong v){	uchar *p; 	p = (uchar*)&v;	return ((uvlong)p[7]<<56) | ((uvlong)p[6]<<48) | ((uvlong)p[5]<<40)				  | ((uvlong)p[4]<<32) | ((uvlong)p[3]<<24)				  | ((uvlong)p[2]<<16) | ((uvlong)p[1]<<8)				  | (uvlong)p[0];}