summaryrefslogtreecommitdiffstats
path: root/sys/netatalk/endian.h
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1996-05-24 01:35:45 +0000
committerjulian <julian@FreeBSD.org>1996-05-24 01:35:45 +0000
commitab2eb71c6f0d52b75d38708dd906c6461ab8cd04 (patch)
treeec6b23430d90949e7d850ac2f7bf6a9abf504900 /sys/netatalk/endian.h
parentf54ae37a95112e2bfe75acccd5720f7292ea0abc (diff)
downloadFreeBSD-src-ab2eb71c6f0d52b75d38708dd906c6461ab8cd04.zip
FreeBSD-src-ab2eb71c6f0d52b75d38708dd906c6461ab8cd04.tar.gz
Obtained from: netatalk distribution netatalk@itd.umich.edu
Kernel Appletalk protocol support both CAP and netatalk can make use of this.. still needs some owrk but it seemd the right tiime to commit it so other can experiment.
Diffstat (limited to 'sys/netatalk/endian.h')
-rw-r--r--sys/netatalk/endian.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/sys/netatalk/endian.h b/sys/netatalk/endian.h
new file mode 100644
index 0000000..919d351
--- /dev/null
+++ b/sys/netatalk/endian.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 1990,1991 Regents of The University of Michigan.
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appears in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation, and that the name of The University
+ * of Michigan not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior
+ * permission. This software is supplied as is without expressed or
+ * implied warranties of any kind.
+ *
+ * Research Systems Unix Group
+ * The University of Michigan
+ * c/o Mike Clark
+ * 535 W. William Street
+ * Ann Arbor, Michigan
+ * +1-313-763-0525
+ * netatalk@itd.umich.edu
+ */
+
+# ifndef _ATALK_ENDIAN_H_
+#define _ATALK_ENDIAN_H_
+
+#ifdef _IBMR2
+#include <sys/machine.h>
+#endif _IBMR2
+
+#ifdef linux
+#include <bytesex.h>
+#define BYTE_ORDER __BYTE_ORDER
+#endif linux
+
+#ifdef __FreeBSD__
+#include <machine/endian.h>
+#endif __FreeBSD__
+
+# ifndef BYTE_ORDER
+#define LITTLE_ENDIAN 1234
+#define BIG_ENDIAN 4321
+#define PDP_ENDIAN 3412
+
+#ifdef sun
+#ifdef i386
+#define BYTE_ORDER LITTLE_ENDIAN
+#else i386
+#define BYTE_ORDER BIG_ENDIAN
+#endif i386
+#else
+#ifdef MIPSEB
+#define BYTE_ORDER BIG_ENDIAN
+#else
+#ifdef MIPSEL
+#define BYTE_ORDER LITTLE_ENDIAN
+#else
+Like, what is your byte order, man?
+#endif MIPSEL
+#endif MIPSEB
+#endif sun
+# endif BYTE_ORDER
+
+# ifndef ntohl
+# if defined( sun ) || defined( ultrix ) || defined( _IBMR2 )
+#if BYTE_ORDER == BIG_ENDIAN
+#define ntohl(x) (x)
+#define ntohs(x) (x)
+#define htonl(x) (x)
+#define htons(x) (x)
+
+#else
+#if defined( mips ) && defined( KERNEL )
+#define ntohl(x) nuxi_l(x)
+#define ntohs(x) nuxi_s(x)
+#define htonl(x) nuxi_l(x)
+#define htons(x) nuxi_s(x)
+
+#else mips KERNEL
+unsigned short ntohs(), htons();
+unsigned long ntohl(), htonl();
+
+#endif mips KERNEL
+#endif BYTE_ORDER
+# endif sun ultrix _IBMR2
+# endif ntohl
+# endif _ATALK_ENDIAN_H_
OpenPOWER on IntegriCloud