Index: arch/ia32/include/asm.h
===================================================================
--- arch/ia32/include/asm.h	(revision a5556b4c962a9b456fc78bea47df3b031c8b8da2)
+++ arch/ia32/include/asm.h	(revision 714675b9ef13c3a84a1dc1696cf30c328bef6e62)
@@ -42,7 +42,4 @@
 extern __u16 inw(int port);
 extern __u32 inl(int port);
-
-extern void outw(int port, __u16 w);
-extern void outl(int port, __u32 l);
 
 extern void enable_l_apic_in_msr(void);
@@ -93,4 +90,23 @@
 static inline void outb(__u16 port, __u8 val) { __asm__ volatile ("outb %b0, %w1\n" : : "a" (val), "d" (port) ); }
 
+/** Word to port
+ *
+ * Output word to port
+ *
+ * @param port Port to write to
+ * @param val Value to write
+ */
+static inline void outw(__u16 port, __u16 val) { __asm__ volatile ("outw %w0, %w1\n" : : "a" (val), "d" (port) ); }
+
+
+
+/** Double word to port
+ *
+ * Output double word to port
+ *
+ * @param port Port to write to
+ * @param val Value to write
+ */
+static inline void outl(__u16 port, __u32 val) { __asm__ volatile ("outl %l0, %w1\n" : : "a" (val), "d" (port) ); }
 
 /** Set priority level low
Index: arch/ia32/src/asm.S
===================================================================
--- arch/ia32/src/asm.S	(revision a5556b4c962a9b456fc78bea47df3b031c8b8da2)
+++ arch/ia32/src/asm.S	(revision 714675b9ef13c3a84a1dc1696cf30c328bef6e62)
@@ -41,6 +41,4 @@
 .global inw
 .global inl
-.global outw
-.global outl
 .global memcpy
 .global memsetb
@@ -190,34 +188,4 @@
 	movl 4(%esp),%edx
 	inl %dx,%eax
-	ret
-
-
-## I/O output (word)
-#
-# Send a word to I/O port.
-#
-outw:
-	push %eax
-
-	movl 8(%esp),%edx
-	movl 12(%esp),%eax
-	outw %ax,%dx
-
-	pop %eax
-	ret
-
-
-## I/O output (dword)
-#
-# Send a dword to I/O port.
-#
-outl:
-	push %eax
-
-	movl 8(%esp),%edx
-	movl 12(%esp),%eax
-	outl %eax,%dx
-
-	pop %eax
 	ret
 
