Commit df12c1f543b228daae7a2fbcfd3bb12a6faab38a
Committed by
Paul Brook
1 parent
068daedd
Fix xilinx_ethlite breakage by 4f1c942b
Namely the new xilinx_ethlite used by mircoblaze. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Showing
1 changed file
with
8 additions
and
8 deletions
hw/xilinx_ethlite.c
@@ -160,28 +160,28 @@ static CPUWriteMemoryFunc *eth_write[] = { | @@ -160,28 +160,28 @@ static CPUWriteMemoryFunc *eth_write[] = { | ||
160 | NULL, NULL, ð_writel, | 160 | NULL, NULL, ð_writel, |
161 | }; | 161 | }; |
162 | 162 | ||
163 | -static int eth_can_rx(void *opaque) | 163 | +static int eth_can_rx(VLANClientState *vc) |
164 | { | 164 | { |
165 | - struct xlx_ethlite *s = opaque; | 165 | + struct xlx_ethlite *s = vc->opaque; |
166 | int r; | 166 | int r; |
167 | r = !(s->regs[R_RX_CTRL0] & CTRL_S); | 167 | r = !(s->regs[R_RX_CTRL0] & CTRL_S); |
168 | qemu_log("%s %d\n", __func__, r); | 168 | qemu_log("%s %d\n", __func__, r); |
169 | return r; | 169 | return r; |
170 | } | 170 | } |
171 | 171 | ||
172 | -static void eth_rx(void *opaque, const uint8_t *buf, int size) | 172 | +static ssize_t eth_rx(VLANClientState *vc, const uint8_t *buf, size_t size) |
173 | { | 173 | { |
174 | - struct xlx_ethlite *s = opaque; | 174 | + struct xlx_ethlite *s = vc->opaque; |
175 | unsigned int rxbase = s->rxbuf * (0x800 / 4); | 175 | unsigned int rxbase = s->rxbuf * (0x800 / 4); |
176 | int i; | 176 | int i; |
177 | 177 | ||
178 | /* DA filter. */ | 178 | /* DA filter. */ |
179 | if (!(buf[0] & 0x80) && memcmp(&s->macaddr[0], buf, 6)) | 179 | if (!(buf[0] & 0x80) && memcmp(&s->macaddr[0], buf, 6)) |
180 | - return; | 180 | + return size; |
181 | 181 | ||
182 | if (s->regs[rxbase + R_RX_CTRL0] & CTRL_S) { | 182 | if (s->regs[rxbase + R_RX_CTRL0] & CTRL_S) { |
183 | D(qemu_log("ethlite lost packet %x\n", s->regs[R_RX_CTRL0])); | 183 | D(qemu_log("ethlite lost packet %x\n", s->regs[R_RX_CTRL0])); |
184 | - return; | 184 | + return -1; |
185 | } | 185 | } |
186 | 186 | ||
187 | D(qemu_log("%s %d rxbase=%x\n", __func__, size, rxbase)); | 187 | D(qemu_log("%s %d rxbase=%x\n", __func__, size, rxbase)); |
@@ -199,7 +199,7 @@ static void eth_rx(void *opaque, const uint8_t *buf, int size) | @@ -199,7 +199,7 @@ static void eth_rx(void *opaque, const uint8_t *buf, int size) | ||
199 | 199 | ||
200 | /* If c_rx_pingpong was set flip buffers. */ | 200 | /* If c_rx_pingpong was set flip buffers. */ |
201 | s->rxbuf ^= s->c_rx_pingpong; | 201 | s->rxbuf ^= s->c_rx_pingpong; |
202 | - return; | 202 | + return size; |
203 | } | 203 | } |
204 | 204 | ||
205 | static void eth_cleanup(VLANClientState *vc) | 205 | static void eth_cleanup(VLANClientState *vc) |
@@ -223,7 +223,7 @@ static void xilinx_ethlite_init(SysBusDevice *dev) | @@ -223,7 +223,7 @@ static void xilinx_ethlite_init(SysBusDevice *dev) | ||
223 | 223 | ||
224 | qdev_get_macaddr(&dev->qdev, s->macaddr); | 224 | qdev_get_macaddr(&dev->qdev, s->macaddr); |
225 | s->vc = qdev_get_vlan_client(&dev->qdev, | 225 | s->vc = qdev_get_vlan_client(&dev->qdev, |
226 | - eth_rx, eth_can_rx, eth_cleanup, s); | 226 | + eth_can_rx, eth_rx, NULL, eth_cleanup, s); |
227 | } | 227 | } |
228 | 228 | ||
229 | static void xilinx_ethlite_register(void) | 229 | static void xilinx_ethlite_register(void) |