summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include/runq.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/powerpc/include/runq.h')
-rw-r--r--sys/powerpc/include/runq.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/powerpc/include/runq.h b/sys/powerpc/include/runq.h
index e906fa1..b179e31 100644
--- a/sys/powerpc/include/runq.h
+++ b/sys/powerpc/include/runq.h
@@ -29,18 +29,27 @@
#ifndef _MACHINE_RUNQ_H_
#define _MACHINE_RUNQ_H_
+#ifdef __powerpc64__
+#define RQB_LEN (1UL) /* Number of priority status words. */
+#define RQB_L2BPW (6UL) /* Log2(sizeof(rqb_word_t) * NBBY)). */
+#else
#define RQB_LEN (2) /* Number of priority status words. */
#define RQB_L2BPW (5) /* Log2(sizeof(rqb_word_t) * NBBY)). */
-#define RQB_BPW (1<<RQB_L2BPW) /* Bits in an rqb_word_t. */
+#endif
+#define RQB_BPW (1UL<<RQB_L2BPW) /* Bits in an rqb_word_t. */
-#define RQB_BIT(pri) (1 << ((pri) & (RQB_BPW - 1)))
+#define RQB_BIT(pri) (1UL << ((pri) & (RQB_BPW - 1)))
#define RQB_WORD(pri) ((pri) >> RQB_L2BPW)
-#define RQB_FFS(word) (ffs(word) - 1)
+#define RQB_FFS(word) (ffsl(word) - 1)
/*
* Type of run queue status word.
*/
+#ifdef __powerpc64__
+typedef u_int64_t rqb_word_t;
+#else
typedef u_int32_t rqb_word_t;
+#endif
#endif
OpenPOWER on IntegriCloud