Patchwork ppc: move ADB stuff from ppc_mac.h to adb.h

login
register
mail settings
Submitter Laurent Vivier
Date Sept. 4, 2011, 6:41 p.m.
Message ID <1315161675-25808-1-git-send-email-laurent@vivier.eu>
Download mbox | patch
Permalink /patch/113294/
State New
Headers show

Comments

Laurent Vivier - Sept. 4, 2011, 6:41 p.m.
Allow to use ADB in non-ppc macintosh

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 hw/adb.c          |    2 +-
 hw/adb.h          |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 hw/cuda.c         |    1 +
 hw/ppc_mac.h      |   42 ---------------------------------
 hw/ppc_newworld.c |    1 +
 hw/ppc_oldworld.c |    1 +
 6 files changed, 71 insertions(+), 43 deletions(-)
 create mode 100644 hw/adb.h
Alexander Graf - Sept. 7, 2011, 12:05 p.m.
On 04.09.2011, at 20:41, Laurent Vivier wrote:

> Allow to use ADB in non-ppc macintosh

What exactly do you need this for? Not saying I'm opposed to the change - it looks reasonable to have adb export its own interfaces using its own header - but I'd like to understand where you're heading here. Is this for m68k?

Btw - I applied the patch nevertheless.


Alex
Laurent Vivier - Sept. 7, 2011, 12:13 p.m.
Hi,
 


Le 7 septembre 2011 à 14:05, Alexander Graf <agraf@suse.de> a écrit :

>
> On 04.09.2011, at 20:41, Laurent Vivier wrote:
>
> > Allow to use ADB in non-ppc macintosh
>
> What exactly do you need this for? Not saying I'm opposed to the change - it
> looks reasonable to have adb export its own interfaces using its own header -
> but I'd like to understand where you're heading here. Is this for m68k? 
Yes, I'm working on a quadra 800 emulation and ADB is attached to VIA.
So, it seems reasonable to move it out of ppc.
 
There will be more changes in the futur, but for the moment I'd like to merge
only obvious and generic changes.
 

> Btw - I applied the patch nevertheless.

Thank you,
 
Regards,
Laurent
Alexander Graf - Sept. 7, 2011, 12:14 p.m.
On 07.09.2011, at 14:13, Laurent Vivier wrote:

> Hi,
>  
> 
> Le 7 septembre 2011 à 14:05, Alexander Graf <agraf@suse.de> a écrit : 
> 
> > 
> > On 04.09.2011, at 20:41, Laurent Vivier wrote: 
> > 
> > > Allow to use ADB in non-ppc macintosh 
> > 
> > What exactly do you need this for? Not saying I'm opposed to the change - it looks reasonable to have adb export its own interfaces using its own header - but I'd like to understand where you're heading here. Is this for m68k?
>  
> Yes, I'm working on a quadra 800 emulation and ADB is attached to VIA.
> So, it seems reasonable to move it out of ppc.
>  
> There will be more changes in the futur, but for the moment I'd like to merge only obvious and generic changes.

I see - that makes a lot of sense. Looking forward to seeing m68k revived again! :)


Alex

Patch

diff --git a/hw/adb.c b/hw/adb.c
index 8dedbf8..aa15f55 100644
--- a/hw/adb.c
+++ b/hw/adb.c
@@ -22,7 +22,7 @@ 
  * THE SOFTWARE.
  */
 #include "hw.h"
-#include "ppc_mac.h"
+#include "adb.h"
 #include "console.h"
 
 /* debug ADB */
diff --git a/hw/adb.h b/hw/adb.h
new file mode 100644
index 0000000..b2a591c
--- /dev/null
+++ b/hw/adb.h
@@ -0,0 +1,67 @@ 
+/*
+ * QEMU ADB emulation shared definitions and prototypes
+ *
+ * Copyright (c) 2004-2007 Fabrice Bellard
+ * Copyright (c) 2007 Jocelyn Mayer
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#if !defined(__ADB_H__)
+#define __ADB_H__
+
+#define MAX_ADB_DEVICES 16
+
+#define ADB_MAX_OUT_LEN 16
+
+typedef struct ADBDevice ADBDevice;
+
+/* buf = NULL means polling */
+typedef int ADBDeviceRequest(ADBDevice *d, uint8_t *buf_out,
+                              const uint8_t *buf, int len);
+typedef int ADBDeviceReset(ADBDevice *d);
+
+struct ADBDevice {
+    struct ADBBusState *bus;
+    int devaddr;
+    int handler;
+    ADBDeviceRequest *devreq;
+    ADBDeviceReset *devreset;
+    void *opaque;
+};
+
+typedef struct ADBBusState {
+    ADBDevice devices[MAX_ADB_DEVICES];
+    int nb_devices;
+    int poll_index;
+} ADBBusState;
+
+int adb_request(ADBBusState *s, uint8_t *buf_out,
+                const uint8_t *buf, int len);
+int adb_poll(ADBBusState *s, uint8_t *buf_out);
+
+ADBDevice *adb_register_device(ADBBusState *s, int devaddr,
+                               ADBDeviceRequest *devreq,
+                               ADBDeviceReset *devreset,
+                               void *opaque);
+void adb_kbd_init(ADBBusState *bus);
+void adb_mouse_init(ADBBusState *bus);
+
+extern ADBBusState adb_bus;
+#endif /* !defined(__ADB_H__) */
diff --git a/hw/cuda.c b/hw/cuda.c
index 5c92d81..6f05975 100644
--- a/hw/cuda.c
+++ b/hw/cuda.c
@@ -24,6 +24,7 @@ 
  */
 #include "hw.h"
 #include "ppc_mac.h"
+#include "adb.h"
 #include "qemu-timer.h"
 #include "sysemu.h"
 
diff --git a/hw/ppc_mac.h b/hw/ppc_mac.h
index 7351bb6..af75e45 100644
--- a/hw/ppc_mac.h
+++ b/hw/ppc_mac.h
@@ -77,46 +77,4 @@  void macio_nvram_setup_bar(MacIONVRAMState *s, MemoryRegion *bar,
 void pmac_format_nvram_partition (MacIONVRAMState *nvr, int len);
 uint32_t macio_nvram_read (void *opaque, uint32_t addr);
 void macio_nvram_write (void *opaque, uint32_t addr, uint32_t val);
-
-/* adb.c */
-
-#define MAX_ADB_DEVICES 16
-
-#define ADB_MAX_OUT_LEN 16
-
-typedef struct ADBDevice ADBDevice;
-
-/* buf = NULL means polling */
-typedef int ADBDeviceRequest(ADBDevice *d, uint8_t *buf_out,
-                              const uint8_t *buf, int len);
-typedef int ADBDeviceReset(ADBDevice *d);
-
-struct ADBDevice {
-    struct ADBBusState *bus;
-    int devaddr;
-    int handler;
-    ADBDeviceRequest *devreq;
-    ADBDeviceReset *devreset;
-    void *opaque;
-};
-
-typedef struct ADBBusState {
-    ADBDevice devices[MAX_ADB_DEVICES];
-    int nb_devices;
-    int poll_index;
-} ADBBusState;
-
-int adb_request(ADBBusState *s, uint8_t *buf_out,
-                const uint8_t *buf, int len);
-int adb_poll(ADBBusState *s, uint8_t *buf_out);
-
-ADBDevice *adb_register_device(ADBBusState *s, int devaddr,
-                               ADBDeviceRequest *devreq,
-                               ADBDeviceReset *devreset,
-                               void *opaque);
-void adb_kbd_init(ADBBusState *bus);
-void adb_mouse_init(ADBBusState *bus);
-
-extern ADBBusState adb_bus;
-
 #endif /* !defined(__PPC_MAC_H__) */
diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c
index fbd443d..5fb9359 100644
--- a/hw/ppc_newworld.c
+++ b/hw/ppc_newworld.c
@@ -49,6 +49,7 @@ 
 #include "hw.h"
 #include "ppc.h"
 #include "ppc_mac.h"
+#include "adb.h"
 #include "mac_dbdma.h"
 #include "nvram.h"
 #include "pc.h"
diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c
index 235d2ef..3857075 100644
--- a/hw/ppc_oldworld.c
+++ b/hw/ppc_oldworld.c
@@ -26,6 +26,7 @@ 
 #include "hw.h"
 #include "ppc.h"
 #include "ppc_mac.h"
+#include "adb.h"
 #include "mac_dbdma.h"
 #include "nvram.h"
 #include "pc.h"