aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2009-05-20 12:23:24 -0700
committerBrian Behlendorf <[email protected]>2009-05-20 12:23:24 -0700
commit3731931529df2bff63ca3d62e387d4e602de7cb2 (patch)
tree140e94cd307ff8c439e2c257762965bb90f6445c
parentfe4573928fc73590373a074ef9b068c6286d9a26 (diff)
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.
-rw-r--r--include/sys/isa_defs.h17
-rw-r--r--include/sys/sysmacros.h12
-rw-r--r--module/splat/splat-kobj.c8
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: