Index: kernel/arch/ia32/include/smp/apic.h
===================================================================
--- kernel/arch/ia32/include/smp/apic.h	(revision df4ed852a2d1b242f9bdce0a873009a2cb77cec7)
+++ kernel/arch/ia32/include/smp/apic.h	(revision b3f8fb771f871e7f2bb35ce9339717639e8f86d6)
@@ -108,5 +108,5 @@
 #define ICRlo		(0x300/sizeof(uint32_t))
 #define ICRhi		(0x310/sizeof(uint32_t))
-struct icr {
+typedef struct {
 	union {
 		uint32_t lo;
@@ -131,6 +131,5 @@
 		} __attribute__ ((packed));
 	};
-} __attribute__ ((packed));
-typedef struct icr icr_t;
+} __attribute__ ((packed)) icr_t;
 
 /* End Of Interrupt. */
@@ -139,5 +138,5 @@
 /** Error Status Register. */
 #define ESR		(0x280/sizeof(uint32_t))
-union esr {
+typedef union {
 	uint32_t value;
 	uint8_t err_bitmap;
@@ -153,10 +152,9 @@
 		unsigned : 24;
 	} __attribute__ ((packed));
-};
-typedef union esr esr_t;
+} esr_t;
 
 /* Task Priority Register */
 #define TPR		(0x080/sizeof(uint32_t))
-union tpr {
+typedef union {
 	uint32_t value;
 	struct {
@@ -164,10 +162,9 @@
 		unsigned pri : 4;		/**< Task Priority. */
 	} __attribute__ ((packed));
-};
-typedef union tpr tpr_t;
+} tpr_t;
 
 /** Spurious-Interrupt Vector Register. */
 #define SVR		(0x0f0/sizeof(uint32_t))
-union svr {
+typedef union {
 	uint32_t value;
 	struct {
@@ -177,10 +174,9 @@
 		unsigned : 22;			/**< Reserved. */
 	} __attribute__ ((packed));
-};
-typedef union svr svr_t;
+} svr_t;
 
 /** Time Divide Configuration Register. */
 #define TDCR		(0x3e0/sizeof(uint32_t))
-union tdcr {
+typedef union {
 	uint32_t value;
 	struct {
@@ -188,6 +184,5 @@
 		unsigned : 28;			/**< Reserved. */
 	} __attribute__ ((packed));
-};
-typedef union tdcr tdcr_t;
+} tdcr_t;
 
 /* Initial Count Register for Timer */
@@ -199,5 +194,5 @@
 /** LVT Timer register. */
 #define LVT_Tm		(0x320/sizeof(uint32_t))
-union lvt_tm {
+typedef union {
 	uint32_t value;
 	struct {
@@ -210,11 +205,10 @@
 		unsigned : 14;		/**< Reserved. */
 	} __attribute__ ((packed));
-};
-typedef union lvt_tm lvt_tm_t;
+} lvt_tm_t;
 
 /** LVT LINT registers. */
 #define LVT_LINT0	(0x350/sizeof(uint32_t))
 #define LVT_LINT1	(0x360/sizeof(uint32_t))
-union lvt_lint {
+typedef union {
 	uint32_t value;
 	struct {
@@ -229,10 +223,9 @@
 		unsigned : 15;			/**< Reserved. */
 	} __attribute__ ((packed));
-};
-typedef union lvt_lint lvt_lint_t;
+} lvt_lint_t;
 
 /** LVT Error register. */
 #define LVT_Err		(0x370/sizeof(uint32_t))
-union lvt_error {
+typedef union {
 	uint32_t value;
 	struct {
@@ -244,10 +237,9 @@
 		unsigned : 15;		/**< Reserved. */
 	} __attribute__ ((packed));
-};
-typedef union lvt_error lvt_error_t;
+} lvt_error_t;
 
 /** Local APIC ID Register. */
 #define L_APIC_ID	(0x020/sizeof(uint32_t))
-union l_apic_id {
+typedef union {
 	uint32_t value;
 	struct {
@@ -255,6 +247,5 @@
 		uint8_t apic_id;		/**< Local APIC ID. */
 	} __attribute__ ((packed));
-};
-typedef union l_apic_id l_apic_id_t;
+} l_apic_id_t;
 
 /** Local APIC Version Register */
@@ -267,5 +258,5 @@
 /** Logical Destination Register. */
 #define  LDR		(0x0d0/sizeof(uint32_t))
-union ldr {
+typedef union {
 	uint32_t value;
 	struct {
@@ -273,10 +264,9 @@
 		uint8_t id;		/**< Logical APIC ID. */
 	} __attribute__ ((packed));
-};
-typedef union ldr ldr_t;
+} ldr_t;
 
 /** Destination Format Register. */
 #define DFR		(0x0e0/sizeof(uint32_t))
-union dfr {
+typedef union {
 	uint32_t value;
 	struct {
@@ -284,6 +274,5 @@
 		unsigned model : 4;	/**< Model. */
 	} __attribute__ ((packed));
-};
-typedef union dfr dfr_t;
+} dfr_t;
 
 /* IO APIC */
@@ -297,5 +286,5 @@
 
 /** I/O Register Select Register. */
-union io_regsel {
+typedef union {
 	uint32_t value;
 	struct {
@@ -303,9 +292,8 @@
 		unsigned : 24;		/**< Reserved. */
 	} __attribute__ ((packed));
-};
-typedef union io_regsel io_regsel_t;
+} io_regsel_t;
 
 /** I/O Redirection Register. */
-struct io_redirection_reg {
+typedef struct io_redirection_reg {
 	union {
 		uint32_t lo;
@@ -330,10 +318,9 @@
 	};
 	
-} __attribute__ ((packed));
-typedef struct io_redirection_reg io_redirection_reg_t;
+} __attribute__ ((packed)) io_redirection_reg_t;
 
 
 /** IO APIC Identification Register. */
-union io_apic_id {
+typedef union {
 	uint32_t value;
 	struct {
@@ -342,6 +329,5 @@
 		unsigned : 4;		/**< Reserved. */
 	} __attribute__ ((packed));
-};
-typedef union io_apic_id io_apic_id_t;
+} io_apic_id_t;
 
 extern volatile uint32_t *l_apic;
Index: kernel/arch/ia32/include/smp/mps.h
===================================================================
--- kernel/arch/ia32/include/smp/mps.h	(revision df4ed852a2d1b242f9bdce0a873009a2cb77cec7)
+++ kernel/arch/ia32/include/smp/mps.h	(revision b3f8fb771f871e7f2bb35ce9339717639e8f86d6)
@@ -37,5 +37,4 @@
 
 #include <arch/types.h>
-#include <typedefs.h>
 #include <synch/waitq.h>
 #include <config.h>
Index: kernel/arch/ia32/include/smp/smp.h
===================================================================
--- kernel/arch/ia32/include/smp/smp.h	(revision df4ed852a2d1b242f9bdce0a873009a2cb77cec7)
+++ kernel/arch/ia32/include/smp/smp.h	(revision b3f8fb771f871e7f2bb35ce9339717639e8f86d6)
@@ -37,5 +37,4 @@
 
 #include <arch/types.h>
-#include <typedefs.h>
 
 /** SMP config opertaions interface. */
