From 3731931529df2bff63ca3d62e387d4e602de7cb2 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Wed, 20 May 2009 12:23:24 -0700 Subject: Powerpc Fixes (part 1): - Enable builds for powerpc ISA type. - Add DIV_ROUND_UP and roundup macros if unavailable. - Cast 64-bit values for %lld format string to (long long) to quiet compile warning. --- include/sys/isa_defs.h | 17 ++++++++++++++++- include/sys/sysmacros.h | 12 +++++++++--- module/splat/splat-kobj.c | 8 +++++--- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/include/sys/isa_defs.h b/include/sys/isa_defs.h index 57a6d366e..3b8fffe1e 100644 --- a/include/sys/isa_defs.h +++ b/include/sys/isa_defs.h @@ -39,7 +39,22 @@ extern "C" { #define _ILP32 #endif -#else /* Currently only x86_64 and i386 arches supported */ +/* powerpc (ppc64) arch specific defines */ +#elif defined(__powerpc) || defined(__powerpc__) + +#if !defined(__powerpc) +#define __powerpc +#endif + +#if !defined(__powerpc__) +#define __powerpc__ +#endif + +#if !defined(_LP64) +#define _LP64 +#endif + +#else /* Currently only x86_64, i386, and powerpc arches supported */ #error "Unsupported ISA type" #endif diff --git a/include/sys/sysmacros.h b/include/sys/sysmacros.h index 923cc22e7..67afbfeb0 100644 --- a/include/sys/sysmacros.h +++ b/include/sys/sysmacros.h @@ -149,13 +149,19 @@ extern uint32_t zone_get_hostid(void *zone); /* common macros */ #ifndef MIN -#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif #ifndef MAX -#define MAX(a, b) ((a) < (b) ? (b) : (a)) +#define MAX(a, b) ((a) < (b) ? (b) : (a)) #endif #ifndef ABS -#define ABS(a) ((a) < 0 ? -(a) : (a)) +#define ABS(a) ((a) < 0 ? -(a) : (a)) +#endif +#ifndef DIV_ROUND_UP +#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) +#endif +#ifndef roundup +#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) #endif /* diff --git a/module/splat/splat-kobj.c b/module/splat/splat-kobj.c index 2137ab02a..c646cce1b 100644 --- a/module/splat/splat-kobj.c +++ b/module/splat/splat-kobj.c @@ -85,7 +85,8 @@ splat_kobj_test2(struct file *file, void *arg) if (!buf) { rc = -ENOMEM; splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Failed to alloc " - "%lld bytes for tmp buffer (%d)\n", size, rc); + "%lld bytes for tmp buffer (%d)\n", + (long long)size, rc); goto out; } @@ -104,7 +105,8 @@ splat_kobj_test2(struct file *file, void *arg) rc = -EFBIG; splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Stat'ed size " "(%lld) does not match number of bytes read " - "(%lld)\n", size, (uint64_t)strlen(buf)); + "(%lld)\n", (long long)size, + (long long)strlen(buf)); goto out2; } @@ -112,7 +114,7 @@ splat_kobj_test2(struct file *file, void *arg) splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "\n%s\n", buf); splat_vprint(file, SPLAT_KOBJ_TEST2_NAME, "Successfully stat'ed " "and read expected number of bytes (%lld) from test " - "file: %s\n", size, SPLAT_KOBJ_TEST_FILE); + "file: %s\n", (long long)size, SPLAT_KOBJ_TEST_FILE); out2: kfree(buf); out: -- cgit v1.2.3