Index: kernel/generic/include/proc/task.h
===================================================================
--- kernel/generic/include/proc/task.h	(revision 8e8c1a5a8422819c5ec8b1e633c4d302de9e5dd9)
+++ kernel/generic/include/proc/task.h	(revision 0b3a78fec9fcd0f2d1ba2ad32efec95c4ad2cfdf)
@@ -36,4 +36,5 @@
 #define KERN_TASK_H_
 
+#include <cpu.h>
 #include <synch/spinlock.h>
 #include <synch/mutex.h>
@@ -134,49 +135,4 @@
 } task_t;
 
-/** CPU structure.
- *
- * There is one structure like this for every processor.
- */
-typedef struct {
-	SPINLOCK_DECLARE(lock);
-
-	tlb_shootdown_msg_t tlb_messages[TLB_MESSAGE_QUEUE_LEN];
-	count_t tlb_messages_count;
-	
-	context_t saved_context;
-
-	atomic_t nrdy;
-	runq_t rq[RQ_COUNT];
-	volatile count_t needs_relink;
-
-	SPINLOCK_DECLARE(timeoutlock);
-	link_t timeout_active_head;
-
-	count_t missed_clock_ticks;	/**< When system clock loses a tick, it is recorded here
-					     so that clock() can react. This variable is
-					     CPU-local and can be only accessed when interrupts
-					     are disabled. */
-
-	/**
-	 * Processor ID assigned by kernel.
-	 */
-	unsigned int id;
-	
-	int active;
-	int tlb_active;
-
-	uint16_t frequency_mhz;
-	uint32_t delay_loop_const;
-
-	cpu_arch_t arch;
-
-	struct thread *fpu_owner;
-	
-	/**
-	 * Stack used by scheduler when there is no running thread.
-	 */
-	uint8_t *stack;
-} cpu_t;
-
 typedef void (* timeout_handler_t)(void *arg);
 
