-#define PROCESSOR_RUNNING 1 /* Normal execution */
-#define PROCESSOR_IDLE 2 /* Idle */
-#define PROCESSOR_DISPATCHING 3 /* Dispatching (idle -> running) */
-#define PROCESSOR_SHUTDOWN 4 /* Going off-line */
-#define PROCESSOR_START 5 /* Being started */
+#define PROCESSOR_SHUTDOWN 1 /* Going off-line */
+#define PROCESSOR_START 2 /* Being started */
+/* 3 Formerly Inactive (unavailable) */
+#define PROCESSOR_IDLE 4 /* Idle (available) */
+#define PROCESSOR_DISPATCHING 5 /* Dispatching (idle -> active) */
+#define PROCESSOR_RUNNING 6 /* Normal execution */
+
+extern processor_t current_processor(void);
+
+/* Lock macros, always acquired and released with interrupts disabled (splsched()) */
+
+#if __SMP__
+#define pset_lock(p) simple_lock(&(p)->sched_lock)
+#define pset_unlock(p) simple_unlock(&(p)->sched_lock)
+#define pset_lock_init(p) simple_lock_init(&(p)->sched_lock, 0)
+
+#define rt_lock_lock(p) simple_lock(&SCHED(rt_runq)(p)->rt_lock)
+#define rt_lock_unlock(p) simple_unlock(&SCHED(rt_runq)(p)->rt_lock)
+#define rt_lock_init(p) simple_lock_init(&SCHED(rt_runq)(p)->rt_lock, 0)
+#else
+#define pset_lock(p) do { (void)p; } while(0)
+#define pset_unlock(p) do { (void)p; } while(0)
+#define pset_lock_init(p) do { (void)p; } while(0)
+
+#define rt_lock_lock(p) do { (void)p; } while(0)
+#define rt_lock_unlock(p) do { (void)p; } while(0)
+#define rt_lock_init(p) do { (void)p; } while(0)
+#endif
+
+extern void processor_bootstrap(void);
+
+extern void processor_init(
+ processor_t processor,
+ int cpu_id,
+ processor_set_t processor_set);
+
+extern void processor_set_primary(
+ processor_t processor,
+ processor_t primary);