lkml.org 
[lkml]   [2007]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] posix-cpu-clocks: cleanup clock macros
These macros were a little confused looking, so I cleaned then up
a bit. I think this way it's a little clearer what's what ..

Signed-Off-By: Daniel Walker <dwalker@mvista.com>

---
include/linux/posix-timers.h | 38 +++++++++++++++++++++++++++-----------
1 file changed, 27 insertions(+), 11 deletions(-)

Index: linux-2.6.21/include/linux/posix-timers.h
===================================================================
--- linux-2.6.21.orig/include/linux/posix-timers.h
+++ linux-2.6.21/include/linux/posix-timers.h
@@ -17,22 +17,38 @@ struct cpu_timer_list {
int firing;
};

-#define CPUCLOCK_PID(clock) ((pid_t) ~((clock) >> 3))
-#define CPUCLOCK_PERTHREAD(clock) \
- (((clock) & (clockid_t) CPUCLOCK_PERTHREAD_MASK) != 0)
-#define CPUCLOCK_PID_MASK 7
-#define CPUCLOCK_PERTHREAD_MASK 4
+
+/*
+ * CPU Clock types
+ */
+#define CPUCLOCK_PROF 0x0
+#define CPUCLOCK_VIRT 0x1
+#define CPUCLOCK_SCHED 0x2
+#define CPUCLOCK_MAX 0x3
+
+#define CPUCLOCK_CLOCK_MASK (CPUCLOCK_SCHED | CPUCLOCK_VIRT | CPUCLOCK_PROF)
+
#define CPUCLOCK_WHICH(clock) ((clock) & (clockid_t) CPUCLOCK_CLOCK_MASK)
-#define CPUCLOCK_CLOCK_MASK 3
-#define CPUCLOCK_PROF 0
-#define CPUCLOCK_VIRT 1
-#define CPUCLOCK_SCHED 2
-#define CPUCLOCK_MAX 3
+
+/*
+ * Per thread flag
+ */
+#define CPUCLOCK_PERTHREAD_FLAG 0x4
+#define CPUCLOCK_PERTHREAD(clock) \
+ (((clock) & (clockid_t) CPUCLOCK_PERTHREAD_FLAG) != 0)
+
+/*
+ * Bits used for the PID within the clockid
+ */
+#define CPUCLOCK_PID_MASK 0x7
+#define CPUCLOCK_PID(clock) ((pid_t) ~((clock) >> 3))
+

#define MAKE_PROCESS_CPUCLOCK(pid, clock) \
((~(clockid_t) (pid) << 3) | (clockid_t) (clock))
#define MAKE_THREAD_CPUCLOCK(tid, clock) \
- MAKE_PROCESS_CPUCLOCK((tid), (clock) | CPUCLOCK_PERTHREAD_MASK)
+ MAKE_PROCESS_CPUCLOCK((tid), (clock) | CPUCLOCK_PERTHREAD_FLAG)
+

/* POSIX.1b interval timer structure. */
struct k_itimer {
--
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-04-26 20:11    [W:0.024 / U:0.352 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site