Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[linux-2.6] / include / linux / byteorder / pdp_endian.h
1 #ifndef _LINUX_BYTEORDER_PDP_ENDIAN_H
2 #define _LINUX_BYTEORDER_PDP_ENDIAN_H
3
4 /*
5  * Could have been named NUXI-endian, but we use the same name as in glibc.
6  * hopefully only the PDP and its evolutions (old VAXen in compatibility mode)
7  * should ever use this braindead byteorder.
8  * This file *should* work, but has not been tested.
9  *
10  * little-endian is 1234; big-endian is 4321; nuxi/pdp-endian is 3412
11  *
12  * I thought vaxen were NUXI-endian, but was told they were correct-endian
13  * (little-endian), though indeed there existed NUXI-endian machines
14  * (DEC PDP-11 and old VAXen in compatibility mode).
15  * This makes this file a bit useless, but as a proof-of-concept.
16  *
17  * But what does a __u64 look like: is it 34127856 or 78563412 ???
18  * I don't dare imagine! Hence, no 64-bit byteorder support yet.
19  * Hopefully, there 64-bit pdp-endian support shouldn't ever be required.
20  *
21  */
22
23 #ifndef __PDP_ENDIAN
24 #define __PDP_ENDIAN 3412
25 #endif
26 #ifndef __PDP_ENDIAN_BITFIELD
27 #define __PDP_ENDIAN_BITFIELD
28 #endif
29
30 #include <linux/byteorder/swab.h>
31 #include <linux/byteorder/swabb.h>
32
33 #define __constant_htonl(x) ___constant_swahb32((x))
34 #define __constant_ntohl(x) ___constant_swahb32((x))
35 #define __constant_htons(x) ___constant_swab16((x))
36 #define __constant_ntohs(x) ___constant_swab16((x))
37 #define __constant_cpu_to_le64(x) I DON'T KNOW
38 #define __constant_le64_to_cpu(x) I DON'T KNOW
39 #define __constant_cpu_to_le32(x) ___constant_swahw32((x))
40 #define __constant_le32_to_cpu(x) ___constant_swahw32((x))
41 #define __constant_cpu_to_le16(x) ((__u16)(x)
42 #define __constant_le16_to_cpu(x) ((__u16)(x)
43 #define __constant_cpu_to_be64(x) I DON'T KNOW
44 #define __constant_be64_to_cpu(x) I DON'T KNOW
45 #define __constant_cpu_to_be32(x) ___constant_swahb32((x))
46 #define __constant_be32_to_cpu(x) ___constant_swahb32((x))
47 #define __constant_cpu_to_be16(x) ___constant_swab16((x))
48 #define __constant_be16_to_cpu(x) ___constant_swab16((x))
49 #define __cpu_to_le64(x) I DON'T KNOW
50 #define __le64_to_cpu(x) I DON'T KNOW
51 #define __cpu_to_le32(x) ___swahw32((x))
52 #define __le32_to_cpu(x) ___swahw32((x))
53 #define __cpu_to_le16(x) ((__u16)(x)
54 #define __le16_to_cpu(x) ((__u16)(x)
55 #define __cpu_to_be64(x) I DON'T KNOW
56 #define __be64_to_cpu(x) I DON'T KNOW
57 #define __cpu_to_be32(x) __swahb32((x))
58 #define __be32_to_cpu(x) __swahb32((x))
59 #define __cpu_to_be16(x) __swab16((x))
60 #define __be16_to_cpu(x) __swab16((x))
61 #define __cpu_to_le64p(x) I DON'T KNOW
62 #define __le64_to_cpup(x) I DON'T KNOW
63 #define __cpu_to_le32p(x) ___swahw32p((x))
64 #define __le32_to_cpup(x) ___swahw32p((x))
65 #define __cpu_to_le16p(x) (*(__u16*)(x))
66 #define __le16_to_cpup(x) (*(__u16*)(x))
67 #define __cpu_to_be64p(x) I DON'T KNOW
68 #define __be64_to_cpup(x) I DON'T KNOW
69 #define __cpu_to_be32p(x) __swahb32p((x))
70 #define __be32_to_cpup(x) __swahb32p((x))
71 #define __cpu_to_be16p(x) __swab16p((x))
72 #define __be16_to_cpup(x) __swab16p((x))
73 #define __cpu_to_le64s(x) I DON'T KNOW
74 #define __le64_to_cpus(x) I DON'T KNOW
75 #define __cpu_to_le32s(x) ___swahw32s((x))
76 #define __le32_to_cpus(x) ___swahw32s((x))
77 #define __cpu_to_le16s(x) do {} while (0)
78 #define __le16_to_cpus(x) do {} while (0)
79 #define __cpu_to_be64s(x) I DON'T KNOW
80 #define __be64_to_cpus(x) I DON'T KNOW
81 #define __cpu_to_be32s(x) __swahb32s((x))
82 #define __be32_to_cpus(x) __swahb32s((x))
83 #define __cpu_to_be16s(x) __swab16s((x))
84 #define __be16_to_cpus(x) __swab16s((x))
85
86 #include <linux/byteorder/generic.h>
87
88 #endif /* _LINUX_BYTEORDER_PDP_ENDIAN_H */