aboutsummaryrefslogtreecommitdiff
path: root/hw/net
diff options
context:
space:
mode:
Diffstat (limited to 'hw/net')
-rw-r--r--hw/net/can/can_kvaser_pci.c10
-rw-r--r--hw/net/can/can_mioe3680_pci.c10
-rw-r--r--hw/net/can/can_pcm3680_pci.c10
-rw-r--r--hw/net/dp8393x.c9
-rw-r--r--hw/net/e1000.c19
-rw-r--r--hw/net/e1000e.c9
-rw-r--r--hw/net/etraxfs_eth.c11
-rw-r--r--hw/net/fsl_etsec/etsec.h10
-rw-r--r--hw/net/lan9118.c9
-rw-r--r--hw/net/milkymist-minimac2.c7
-rw-r--r--hw/net/mipsnet.c9
-rw-r--r--hw/net/ne2000-isa.c9
-rw-r--r--hw/net/opencores_eth.c9
-rw-r--r--hw/net/pcnet-pci.c10
-rw-r--r--hw/net/rocker/rocker.h5
-rw-r--r--hw/net/rtl8139.c10
-rw-r--r--hw/net/smc91c111.c9
-rw-r--r--hw/net/spapr_llan.c10
-rw-r--r--hw/net/stellaris_enet.c10
-rw-r--r--hw/net/sungem.c9
-rw-r--r--hw/net/sunhme.c9
-rw-r--r--hw/net/tulip.h4
-rw-r--r--hw/net/vmxnet3.c12
-rw-r--r--hw/net/vmxnet3_defs.h9
-rw-r--r--hw/net/xgmac.c9
-rw-r--r--hw/net/xilinx_axienet.c23
-rw-r--r--hw/net/xilinx_ethlite.c5
27 files changed, 159 insertions, 106 deletions
diff --git a/hw/net/can/can_kvaser_pci.c b/hw/net/can/can_kvaser_pci.c
index 4b94137..168b3a6 100644
--- a/hw/net/can/can_kvaser_pci.c
+++ b/hw/net/can/can_kvaser_pci.c
@@ -43,11 +43,13 @@
#include "net/can_emu.h"
#include "can_sja1000.h"
+#include "qom/object.h"
#define TYPE_CAN_PCI_DEV "kvaser_pci"
-#define KVASER_PCI_DEV(obj) \
- OBJECT_CHECK(KvaserPCIState, (obj), TYPE_CAN_PCI_DEV)
+typedef struct KvaserPCIState KvaserPCIState;
+DECLARE_INSTANCE_CHECKER(KvaserPCIState, KVASER_PCI_DEV,
+ TYPE_CAN_PCI_DEV)
#ifndef KVASER_PCI_VENDOR_ID1
#define KVASER_PCI_VENDOR_ID1 0x10e8 /* the PCI device and vendor IDs */
@@ -78,7 +80,7 @@
#define KVASER_PCI_XILINX_VERSION_NUMBER 13
-typedef struct KvaserPCIState {
+struct KvaserPCIState {
/*< private >*/
PCIDevice dev;
/*< public >*/
@@ -93,7 +95,7 @@ typedef struct KvaserPCIState {
uint32_t s5920_irqstate;
CanBusState *canbus;
-} KvaserPCIState;
+};
static void kvaser_pci_irq_handler(void *opaque, int irq_num, int level)
{
diff --git a/hw/net/can/can_mioe3680_pci.c b/hw/net/can/can_mioe3680_pci.c
index 695e762..7a79e26 100644
--- a/hw/net/can/can_mioe3680_pci.c
+++ b/hw/net/can/can_mioe3680_pci.c
@@ -39,11 +39,13 @@
#include "net/can_emu.h"
#include "can_sja1000.h"
+#include "qom/object.h"
#define TYPE_CAN_PCI_DEV "mioe3680_pci"
-#define MIOe3680_PCI_DEV(obj) \
- OBJECT_CHECK(Mioe3680PCIState, (obj), TYPE_CAN_PCI_DEV)
+typedef struct Mioe3680PCIState Mioe3680PCIState;
+DECLARE_INSTANCE_CHECKER(Mioe3680PCIState, MIOe3680_PCI_DEV,
+ TYPE_CAN_PCI_DEV)
/* the PCI device and vendor IDs */
#ifndef MIOe3680_PCI_VENDOR_ID1
@@ -59,7 +61,7 @@
#define MIOe3680_PCI_BYTES_PER_SJA 0x80
-typedef struct Mioe3680PCIState {
+struct Mioe3680PCIState {
/*< private >*/
PCIDevice dev;
/*< public >*/
@@ -70,7 +72,7 @@ typedef struct Mioe3680PCIState {
char *model; /* The model that support, only SJA1000 now. */
CanBusState *canbus[MIOe3680_PCI_SJA_COUNT];
-} Mioe3680PCIState;
+};
static void mioe3680_pci_reset(DeviceState *dev)
{
diff --git a/hw/net/can/can_pcm3680_pci.c b/hw/net/can/can_pcm3680_pci.c
index 4218e63..8ef4e74 100644
--- a/hw/net/can/can_pcm3680_pci.c
+++ b/hw/net/can/can_pcm3680_pci.c
@@ -39,11 +39,13 @@
#include "net/can_emu.h"
#include "can_sja1000.h"
+#include "qom/object.h"
#define TYPE_CAN_PCI_DEV "pcm3680_pci"
-#define PCM3680i_PCI_DEV(obj) \
- OBJECT_CHECK(Pcm3680iPCIState, (obj), TYPE_CAN_PCI_DEV)
+typedef struct Pcm3680iPCIState Pcm3680iPCIState;
+DECLARE_INSTANCE_CHECKER(Pcm3680iPCIState, PCM3680i_PCI_DEV,
+ TYPE_CAN_PCI_DEV)
/* the PCI device and vendor IDs */
#ifndef PCM3680i_PCI_VENDOR_ID1
@@ -59,7 +61,7 @@
#define PCM3680i_PCI_BYTES_PER_SJA 0x20
-typedef struct Pcm3680iPCIState {
+struct Pcm3680iPCIState {
/*< private >*/
PCIDevice dev;
/*< public >*/
@@ -70,7 +72,7 @@ typedef struct Pcm3680iPCIState {
char *model; /* The model that support, only SJA1000 now. */
CanBusState *canbus[PCM3680i_PCI_SJA_COUNT];
-} Pcm3680iPCIState;
+};
static void pcm3680i_pci_reset(DeviceState *dev)
{
diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c
index c54db0d..56b96e9 100644
--- a/hw/net/dp8393x.c
+++ b/hw/net/dp8393x.c
@@ -27,6 +27,7 @@
#include "qemu/module.h"
#include "qemu/timer.h"
#include <zlib.h>
+#include "qom/object.h"
//#define DEBUG_SONIC
@@ -150,9 +151,11 @@ do { printf("sonic ERROR: %s: " fmt, __func__ , ## __VA_ARGS__); } while (0)
#define SONIC_DESC_ADDR 0xFFFE
#define TYPE_DP8393X "dp8393x"
-#define DP8393X(obj) OBJECT_CHECK(dp8393xState, (obj), TYPE_DP8393X)
+typedef struct dp8393xState dp8393xState;
+DECLARE_INSTANCE_CHECKER(dp8393xState, DP8393X,
+ TYPE_DP8393X)
-typedef struct dp8393xState {
+struct dp8393xState {
SysBusDevice parent_obj;
/* Hardware */
@@ -182,7 +185,7 @@ typedef struct dp8393xState {
/* Memory access */
MemoryRegion *dma_mr;
AddressSpace as;
-} dp8393xState;
+};
/* Accessor functions for values which are formed by
* concatenating two 16 bit device registers. By putting these
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index c4d896a..83347cb 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -39,6 +39,7 @@
#include "e1000x_common.h"
#include "trace.h"
+#include "qom/object.h"
static const uint8_t bcast[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
@@ -76,7 +77,7 @@ static int debugflags = DBGBIT(TXERR) | DBGBIT(GENERAL);
* Others never tested
*/
-typedef struct E1000State_st {
+struct E1000State_st {
/*< private >*/
PCIDevice parent_obj;
/*< public >*/
@@ -137,24 +138,22 @@ typedef struct E1000State_st {
bool received_tx_tso;
bool use_tso_for_migration;
e1000x_txd_props mig_props;
-} E1000State;
+};
+typedef struct E1000State_st E1000State;
#define chkflag(x) (s->compat_flags & E1000_FLAG_##x)
-typedef struct E1000BaseClass {
+struct E1000BaseClass {
PCIDeviceClass parent_class;
uint16_t phy_id2;
-} E1000BaseClass;
+};
+typedef struct E1000BaseClass E1000BaseClass;
#define TYPE_E1000_BASE "e1000-base"
-#define E1000(obj) \
- OBJECT_CHECK(E1000State, (obj), TYPE_E1000_BASE)
+DECLARE_OBJ_CHECKERS(E1000State, E1000BaseClass,
+ E1000, TYPE_E1000_BASE)
-#define E1000_CLASS(klass) \
- OBJECT_CLASS_CHECK(E1000BaseClass, (klass), TYPE_E1000_BASE)
-#define E1000_GET_CLASS(obj) \
- OBJECT_GET_CLASS(E1000BaseClass, (obj), TYPE_E1000_BASE)
static void
e1000_link_up(E1000State *s)
diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c
index fda3451..938d44f 100644
--- a/hw/net/e1000e.c
+++ b/hw/net/e1000e.c
@@ -53,11 +53,14 @@
#include "trace.h"
#include "qapi/error.h"
+#include "qom/object.h"
#define TYPE_E1000E "e1000e"
-#define E1000E(obj) OBJECT_CHECK(E1000EState, (obj), TYPE_E1000E)
+typedef struct E1000EState E1000EState;
+DECLARE_INSTANCE_CHECKER(E1000EState, E1000E,
+ TYPE_E1000E)
-typedef struct E1000EState {
+struct E1000EState {
PCIDevice parent_obj;
NICState *nic;
NICConf conf;
@@ -79,7 +82,7 @@ typedef struct E1000EState {
E1000ECore core;
-} E1000EState;
+};
#define E1000E_MMIO_IDX 0
#define E1000E_FLASH_IDX 1
diff --git a/hw/net/etraxfs_eth.c b/hw/net/etraxfs_eth.c
index 3408cea..36d898a 100644
--- a/hw/net/etraxfs_eth.c
+++ b/hw/net/etraxfs_eth.c
@@ -30,6 +30,7 @@
#include "qemu/error-report.h"
#include "qemu/module.h"
#include "trace.h"
+#include "qom/object.h"
#define D(x)
@@ -323,11 +324,11 @@ static void mdio_cycle(struct qemu_mdio *bus)
#define FS_ETH_MAX_REGS 0x17
#define TYPE_ETRAX_FS_ETH "etraxfs-eth"
-#define ETRAX_FS_ETH(obj) \
- OBJECT_CHECK(ETRAXFSEthState, (obj), TYPE_ETRAX_FS_ETH)
+typedef struct ETRAXFSEthState ETRAXFSEthState;
+DECLARE_INSTANCE_CHECKER(ETRAXFSEthState, ETRAX_FS_ETH,
+ TYPE_ETRAX_FS_ETH)
-typedef struct ETRAXFSEthState
-{
+struct ETRAXFSEthState {
SysBusDevice parent_obj;
MemoryRegion mmio;
@@ -348,7 +349,7 @@ typedef struct ETRAXFSEthState
/* PHY. */
struct qemu_phy phy;
-} ETRAXFSEthState;
+};
static void eth_validate_duplex(ETRAXFSEthState *eth)
{
diff --git a/hw/net/fsl_etsec/etsec.h b/hw/net/fsl_etsec/etsec.h
index 7951c3a..0c929d9 100644
--- a/hw/net/fsl_etsec/etsec.h
+++ b/hw/net/fsl_etsec/etsec.h
@@ -28,6 +28,7 @@
#include "hw/sysbus.h"
#include "net/net.h"
#include "hw/ptimer.h"
+#include "qom/object.h"
/* Buffer Descriptors */
@@ -104,7 +105,7 @@ typedef struct eTSEC_Register {
uint32_t value;
} eTSEC_Register;
-typedef struct eTSEC {
+struct eTSEC {
SysBusDevice busdev;
MemoryRegion io_area;
@@ -145,11 +146,12 @@ typedef struct eTSEC {
/* Whether we should flush the rx queue when buffer becomes available. */
bool need_flush;
-} eTSEC;
+};
+typedef struct eTSEC eTSEC;
#define TYPE_ETSEC_COMMON "eTSEC"
-#define ETSEC_COMMON(obj) \
- OBJECT_CHECK(eTSEC, (obj), TYPE_ETSEC_COMMON)
+DECLARE_INSTANCE_CHECKER(eTSEC, ETSEC_COMMON,
+ TYPE_ETSEC_COMMON)
#define eTSEC_TRANSMIT 1
#define eTSEC_RECEIVE 2
diff --git a/hw/net/lan9118.c b/hw/net/lan9118.c
index e35f00f..57a59ac 100644
--- a/hw/net/lan9118.c
+++ b/hw/net/lan9118.c
@@ -25,6 +25,7 @@
#include "qemu/module.h"
/* For crc32 */
#include <zlib.h>
+#include "qom/object.h"
//#define DEBUG_LAN9118
@@ -180,9 +181,11 @@ static const VMStateDescription vmstate_lan9118_packet = {
}
};
-#define LAN9118(obj) OBJECT_CHECK(lan9118_state, (obj), TYPE_LAN9118)
+typedef struct lan9118_state lan9118_state;
+DECLARE_INSTANCE_CHECKER(lan9118_state, LAN9118,
+ TYPE_LAN9118)
-typedef struct {
+struct lan9118_state {
SysBusDevice parent_obj;
NICState *nic;
@@ -258,7 +261,7 @@ typedef struct {
uint32_t read_long;
uint32_t mode_16bit;
-} lan9118_state;
+};
static const VMStateDescription vmstate_lan9118 = {
.name = "lan9118",
diff --git a/hw/net/milkymist-minimac2.c b/hw/net/milkymist-minimac2.c
index 1ba0175..41a8543 100644
--- a/hw/net/milkymist-minimac2.c
+++ b/hw/net/milkymist-minimac2.c
@@ -24,6 +24,7 @@
#include "qemu/osdep.h"
#include "qapi/error.h"
+#include "qom/object.h"
#include "cpu.h" /* FIXME: why does this use TARGET_PAGE_ALIGN? */
#include "hw/irq.h"
#include "hw/qdev-properties.h"
@@ -98,8 +99,9 @@ struct MilkymistMinimac2MdioState {
typedef struct MilkymistMinimac2MdioState MilkymistMinimac2MdioState;
#define TYPE_MILKYMIST_MINIMAC2 "milkymist-minimac2"
-#define MILKYMIST_MINIMAC2(obj) \
- OBJECT_CHECK(MilkymistMinimac2State, (obj), TYPE_MILKYMIST_MINIMAC2)
+typedef struct MilkymistMinimac2State MilkymistMinimac2State;
+DECLARE_INSTANCE_CHECKER(MilkymistMinimac2State, MILKYMIST_MINIMAC2,
+ TYPE_MILKYMIST_MINIMAC2)
struct MilkymistMinimac2State {
SysBusDevice parent_obj;
@@ -123,7 +125,6 @@ struct MilkymistMinimac2State {
uint8_t *rx1_buf;
uint8_t *tx_buf;
};
-typedef struct MilkymistMinimac2State MilkymistMinimac2State;
static const uint8_t preamble_sfd[] = {
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0xd5
diff --git a/hw/net/mipsnet.c b/hw/net/mipsnet.c
index 0c578c4..61dbd57 100644
--- a/hw/net/mipsnet.c
+++ b/hw/net/mipsnet.c
@@ -6,6 +6,7 @@
#include "trace.h"
#include "hw/sysbus.h"
#include "migration/vmstate.h"
+#include "qom/object.h"
/* MIPSnet register offsets */
@@ -24,9 +25,11 @@
#define MAX_ETH_FRAME_SIZE 1514
#define TYPE_MIPS_NET "mipsnet"
-#define MIPS_NET(obj) OBJECT_CHECK(MIPSnetState, (obj), TYPE_MIPS_NET)
+typedef struct MIPSnetState MIPSnetState;
+DECLARE_INSTANCE_CHECKER(MIPSnetState, MIPS_NET,
+ TYPE_MIPS_NET)
-typedef struct MIPSnetState {
+struct MIPSnetState {
SysBusDevice parent_obj;
uint32_t busy;
@@ -41,7 +44,7 @@ typedef struct MIPSnetState {
qemu_irq irq;
NICState *nic;
NICConf conf;
-} MIPSnetState;
+};
static void mipsnet_reset(MIPSnetState *s)
{
diff --git a/hw/net/ne2000-isa.c b/hw/net/ne2000-isa.c
index a878056..688a0cc 100644
--- a/hw/net/ne2000-isa.c
+++ b/hw/net/ne2000-isa.c
@@ -31,16 +31,19 @@
#include "qapi/error.h"
#include "qapi/visitor.h"
#include "qemu/module.h"
+#include "qom/object.h"
-#define ISA_NE2000(obj) OBJECT_CHECK(ISANE2000State, (obj), TYPE_ISA_NE2000)
+typedef struct ISANE2000State ISANE2000State;
+DECLARE_INSTANCE_CHECKER(ISANE2000State, ISA_NE2000,
+ TYPE_ISA_NE2000)
-typedef struct ISANE2000State {
+struct ISANE2000State {
ISADevice parent_obj;
uint32_t iobase;
uint32_t isairq;
NE2000State ne2000;
-} ISANE2000State;
+};
static NetClientInfo net_ne2000_isa_info = {
.type = NET_CLIENT_DRIVER_NIC,
diff --git a/hw/net/opencores_eth.c b/hw/net/opencores_eth.c
index 2ba0dc8..5cd204c 100644
--- a/hw/net/opencores_eth.c
+++ b/hw/net/opencores_eth.c
@@ -40,6 +40,7 @@
#include "qemu/module.h"
#include "net/eth.h"
#include "trace.h"
+#include "qom/object.h"
/* RECSMALL is not used because it breaks tap networking in linux:
* incoming ARP responses are too short
@@ -271,9 +272,11 @@ typedef struct desc {
#define DEFAULT_PHY 1
#define TYPE_OPEN_ETH "open_eth"
-#define OPEN_ETH(obj) OBJECT_CHECK(OpenEthState, (obj), TYPE_OPEN_ETH)
+typedef struct OpenEthState OpenEthState;
+DECLARE_INSTANCE_CHECKER(OpenEthState, OPEN_ETH,
+ TYPE_OPEN_ETH)
-typedef struct OpenEthState {
+struct OpenEthState {
SysBusDevice parent_obj;
NICState *nic;
@@ -287,7 +290,7 @@ typedef struct OpenEthState {
unsigned tx_desc;
unsigned rx_desc;
desc desc[128];
-} OpenEthState;
+};
static desc *rx_desc(OpenEthState *s)
{
diff --git a/hw/net/pcnet-pci.c b/hw/net/pcnet-pci.c
index 49d3e42..449970b 100644
--- a/hw/net/pcnet-pci.c
+++ b/hw/net/pcnet-pci.c
@@ -40,6 +40,7 @@
#include "trace.h"
#include "pcnet.h"
+#include "qom/object.h"
//#define PCNET_DEBUG
//#define PCNET_DEBUG_IO
@@ -51,17 +52,18 @@
#define TYPE_PCI_PCNET "pcnet"
-#define PCI_PCNET(obj) \
- OBJECT_CHECK(PCIPCNetState, (obj), TYPE_PCI_PCNET)
+typedef struct PCIPCNetState PCIPCNetState;
+DECLARE_INSTANCE_CHECKER(PCIPCNetState, PCI_PCNET,
+ TYPE_PCI_PCNET)
-typedef struct {
+struct PCIPCNetState {
/*< private >*/
PCIDevice parent_obj;
/*< public >*/
PCNetState state;
MemoryRegion io_bar;
-} PCIPCNetState;
+};
static void pcnet_aprom_writeb(void *opaque, uint32_t addr, uint32_t val)
{
diff --git a/hw/net/rocker/rocker.h b/hw/net/rocker/rocker.h
index e4c22db..941c932 100644
--- a/hw/net/rocker/rocker.h
+++ b/hw/net/rocker/rocker.h
@@ -20,6 +20,7 @@
#define ROCKER_H
#include "qemu/sockets.h"
+#include "qom/object.h"
#if defined(DEBUG_ROCKER)
# define DPRINTF(fmt, ...) \
@@ -72,8 +73,8 @@ typedef struct desc_ring DescRing;
#define TYPE_ROCKER "rocker"
typedef struct rocker Rocker;
-#define ROCKER(obj) \
- OBJECT_CHECK(Rocker, (obj), TYPE_ROCKER)
+DECLARE_INSTANCE_CHECKER(Rocker, ROCKER,
+ TYPE_ROCKER)
Rocker *rocker_find(const char *name);
uint32_t rocker_fp_ports(Rocker *r);
diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
index ab93d78..9246388 100644
--- a/hw/net/rtl8139.c
+++ b/hw/net/rtl8139.c
@@ -62,6 +62,7 @@
#include "net/net.h"
#include "net/eth.h"
#include "sysemu/sysemu.h"
+#include "qom/object.h"
/* debug RTL8139 card */
//#define DEBUG_RTL8139 1
@@ -93,8 +94,9 @@ static inline GCC_FMT_ATTR(1, 2) int DPRINTF(const char *fmt, ...)
#define TYPE_RTL8139 "rtl8139"
-#define RTL8139(obj) \
- OBJECT_CHECK(RTL8139State, (obj), TYPE_RTL8139)
+typedef struct RTL8139State RTL8139State;
+DECLARE_INSTANCE_CHECKER(RTL8139State, RTL8139,
+ TYPE_RTL8139)
/* Symbolic offsets to registers. */
enum RTL8139_registers {
@@ -431,7 +433,7 @@ typedef struct RTL8139TallyCounters
/* Clears all tally counters */
static void RTL8139TallyCounters_clear(RTL8139TallyCounters* counters);
-typedef struct RTL8139State {
+struct RTL8139State {
/*< private >*/
PCIDevice parent_obj;
/*< public >*/
@@ -513,7 +515,7 @@ typedef struct RTL8139State {
/* Support migration to/from old versions */
int rtl8139_mmio_io_addr_dummy;
-} RTL8139State;
+};
/* Writes tally counters to memory via DMA */
static void RTL8139TallyCounters_dma_write(RTL8139State *s, dma_addr_t tc_addr);
diff --git a/hw/net/smc91c111.c b/hw/net/smc91c111.c
index a347b6a..9fad904 100644
--- a/hw/net/smc91c111.c
+++ b/hw/net/smc91c111.c
@@ -19,14 +19,17 @@
#include "qemu/module.h"
/* For crc32 */
#include <zlib.h>
+#include "qom/object.h"
/* Number of 2k memory pages available. */
#define NUM_PACKETS 4
#define TYPE_SMC91C111 "smc91c111"
-#define SMC91C111(obj) OBJECT_CHECK(smc91c111_state, (obj), TYPE_SMC91C111)
+typedef struct smc91c111_state smc91c111_state;
+DECLARE_INSTANCE_CHECKER(smc91c111_state, SMC91C111,
+ TYPE_SMC91C111)
-typedef struct {
+struct smc91c111_state {
SysBusDevice parent_obj;
NICState *nic;
@@ -55,7 +58,7 @@ typedef struct {
uint8_t int_level;
uint8_t int_mask;
MemoryRegion mmio;
-} smc91c111_state;
+};
static const VMStateDescription vmstate_smc91c111 = {
.name = "smc91c111",
diff --git a/hw/net/spapr_llan.c b/hw/net/spapr_llan.c
index 4cd02dd..d34cb29 100644
--- a/hw/net/spapr_llan.c
+++ b/hw/net/spapr_llan.c
@@ -38,6 +38,7 @@
#include "trace.h"
#include <libfdt.h>
+#include "qom/object.h"
#define ETH_ALEN 6
#define MAX_PACKET_SIZE 65536
@@ -84,8 +85,9 @@ typedef uint64_t vlan_bd_t;
#define VLAN_MAX_BUFS (VLAN_RX_BDS_LEN / 8)
#define TYPE_VIO_SPAPR_VLAN_DEVICE "spapr-vlan"
-#define VIO_SPAPR_VLAN_DEVICE(obj) \
- OBJECT_CHECK(SpaprVioVlan, (obj), TYPE_VIO_SPAPR_VLAN_DEVICE)
+typedef struct SpaprVioVlan SpaprVioVlan;
+DECLARE_INSTANCE_CHECKER(SpaprVioVlan, VIO_SPAPR_VLAN_DEVICE,
+ TYPE_VIO_SPAPR_VLAN_DEVICE)
#define RX_POOL_MAX_BDS 4096
#define RX_MAX_POOLS 5
@@ -96,7 +98,7 @@ typedef struct {
vlan_bd_t bds[RX_POOL_MAX_BDS];
} RxBufPool;
-typedef struct SpaprVioVlan {
+struct SpaprVioVlan {
SpaprVioDevice sdev;
NICConf nicconf;
NICState *nic;
@@ -108,7 +110,7 @@ typedef struct SpaprVioVlan {
QEMUTimer *rxp_timer;
uint32_t compat_flags; /* Compatibility flags for migration */
RxBufPool *rx_pool[RX_MAX_POOLS]; /* Receive buffer descriptor pools */
-} SpaprVioVlan;
+};
static bool spapr_vlan_can_receive(NetClientState *nc)
{
diff --git a/hw/net/stellaris_enet.c b/hw/net/stellaris_enet.c
index cb6e250..9f13afa 100644
--- a/hw/net/stellaris_enet.c
+++ b/hw/net/stellaris_enet.c
@@ -16,6 +16,7 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include <zlib.h>
+#include "qom/object.h"
//#define DEBUG_STELLARIS_ENET 1
@@ -50,15 +51,16 @@ do { fprintf(stderr, "stellaris_enet: error: " fmt , ## __VA_ARGS__);} while (0)
#define SE_TCTL_DUPLEX 0x08
#define TYPE_STELLARIS_ENET "stellaris_enet"
-#define STELLARIS_ENET(obj) \
- OBJECT_CHECK(stellaris_enet_state, (obj), TYPE_STELLARIS_ENET)
+typedef struct stellaris_enet_state stellaris_enet_state;
+DECLARE_INSTANCE_CHECKER(stellaris_enet_state, STELLARIS_ENET,
+ TYPE_STELLARIS_ENET)
typedef struct {
uint8_t data[2048];
uint32_t len;
} StellarisEnetRxFrame;
-typedef struct {
+struct stellaris_enet_state {
SysBusDevice parent_obj;
uint32_t ris;
@@ -82,7 +84,7 @@ typedef struct {
NICConf conf;
qemu_irq irq;
MemoryRegion mmio;
-} stellaris_enet_state;
+};
static const VMStateDescription vmstate_rx_frame = {
.name = "stellaris_enet/rx_frame",
diff --git a/hw/net/sungem.c b/hw/net/sungem.c
index e4b7b57..9175383 100644
--- a/hw/net/sungem.c
+++ b/hw/net/sungem.c
@@ -19,10 +19,13 @@
#include "hw/net/mii.h"
#include "sysemu/sysemu.h"
#include "trace.h"
+#include "qom/object.h"
#define TYPE_SUNGEM "sungem"
-#define SUNGEM(obj) OBJECT_CHECK(SunGEMState, (obj), TYPE_SUNGEM)
+typedef struct SunGEMState SunGEMState;
+DECLARE_INSTANCE_CHECKER(SunGEMState, SUNGEM,
+ TYPE_SUNGEM)
#define MAX_PACKET_SIZE 9016
@@ -192,7 +195,7 @@ struct gem_rxd {
#define RXDCTRL_ALTMAC 0x2000000000000000ULL /* Matched ALT MAC */
-typedef struct {
+struct SunGEMState {
PCIDevice pdev;
MemoryRegion sungem;
@@ -221,7 +224,7 @@ typedef struct {
uint8_t tx_data[MAX_PACKET_SIZE];
uint32_t tx_size;
uint64_t tx_first_ctl;
-} SunGEMState;
+};
static void sungem_eval_irq(SunGEMState *s)
diff --git a/hw/net/sunhme.c b/hw/net/sunhme.c
index bc48d46..7364ba1 100644
--- a/hw/net/sunhme.c
+++ b/hw/net/sunhme.c
@@ -33,6 +33,7 @@
#include "net/eth.h"
#include "sysemu/sysemu.h"
#include "trace.h"
+#include "qom/object.h"
#define HME_REG_SIZE 0x8000
@@ -129,7 +130,9 @@
#define MII_COMMAND_WRITE 0x1
#define TYPE_SUNHME "sunhme"
-#define SUNHME(obj) OBJECT_CHECK(SunHMEState, (obj), TYPE_SUNHME)
+typedef struct SunHMEState SunHMEState;
+DECLARE_INSTANCE_CHECKER(SunHMEState, SUNHME,
+ TYPE_SUNHME)
/* Maximum size of buffer */
#define HME_FIFO_SIZE 0x800
@@ -153,7 +156,7 @@
#define HME_MII_REGS_SIZE 0x20
-typedef struct SunHMEState {
+struct SunHMEState {
/*< private >*/
PCIDevice parent_obj;
@@ -174,7 +177,7 @@ typedef struct SunHMEState {
uint32_t mifregs[HME_MIF_REG_SIZE >> 2];
uint16_t miiregs[HME_MII_REGS_SIZE];
-} SunHMEState;
+};
static Property sunhme_properties[] = {
DEFINE_NIC_PROPERTIES(SunHMEState, conf),
diff --git a/hw/net/tulip.h b/hw/net/tulip.h
index c3fcd4d..87e3ab7 100644
--- a/hw/net/tulip.h
+++ b/hw/net/tulip.h
@@ -3,10 +3,12 @@
#include "qemu/units.h"
#include "net/net.h"
+#include "qom/object.h"
#define TYPE_TULIP "tulip"
typedef struct TULIPState TULIPState;
-#define TULIP(obj) OBJECT_CHECK(TULIPState, (obj), TYPE_TULIP)
+DECLARE_INSTANCE_CHECKER(TULIPState, TULIP,
+ TYPE_TULIP)
#define CSR(_x) ((_x) << 3)
diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
index 7a6ca4e..eff299f 100644
--- a/hw/net/vmxnet3.c
+++ b/hw/net/vmxnet3.c
@@ -35,6 +35,7 @@
#include "vmware_utils.h"
#include "net_tx_pkt.h"
#include "net_rx_pkt.h"
+#include "qom/object.h"
#define PCI_DEVICE_ID_VMWARE_VMXNET3_REVISION 0x1
#define VMXNET3_MSIX_BAR_SIZE 0x2000
@@ -128,15 +129,14 @@
#define VMXNET_FLAG_IS_SET(field, flag) (((field) & (flag)) == (flag))
-typedef struct VMXNET3Class {
+struct VMXNET3Class {
PCIDeviceClass parent_class;
DeviceRealize parent_dc_realize;
-} VMXNET3Class;
+};
+typedef struct VMXNET3Class VMXNET3Class;
-#define VMXNET3_DEVICE_CLASS(klass) \
- OBJECT_CLASS_CHECK(VMXNET3Class, (klass), TYPE_VMXNET3)
-#define VMXNET3_DEVICE_GET_CLASS(obj) \
- OBJECT_GET_CLASS(VMXNET3Class, (obj), TYPE_VMXNET3)
+DECLARE_CLASS_CHECKERS(VMXNET3Class, VMXNET3_DEVICE,
+ TYPE_VMXNET3)
static inline void vmxnet3_ring_init(PCIDevice *d,
Vmxnet3Ring *ring,
diff --git a/hw/net/vmxnet3_defs.h b/hw/net/vmxnet3_defs.h
index 65780c5..7144050 100644
--- a/hw/net/vmxnet3_defs.h
+++ b/hw/net/vmxnet3_defs.h
@@ -19,9 +19,12 @@
#include "net/net.h"
#include "hw/net/vmxnet3.h"
+#include "qom/object.h"
#define TYPE_VMXNET3 "vmxnet3"
-#define VMXNET3(obj) OBJECT_CHECK(VMXNET3State, (obj), TYPE_VMXNET3)
+typedef struct VMXNET3State VMXNET3State;
+DECLARE_INSTANCE_CHECKER(VMXNET3State, VMXNET3,
+ TYPE_VMXNET3)
/* Device state and helper functions */
#define VMXNET3_RX_RINGS_PER_QUEUE (2)
@@ -58,7 +61,7 @@ typedef struct {
bool is_asserted;
} Vmxnet3IntState;
-typedef struct {
+struct VMXNET3State {
PCIDevice parent_obj;
NICState *nic;
NICConf conf;
@@ -132,6 +135,6 @@ typedef struct {
/* Compatibility flags for migration */
uint32_t compat_flags;
-} VMXNET3State;
+};
#endif
diff --git a/hw/net/xgmac.c b/hw/net/xgmac.c
index 5bf1b61..a066550 100644
--- a/hw/net/xgmac.c
+++ b/hw/net/xgmac.c
@@ -32,6 +32,7 @@
#include "qemu/log.h"
#include "qemu/module.h"
#include "net/net.h"
+#include "qom/object.h"
#ifdef DEBUG_XGMAC
#define DEBUGF_BRK(message, args...) do { \
@@ -139,9 +140,11 @@ typedef struct RxTxStats {
} RxTxStats;
#define TYPE_XGMAC "xgmac"
-#define XGMAC(obj) OBJECT_CHECK(XgmacState, (obj), TYPE_XGMAC)
+typedef struct XgmacState XgmacState;
+DECLARE_INSTANCE_CHECKER(XgmacState, XGMAC,
+ TYPE_XGMAC)
-typedef struct XgmacState {
+struct XgmacState {
SysBusDevice parent_obj;
MemoryRegion iomem;
@@ -153,7 +156,7 @@ typedef struct XgmacState {
struct RxTxStats stats;
uint32_t regs[R_MAX];
-} XgmacState;
+};
static const VMStateDescription vmstate_rxtx_stats = {
.name = "xgmac_stats",
diff --git a/hw/net/xilinx_axienet.c b/hw/net/xilinx_axienet.c
index 2e89f23..4e13786 100644
--- a/hw/net/xilinx_axienet.c
+++ b/hw/net/xilinx_axienet.c
@@ -35,6 +35,7 @@
#include "hw/irq.h"
#include "hw/qdev-properties.h"
#include "hw/stream.h"
+#include "qom/object.h"
#define DPHY(x)
@@ -42,16 +43,16 @@
#define TYPE_XILINX_AXI_ENET_DATA_STREAM "xilinx-axienet-data-stream"
#define TYPE_XILINX_AXI_ENET_CONTROL_STREAM "xilinx-axienet-control-stream"
-#define XILINX_AXI_ENET(obj) \
- OBJECT_CHECK(XilinxAXIEnet, (obj), TYPE_XILINX_AXI_ENET)
+typedef struct XilinxAXIEnet XilinxAXIEnet;
+DECLARE_INSTANCE_CHECKER(XilinxAXIEnet, XILINX_AXI_ENET,
+ TYPE_XILINX_AXI_ENET)
-#define XILINX_AXI_ENET_DATA_STREAM(obj) \
- OBJECT_CHECK(XilinxAXIEnetStreamSlave, (obj),\
- TYPE_XILINX_AXI_ENET_DATA_STREAM)
+typedef struct XilinxAXIEnetStreamSlave XilinxAXIEnetStreamSlave;
+DECLARE_INSTANCE_CHECKER(XilinxAXIEnetStreamSlave, XILINX_AXI_ENET_DATA_STREAM,
+ TYPE_XILINX_AXI_ENET_DATA_STREAM)
-#define XILINX_AXI_ENET_CONTROL_STREAM(obj) \
- OBJECT_CHECK(XilinxAXIEnetStreamSlave, (obj),\
- TYPE_XILINX_AXI_ENET_CONTROL_STREAM)
+DECLARE_INSTANCE_CHECKER(XilinxAXIEnetStreamSlave, XILINX_AXI_ENET_CONTROL_STREAM,
+ TYPE_XILINX_AXI_ENET_CONTROL_STREAM)
/* Advertisement control register. */
#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */
@@ -310,8 +311,6 @@ struct TEMAC {
void *parent;
};
-typedef struct XilinxAXIEnetStreamSlave XilinxAXIEnetStreamSlave;
-typedef struct XilinxAXIEnet XilinxAXIEnet;
struct XilinxAXIEnetStreamSlave {
Object parent;
@@ -1046,7 +1045,7 @@ static const TypeInfo xilinx_enet_info = {
static const TypeInfo xilinx_enet_data_stream_info = {
.name = TYPE_XILINX_AXI_ENET_DATA_STREAM,
.parent = TYPE_OBJECT,
- .instance_size = sizeof(struct XilinxAXIEnetStreamSlave),
+ .instance_size = sizeof(XilinxAXIEnetStreamSlave),
.class_init = xilinx_enet_data_stream_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_STREAM_SLAVE },
@@ -1057,7 +1056,7 @@ static const TypeInfo xilinx_enet_data_stream_info = {
static const TypeInfo xilinx_enet_control_stream_info = {
.name = TYPE_XILINX_AXI_ENET_CONTROL_STREAM,
.parent = TYPE_OBJECT,
- .instance_size = sizeof(struct XilinxAXIEnetStreamSlave),
+ .instance_size = sizeof(XilinxAXIEnetStreamSlave),
.class_init = xilinx_enet_control_stream_class_init,
.interfaces = (InterfaceInfo[]) {
{ TYPE_STREAM_SLAVE },
diff --git a/hw/net/xilinx_ethlite.c b/hw/net/xilinx_ethlite.c
index 71d16fe..6e09f7e 100644
--- a/hw/net/xilinx_ethlite.c
+++ b/hw/net/xilinx_ethlite.c
@@ -24,6 +24,7 @@
#include "qemu/osdep.h"
#include "qemu/module.h"
+#include "qom/object.h"
#include "cpu.h" /* FIXME should not use tswap* */
#include "hw/sysbus.h"
#include "hw/irq.h"
@@ -52,8 +53,8 @@
#define CTRL_S 0x1
#define TYPE_XILINX_ETHLITE "xlnx.xps-ethernetlite"
-#define XILINX_ETHLITE(obj) \
- OBJECT_CHECK(struct xlx_ethlite, (obj), TYPE_XILINX_ETHLITE)
+DECLARE_INSTANCE_CHECKER(struct xlx_ethlite, XILINX_ETHLITE,
+ TYPE_XILINX_ETHLITE)
struct xlx_ethlite
{