mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
cuda: port SET_DEVICE_LIST command to new framework
Also implement the command, by taking device list mask into account when polling ADB devices. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
374312e7c5
commit
216c906e62
4 changed files with 28 additions and 11 deletions
|
@ -89,7 +89,7 @@ int adb_request(ADBBusState *s, uint8_t *obuf, const uint8_t *buf, int len)
|
|||
}
|
||||
|
||||
/* XXX: move that to cuda ? */
|
||||
int adb_poll(ADBBusState *s, uint8_t *obuf)
|
||||
int adb_poll(ADBBusState *s, uint8_t *obuf, uint16_t poll_mask)
|
||||
{
|
||||
ADBDevice *d;
|
||||
int olen, i;
|
||||
|
@ -100,13 +100,15 @@ int adb_poll(ADBBusState *s, uint8_t *obuf)
|
|||
if (s->poll_index >= s->nb_devices)
|
||||
s->poll_index = 0;
|
||||
d = s->devices[s->poll_index];
|
||||
buf[0] = ADB_READREG | (d->devaddr << 4);
|
||||
olen = adb_request(s, obuf + 1, buf, 1);
|
||||
/* if there is data, we poll again the same device */
|
||||
if (olen > 0) {
|
||||
obuf[0] = buf[0];
|
||||
olen++;
|
||||
break;
|
||||
if ((1 << d->devaddr) & poll_mask) {
|
||||
buf[0] = ADB_READREG | (d->devaddr << 4);
|
||||
olen = adb_request(s, obuf + 1, buf, 1);
|
||||
/* if there is data, we poll again the same device */
|
||||
if (olen > 0) {
|
||||
obuf[0] = buf[0];
|
||||
olen++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
s->poll_index++;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue