diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-04-18 16:29:21 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-04-19 17:36:51 +0300 |
commit | 76a2110b473c12eb7a9c9e5d15d54309db5f8b9c (patch) | |
tree | bb66d54e37b313f2928f72e739abb25586f50532 /newlib/libc/machine | |
parent | 7a5b4524431110fde4e9336f64ade73ab2c26b6b (diff) |
BSD compatibility for <machine/endian.h>
Introduce <machine/_endian.h> to let target based customization of
<machine/endian.h> via
* _LITTLE_ENDIAN,
* _BIG_ENDIAN,
* _PDP_ENDIAN, and
* _BYTE_ORDER.
defines. Add definitions expected by FreeBSD to
<machine/endian.h> like
* _QUAD_HIGHWORD,
* _QUAD_LOWWORD,
* __bswap16(),
* __bswap32(),
* __bswap64(),
* __htonl(),
* __htons(),
* __ntohl(), and
* __ntohs().
Also, if __BSD_VISIBLE
* LITTLE_ENDIAN,
* BIG_ENDIAN,
* PDP_ENDIAN, and
* BYTE_ORDER.
Targets that define __machine_host_to_from_network_defined in
<machine/_endian.h> must provide their own implementation of
* __htonl(),
* __htons(),
* __ntohl(), and
* __ntohs(),
otherwise a default implementation is provided by <machine/endian.h>.
In case of GCC defines to builtins are used.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
Diffstat (limited to 'newlib/libc/machine')
-rw-r--r-- | newlib/libc/machine/arm/machine/_endian.h (renamed from newlib/libc/machine/arm/machine/endian.h) | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/newlib/libc/machine/arm/machine/endian.h b/newlib/libc/machine/arm/machine/_endian.h index 035cabf9a..3f50a6943 100644 --- a/newlib/libc/machine/arm/machine/endian.h +++ b/newlib/libc/machine/arm/machine/_endian.h @@ -24,17 +24,16 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef _MACHINE_ENDIAN_H -#define _MACHINE_ENDIAN_H +#ifndef __MACHINE_ENDIAN_H__ +#error "must be included via <machine/endian.h>" +#endif /* !__MACHINE_ENDIAN_H__ */ -/* Code relocated from libc/sys/arm/sys/param.h. */ -#define BIG_ENDIAN 4321 -#define LITTLE_ENDIAN 1234 +#define _LITTLE_ENDIAN 1234 +#define _BIG_ENDIAN 4321 +#define _PDP_ENDIAN 3412 #ifdef __ARMEB__ -#define BYTE_ORDER BIG_ENDIAN +#define _BYTE_ORDER _BIG_ENDIAN #else -#define BYTE_ORDER LITTLE_ENDIAN -#endif - +#define _BYTE_ORDER _LITTLE_ENDIAN #endif |