io port API change


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@664 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/hw/pckbd.c b/hw/pckbd.c
index 8c0d3a7..21524c8 100644
--- a/hw/pckbd.c
+++ b/hw/pckbd.c
@@ -189,7 +189,7 @@
 
 static void kbd_queue(KBDState *s, int b, int aux)
 {
-    KBDQueue *q = &kbd_state.queues[aux];
+    KBDQueue *q = &s->queues[aux];
 
 #if defined(DEBUG_MOUSE) || defined(DEBUG_KBD)
     if (aux)
@@ -214,9 +214,9 @@
     kbd_queue(s, keycode, 0);
 }
 
-static uint32_t kbd_read_status(CPUState *env, uint32_t addr)
+static uint32_t kbd_read_status(void *opaque, uint32_t addr)
 {
-    KBDState *s = &kbd_state;
+    KBDState *s = opaque;
     int val;
     val = s->status;
 #if defined(DEBUG_KBD)
@@ -225,9 +225,9 @@
     return val;
 }
 
-static void kbd_write_command(CPUState *env, uint32_t addr, uint32_t val)
+static void kbd_write_command(void *opaque, uint32_t addr, uint32_t val)
 {
-    KBDState *s = &kbd_state;
+    KBDState *s = opaque;
 
 #ifdef DEBUG_KBD
     printf("kbd: write cmd=0x%02x\n", val);
@@ -285,10 +285,10 @@
         break;
 #ifdef TARGET_I386
     case KBD_CCMD_ENABLE_A20:
-        cpu_x86_set_a20(env, 1);
+        cpu_x86_set_a20(cpu_single_env, 1);
         break;
     case KBD_CCMD_DISABLE_A20:
-        cpu_x86_set_a20(env, 0);
+        cpu_x86_set_a20(cpu_single_env, 0);
         break;
 #endif
     case KBD_CCMD_RESET:
@@ -304,9 +304,9 @@
     }
 }
 
-static uint32_t kbd_read_data(CPUState *env, uint32_t addr)
+static uint32_t kbd_read_data(void *opaque, uint32_t addr)
 {
-    KBDState *s = &kbd_state;
+    KBDState *s = opaque;
     KBDQueue *q;
     int val, index;
     
@@ -605,9 +605,9 @@
     }
 }
 
-void kbd_write_data(CPUState *env, uint32_t addr, uint32_t val)
+void kbd_write_data(void *opaque, uint32_t addr, uint32_t val)
 {
-    KBDState *s = &kbd_state;
+    KBDState *s = opaque;
 
 #ifdef DEBUG_KBD
     printf("kbd: write data=0x%02x\n", val);
@@ -629,7 +629,7 @@
         break;
     case KBD_CCMD_WRITE_OUTPORT:
 #ifdef TARGET_I386
-        cpu_x86_set_a20(env, (val >> 1) & 1);
+        cpu_x86_set_a20(cpu_single_env, (val >> 1) & 1);
 #endif
         if (!(val & 1)) {
             reset_requested = 1;
@@ -664,9 +664,11 @@
 
 void kbd_init(void)
 {
-    kbd_reset(&kbd_state);
-    register_ioport_read(0x60, 1, kbd_read_data, 1);
-    register_ioport_write(0x60, 1, kbd_write_data, 1);
-    register_ioport_read(0x64, 1, kbd_read_status, 1);
-    register_ioport_write(0x64, 1, kbd_write_command, 1);
+    KBDState *s = &kbd_state;
+    
+    kbd_reset(s);
+    register_ioport_read(0x60, 1, 1, kbd_read_data, s);
+    register_ioport_write(0x60, 1, 1, kbd_write_data, s);
+    register_ioport_read(0x64, 1, 1, kbd_read_status, s);
+    register_ioport_write(0x64, 1, 1, kbd_write_command, s);
 }