[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 05/13] cuda.c: fix CUDA_PACKET response packet format
From: |
Mark Cave-Ayland |
Subject: |
[Qemu-ppc] [PATCH 05/13] cuda.c: fix CUDA_PACKET response packet format |
Date: |
Fri, 23 Oct 2015 14:56:30 +0100 |
According to comments in MOL, the response to a CUDA_PACKET should be one of
the following:
Reply: CUDA_PACKET, status, cmd
Error: ERROR_PACKET, status, CUDA_PACKET, cmd
Update cuda_receive_packet() accordingly to reflect this.
Signed-off-by: Mark Cave-Ayland <address@hidden>
---
hw/misc/macio/cuda.c | 24 +++++-------------------
1 file changed, 5 insertions(+), 19 deletions(-)
diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c
index 9ec19af..88a0999 100644
--- a/hw/misc/macio/cuda.c
+++ b/hw/misc/macio/cuda.c
@@ -480,7 +480,7 @@ static void cuda_adb_poll(void *opaque)
static void cuda_receive_packet(CUDAState *s,
const uint8_t *data, int len)
{
- uint8_t obuf[16];
+ uint8_t obuf[16] = { CUDA_PACKET, 0, data[0] };
int autopoll;
uint32_t ti;
@@ -497,23 +497,15 @@ static void cuda_receive_packet(CUDAState *s,
timer_del(s->adb_poll_timer);
}
}
- obuf[0] = CUDA_PACKET;
- obuf[1] = data[1];
- cuda_send_packet_to_host(s, obuf, 2);
+ cuda_send_packet_to_host(s, obuf, 3);
break;
case CUDA_SET_TIME:
ti = (((uint32_t)data[1]) << 24) + (((uint32_t)data[2]) << 16) +
(((uint32_t)data[3]) << 8) + data[4];
s->tick_offset = ti - (qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) /
get_ticks_per_sec());
- obuf[0] = CUDA_PACKET;
- obuf[1] = 0;
- obuf[2] = 0;
cuda_send_packet_to_host(s, obuf, 3);
break;
case CUDA_GET_TIME:
ti = s->tick_offset + (qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) /
get_ticks_per_sec());
- obuf[0] = CUDA_PACKET;
- obuf[1] = 0;
- obuf[2] = 0;
obuf[3] = ti >> 24;
obuf[4] = ti >> 16;
obuf[5] = ti >> 8;
@@ -524,20 +516,14 @@ static void cuda_receive_packet(CUDAState *s,
case CUDA_SET_DEVICE_LIST:
case CUDA_SET_AUTO_RATE:
case CUDA_SET_POWER_MESSAGES:
- obuf[0] = CUDA_PACKET;
- obuf[1] = 0;
- cuda_send_packet_to_host(s, obuf, 2);
+ cuda_send_packet_to_host(s, obuf, 3);
break;
case CUDA_POWERDOWN:
- obuf[0] = CUDA_PACKET;
- obuf[1] = 0;
- cuda_send_packet_to_host(s, obuf, 2);
+ cuda_send_packet_to_host(s, obuf, 3);
qemu_system_shutdown_request();
break;
case CUDA_RESET_SYSTEM:
- obuf[0] = CUDA_PACKET;
- obuf[1] = 0;
- cuda_send_packet_to_host(s, obuf, 2);
+ cuda_send_packet_to_host(s, obuf, 3);
qemu_system_reset_request();
break;
default:
--
1.7.10.4
- [Qemu-ppc] [PATCH 00/13] Mac OS 9 compatibility improvements (upstream rework), Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 01/13] PPC: Allow Rc bit to be set on mtspr, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 07/13] cuda.c: implement dummy IIC access commands, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 02/13] PPC: Fix lsxw bounds checks, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 08/13] cuda.c: fix CUDA SR interrupt clearing, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 09/13] cuda.c: add defines for CUDA registers, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 03/13] PPC: mac99: Always add USB controller, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 04/13] cuda.c: fix CUDA ADB error packet format, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 06/13] cuda.c: implement simple CUDA_GET_6805_ADDR command, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 05/13] cuda.c: fix CUDA_PACKET response packet format,
Mark Cave-Ayland <=
- [Qemu-ppc] [PATCH 10/13] cuda.c: refactor get_tb() so that the time can be passed in, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 13/13] cuda.c: add delay to setting of SR_INT bit, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 12/13] cuda.c: fix T2 timer and enable its interrupt, Mark Cave-Ayland, 2015/10/23
- [Qemu-ppc] [PATCH 11/13] cuda.c: rename get_counter() state variable from s to ti for consistency, Mark Cave-Ayland, 2015/10/23
- Re: [Qemu-ppc] [Qemu-devel] [PATCH 00/13] Mac OS 9 compatibility improvements (upstream rework), Mark Cave-Ayland, 2015/10/30