tools: firmware-utils: mksercommfw build on Darwin
asm/byteorder.h & hence __cpu_to_be32() doesn't exist on Darwin Shamelessly copy some byte swap functions from oseama.c Acked-by: Koen Vandeputte <koen.vandeputte@ncentric.com> Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
This commit is contained in:
parent
9a3c805584
commit
1a73b2d089
1 changed files with 21 additions and 2 deletions
|
@ -3,7 +3,26 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <asm/byteorder.h>
|
#include <byteswap.h>
|
||||||
|
#include <endian.h>
|
||||||
|
|
||||||
|
#if !defined(__BYTE_ORDER)
|
||||||
|
#error "Unknown byte order"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __BYTE_ORDER == __BIG_ENDIAN
|
||||||
|
#define cpu_to_be32(x) (x)
|
||||||
|
#define be32_to_cpu(x) (x)
|
||||||
|
#define cpu_to_be16(x) (x)
|
||||||
|
#define be16_to_cpu(x) (x)
|
||||||
|
#elif __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
|
#define cpu_to_be32(x) bswap_32(x)
|
||||||
|
#define be32_to_cpu(x) bswap_32(x)
|
||||||
|
#define cpu_to_be16(x) bswap_16(x)
|
||||||
|
#define be16_to_cpu(x) bswap_16(x)
|
||||||
|
#else
|
||||||
|
#error "Unsupported endianness"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* #define DEBUG 1 */
|
/* #define DEBUG 1 */
|
||||||
|
|
||||||
|
@ -212,7 +231,7 @@ int main(int argc, char* argv[]) {
|
||||||
image.file_name = argv[1];
|
image.file_name = argv[1];
|
||||||
kernel_offset = (u_int32_t) strtol(argv[2], NULL, 0);
|
kernel_offset = (u_int32_t) strtol(argv[2], NULL, 0);
|
||||||
swVer = (u_int32_t) strtol(argv[5], NULL, 0);
|
swVer = (u_int32_t) strtol(argv[5], NULL, 0);
|
||||||
swVer = __cpu_to_be32(swVer);
|
swVer = cpu_to_be32(swVer);
|
||||||
|
|
||||||
/* Check if files actually exist */
|
/* Check if files actually exist */
|
||||||
if (access(sysupgrade.file_name, (F_OK | R_OK))) {
|
if (access(sysupgrade.file_name, (F_OK | R_OK))) {
|
||||||
|
|
Loading…
Reference in a new issue