xref: /minix3/common/lib/libc/net/htons.c (revision f14fb602092e015ff630df58e17c2a9cd57d29b3)
1*f14fb602SLionel Sambuc /*	$NetBSD: htons.c,v 1.3 2012/03/21 20:02:56 he Exp $	*/
2b6cbf720SGianluca Guida 
3b6cbf720SGianluca Guida /*
4b6cbf720SGianluca Guida  * Written by J.T. Conklin <jtc@NetBSD.org>.
5b6cbf720SGianluca Guida  * Public domain.
6b6cbf720SGianluca Guida  */
7b6cbf720SGianluca Guida 
8b6cbf720SGianluca Guida #include <sys/cdefs.h>
9b6cbf720SGianluca Guida #if defined(LIBC_SCCS) && !defined(lint)
10*f14fb602SLionel Sambuc __RCSID("$NetBSD: htons.c,v 1.3 2012/03/21 20:02:56 he Exp $");
11b6cbf720SGianluca Guida #endif
12b6cbf720SGianluca Guida 
13b6cbf720SGianluca Guida #include <sys/types.h>
14b6cbf720SGianluca Guida 
15b6cbf720SGianluca Guida #undef htons
16b6cbf720SGianluca Guida 
17b6cbf720SGianluca Guida uint16_t
htons(uint16_t x)18*f14fb602SLionel Sambuc htons(uint16_t x)
19b6cbf720SGianluca Guida {
20b6cbf720SGianluca Guida #if BYTE_ORDER == LITTLE_ENDIAN
21*f14fb602SLionel Sambuc 	u_char *s = (void *) &x;
22b6cbf720SGianluca Guida 	return (uint16_t)(s[0] << 8 | s[1]);
23b6cbf720SGianluca Guida #else
24b6cbf720SGianluca Guida 	return x;
25b6cbf720SGianluca Guida #endif
26b6cbf720SGianluca Guida }
27