1 | #ifndef _XARCH_H_
|
---|
2 | # define _XARCH_H_
|
---|
3 |
|
---|
4 | /*
|
---|
5 | * Copyright 1997 Metro Link Incorporated
|
---|
6 | *
|
---|
7 | * All Rights Reserved
|
---|
8 | *
|
---|
9 | * Permission to use, copy, modify, distribute, and sell this software and its
|
---|
10 | * documentation for any purpose is hereby granted without fee, provided that
|
---|
11 | * the above copyright notice appear in all copies and that both that
|
---|
12 | * copyright notice and this permission notice appear in supporting
|
---|
13 | * documentation, and that the names of the above listed copyright holder(s)
|
---|
14 | * not be used in advertising or publicity pertaining to distribution of
|
---|
15 | * the software without specific, written prior permission. The above listed
|
---|
16 | * copyright holder(s) make(s) no representations about the suitability of
|
---|
17 | * this software for any purpose. It is provided "as is" without express or
|
---|
18 | * implied warranty.
|
---|
19 | *
|
---|
20 | * THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD
|
---|
21 | * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
---|
22 | * AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
---|
23 | * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
|
---|
24 | * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
|
---|
25 | * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
---|
26 | * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
---|
27 | */
|
---|
28 |
|
---|
29 |
|
---|
30 | /*
|
---|
31 | * Determine the machine's byte order.
|
---|
32 | */
|
---|
33 |
|
---|
34 | /* See if it is set in the imake config first */
|
---|
35 | # ifdef X_BYTE_ORDER
|
---|
36 |
|
---|
37 | # define X_BIG_ENDIAN 4321
|
---|
38 | # define X_LITTLE_ENDIAN 1234
|
---|
39 |
|
---|
40 | # else
|
---|
41 |
|
---|
42 | # if defined(SVR4) || defined(__SVR4)
|
---|
43 | # include <sys/byteorder.h>
|
---|
44 | # elif defined(CSRG_BASED)
|
---|
45 | # if defined(__NetBSD__) || defined(__OpenBSD__)
|
---|
46 | # include <sys/types.h>
|
---|
47 | # endif
|
---|
48 | # include <machine/endian.h>
|
---|
49 | # elif defined(linux)
|
---|
50 | # if defined __STRICT_ANSI__
|
---|
51 | # undef __STRICT_ANSI__
|
---|
52 | # include <endian.h>
|
---|
53 | # define __STRICT_ANSI__
|
---|
54 | # else
|
---|
55 | # include <endian.h>
|
---|
56 | # endif
|
---|
57 | /* 'endian.h' might have been included before 'Xarch.h' */
|
---|
58 | # if !defined(LITTLE_ENDIAN) && defined(__LITTLE_ENDIAN)
|
---|
59 | # define LITTLE_ENDIAN __LITTLE_ENDIAN
|
---|
60 | # endif
|
---|
61 | # if !defined(BIG_ENDIAN) && defined(__BIG_ENDIAN)
|
---|
62 | # define BIG_ENDIAN __BIG_ENDIAN
|
---|
63 | # endif
|
---|
64 | # if !defined(PDP_ENDIAN) && defined(__PDP_ENDIAN)
|
---|
65 | # define PDP_ENDIAN __PDP_ENDIAN
|
---|
66 | # endif
|
---|
67 | # if !defined(BYTE_ORDER) && defined(__BYTE_ORDER)
|
---|
68 | # define BYTE_ORDER __BYTE_ORDER
|
---|
69 | # endif
|
---|
70 | # endif
|
---|
71 |
|
---|
72 | # ifndef BYTE_ORDER
|
---|
73 | # define LITTLE_ENDIAN 1234
|
---|
74 | # define BIG_ENDIAN 4321
|
---|
75 |
|
---|
76 | # if defined(__sun) && defined(__SVR4)
|
---|
77 | # include <sys/isa_defs.h>
|
---|
78 | # ifdef _LITTLE_ENDIAN
|
---|
79 | # define BYTE_ORDER LITTLE_ENDIAN
|
---|
80 | # endif
|
---|
81 | # ifdef _BIG_ENDIAN
|
---|
82 | # define BYTE_ORDER BIG_ENDIAN
|
---|
83 | # endif
|
---|
84 | # endif /* sun */
|
---|
85 | # endif /* BYTE_ORDER */
|
---|
86 |
|
---|
87 | # define X_BYTE_ORDER BYTE_ORDER
|
---|
88 | # define X_BIG_ENDIAN BIG_ENDIAN
|
---|
89 | # define X_LITTLE_ENDIAN LITTLE_ENDIAN
|
---|
90 |
|
---|
91 | # endif /* not in imake config */
|
---|
92 |
|
---|
93 | #endif /* _XARCH_H_ */
|
---|