Skip to content

Commit

Permalink
macio: move macio related structures and defines into separate macio.…
Browse files Browse the repository at this point in the history
…h file

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
  • Loading branch information
mcayland authored and dgibson committed Mar 6, 2018
1 parent c296460 commit e1218e4
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 45 deletions.
43 changes: 1 addition & 42 deletions hw/misc/macio/macio.c
Expand Up @@ -30,48 +30,7 @@
#include "hw/pci/pci.h"
#include "hw/ppc/mac_dbdma.h"
#include "hw/char/escc.h"

#define TYPE_MACIO "macio"
#define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)

typedef struct MacIOState
{
/*< private >*/
PCIDevice parent;
/*< public >*/

MemoryRegion bar;
CUDAState cuda;
DBDMAState dbdma;
ESCCState escc;
MemoryRegion *pic_mem;
uint64_t frequency;
} MacIOState;

#define OLDWORLD_MACIO(obj) \
OBJECT_CHECK(OldWorldMacIOState, (obj), TYPE_OLDWORLD_MACIO)

typedef struct OldWorldMacIOState {
/*< private >*/
MacIOState parent_obj;
/*< public >*/

qemu_irq irqs[7];

MacIONVRAMState nvram;
MACIOIDEState ide[2];
} OldWorldMacIOState;

#define NEWWORLD_MACIO(obj) \
OBJECT_CHECK(NewWorldMacIOState, (obj), TYPE_NEWWORLD_MACIO)

typedef struct NewWorldMacIOState {
/*< private >*/
MacIOState parent_obj;
/*< public >*/
qemu_irq irqs[7];
MACIOIDEState ide[2];
} NewWorldMacIOState;
#include "hw/misc/macio/macio.h"

/*
* The mac-io has two interfaces to the ESCC. One is called "escc-legacy",
Expand Down
3 changes: 0 additions & 3 deletions hw/ppc/mac.h
Expand Up @@ -47,9 +47,6 @@


/* MacIO */
#define TYPE_OLDWORLD_MACIO "macio-oldworld"
#define TYPE_NEWWORLD_MACIO "macio-newworld"

#define TYPE_MACIO_IDE "macio-ide"
#define MACIO_IDE(obj) OBJECT_CHECK(MACIOIDEState, (obj), TYPE_MACIO_IDE)

Expand Down
1 change: 1 addition & 0 deletions hw/ppc/mac_newworld.c
Expand Up @@ -60,6 +60,7 @@
#include "hw/boards.h"
#include "hw/nvram/fw_cfg.h"
#include "hw/char/escc.h"
#include "hw/misc/macio/macio.h"
#include "hw/ppc/openpic.h"
#include "hw/ide.h"
#include "hw/loader.h"
Expand Down
1 change: 1 addition & 0 deletions hw/ppc/mac_oldworld.c
Expand Up @@ -37,6 +37,7 @@
#include "hw/boards.h"
#include "hw/nvram/fw_cfg.h"
#include "hw/char/escc.h"
#include "hw/misc/macio/macio.h"
#include "hw/ide.h"
#include "hw/loader.h"
#include "elf.h"
Expand Down
75 changes: 75 additions & 0 deletions include/hw/misc/macio/macio.h
@@ -0,0 +1,75 @@
/*
* PowerMac MacIO device emulation
*
* Copyright (c) 2005-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.
*/

#ifndef MACIO_H
#define MACIO_H

#include "hw/misc/macio/cuda.h"
#include "hw/ppc/mac_dbdma.h"

#define TYPE_MACIO "macio"
#define MACIO(obj) OBJECT_CHECK(MacIOState, (obj), TYPE_MACIO)

typedef struct MacIOState {
/*< private >*/
PCIDevice parent;
/*< public >*/

MemoryRegion bar;
CUDAState cuda;
DBDMAState dbdma;
ESCCState escc;
MemoryRegion *pic_mem;
uint64_t frequency;
} MacIOState;

#define TYPE_OLDWORLD_MACIO "macio-oldworld"
#define OLDWORLD_MACIO(obj) \
OBJECT_CHECK(OldWorldMacIOState, (obj), TYPE_OLDWORLD_MACIO)

typedef struct OldWorldMacIOState {
/*< private >*/
MacIOState parent_obj;
/*< public >*/

qemu_irq irqs[7];

MacIONVRAMState nvram;
MACIOIDEState ide[2];
} OldWorldMacIOState;

#define TYPE_NEWWORLD_MACIO "macio-newworld"
#define NEWWORLD_MACIO(obj) \
OBJECT_CHECK(NewWorldMacIOState, (obj), TYPE_NEWWORLD_MACIO)

typedef struct NewWorldMacIOState {
/*< private >*/
MacIOState parent_obj;
/*< public >*/
qemu_irq irqs[7];
MACIOIDEState ide[2];
} NewWorldMacIOState;

#endif /* MACIO_H */

0 comments on commit e1218e4

Please sign in to comment.