File: /usr/src/linux/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 */
89