Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3584 sourcerer 1
/*
2
 * This file is part of LibParserUtils.
3
 * Licensed under the MIT License,
4
 *                http://www.opensource.org/licenses/mit-license.php
5
 * Copyright 2009 John-Mark Bell 
6
 */
7
 
8
#ifndef parserutils_endian_h_
9
#define parserutils_endian_h_
10
 
11
static inline bool endian_host_is_le(void)
12
{
13
	static uint32_t magic = 0x10000002;
14
 
15
	return (((uint8_t *) &magic)[0] == 0x02);
16
}
17
 
18
static inline uint32_t endian_swap(uint32_t val)
19
{
20
	return ((val & 0xff000000) >> 24) | ((val & 0x00ff0000) >> 8) |
21
		((val & 0x0000ff00) << 8) | ((val & 0x000000ff) << 24);
22
}
23
 
24
static inline uint32_t endian_host_to_big(uint32_t host)
25
{
26
	if (endian_host_is_le())
27
		return endian_swap(host);
28
 
29
	return host;
30
}
31
 
32
static inline uint32_t endian_big_to_host(uint32_t big)
33
{
34
	if (endian_host_is_le())
35
		return endian_swap(big);
36
 
37
	return big;
38
}
39
 
40
#endif