lockdep: generate the state bit definitions

Generate the state bit definitions from the lockdep_states.h file.

Also, move LOCK_USED to last, so that the

 USED_IN
 USED_IN_READ
 ENABLED
 ENABLED_READ

states are nicely bit aligned -- we're going to use that property

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Peter Zijlstra 2009-01-22 14:38:38 +01:00 committed by Ingo Molnar
parent 9851673bc3
commit d7b1b02134

View file

@ -10,43 +10,36 @@
* Lock-class usage-state bits: * Lock-class usage-state bits:
*/ */
enum lock_usage_bit { enum lock_usage_bit {
LOCK_USED = 0, #define LOCKDEP_STATE(__STATE) \
LOCK_USED_IN_HARDIRQ, LOCK_USED_IN_##__STATE, \
LOCK_USED_IN_SOFTIRQ, LOCK_USED_IN_##__STATE##_READ, \
LOCK_USED_IN_RECLAIM_FS, LOCK_ENABLED_##__STATE, \
LOCK_ENABLED_SOFTIRQ, LOCK_ENABLED_##__STATE##_READ,
LOCK_ENABLED_HARDIRQ, #include "lockdep_states.h"
LOCK_ENABLED_RECLAIM_FS, #undef LOCKDEP_STATE
LOCK_USED_IN_HARDIRQ_READ, LOCK_USED,
LOCK_USED_IN_SOFTIRQ_READ,
LOCK_USED_IN_RECLAIM_FS_READ,
LOCK_ENABLED_SOFTIRQ_READ,
LOCK_ENABLED_HARDIRQ_READ,
LOCK_ENABLED_RECLAIM_FS_READ,
LOCK_USAGE_STATES LOCK_USAGE_STATES
}; };
/* /*
* Usage-state bitmasks: * Usage-state bitmasks:
*/ */
#define LOCKF_USED (1 << LOCK_USED) #define __LOCKF(__STATE) LOCKF_##__STATE = (1 << LOCK_##__STATE),
#define LOCKF_USED_IN_HARDIRQ (1 << LOCK_USED_IN_HARDIRQ)
#define LOCKF_USED_IN_SOFTIRQ (1 << LOCK_USED_IN_SOFTIRQ) enum {
#define LOCKF_USED_IN_RECLAIM_FS (1 << LOCK_USED_IN_RECLAIM_FS) #define LOCKDEP_STATE(__STATE) \
#define LOCKF_ENABLED_HARDIRQ (1 << LOCK_ENABLED_HARDIRQ) __LOCKF(USED_IN_##__STATE) \
#define LOCKF_ENABLED_SOFTIRQ (1 << LOCK_ENABLED_SOFTIRQ) __LOCKF(USED_IN_##__STATE##_READ) \
#define LOCKF_ENABLED_RECLAIM_FS (1 << LOCK_ENABLED_RECLAIM_FS) __LOCKF(ENABLED_##__STATE) \
__LOCKF(ENABLED_##__STATE##_READ)
#include "lockdep_states.h"
#undef LOCKDEP_STATE
__LOCKF(USED)
};
#define LOCKF_ENABLED_IRQ (LOCKF_ENABLED_HARDIRQ | LOCKF_ENABLED_SOFTIRQ) #define LOCKF_ENABLED_IRQ (LOCKF_ENABLED_HARDIRQ | LOCKF_ENABLED_SOFTIRQ)
#define LOCKF_USED_IN_IRQ (LOCKF_USED_IN_HARDIRQ | LOCKF_USED_IN_SOFTIRQ) #define LOCKF_USED_IN_IRQ (LOCKF_USED_IN_HARDIRQ | LOCKF_USED_IN_SOFTIRQ)
#define LOCKF_USED_IN_HARDIRQ_READ (1 << LOCK_USED_IN_HARDIRQ_READ)
#define LOCKF_USED_IN_SOFTIRQ_READ (1 << LOCK_USED_IN_SOFTIRQ_READ)
#define LOCKF_USED_IN_RECLAIM_FS_READ (1 << LOCK_USED_IN_RECLAIM_FS_READ)
#define LOCKF_ENABLED_HARDIRQ_READ (1 << LOCK_ENABLED_HARDIRQ_READ)
#define LOCKF_ENABLED_SOFTIRQ_READ (1 << LOCK_ENABLED_SOFTIRQ_READ)
#define LOCKF_ENABLED_RECLAIM_FS_READ (1 << LOCK_ENABLED_RECLAIM_FS_READ)
#define LOCKF_ENABLED_IRQ_READ \ #define LOCKF_ENABLED_IRQ_READ \
(LOCKF_ENABLED_HARDIRQ_READ | LOCKF_ENABLED_SOFTIRQ_READ) (LOCKF_ENABLED_HARDIRQ_READ | LOCKF_ENABLED_SOFTIRQ_READ)
#define LOCKF_USED_IN_IRQ_READ \ #define LOCKF_USED_IN_IRQ_READ \