From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:44155) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TqlUT-0005Ia-1l for qemu-devel@nongnu.org; Thu, 03 Jan 2013 09:09:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TqlUO-00029a-1U for qemu-devel@nongnu.org; Thu, 03 Jan 2013 09:09:48 -0500 Received: from mx1.redhat.com ([209.132.183.28]:36523) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TqlUN-00029V-PA for qemu-devel@nongnu.org; Thu, 03 Jan 2013 09:09:43 -0500 Message-ID: <50E59122.3010101@redhat.com> Date: Thu, 03 Jan 2013 15:09:38 +0100 From: Gerd Hoffmann MIME-Version: 1.0 References: <1356276769-7357-1-git-send-email-hpoussin@reactos.org> <1356276769-7357-4-git-send-email-hpoussin@reactos.org> In-Reply-To: <1356276769-7357-4-git-send-email-hpoussin@reactos.org> Content-Type: multipart/mixed; boundary="------------010709010105080202080709" Subject: Re: [Qemu-devel] [RFC 3/8] uhci: do not use old_portio-style callbacks List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?SGVydsOpIFBvdXNzaW5lYXU=?= Cc: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= , qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------010709010105080202080709 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by mx1.redhat.com id r03E9gTX009932 On 12/23/12 16:32, Herv=C3=A9 Poussineau wrote: > -static const MemoryRegionPortio uhci_portio[] =3D { > - { 0, 32, 2, .write =3D uhci_ioport_writew, }, > - { 0, 32, 2, .read =3D uhci_ioport_readw, }, > - { 0, 32, 4, .write =3D uhci_ioport_writel, }, > - { 0, 32, 4, .read =3D uhci_ioport_readl, }, > - { 0, 32, 1, .write =3D uhci_ioport_writeb, }, > - { 0, 32, 1, .read =3D uhci_ioport_readb, }, > - PORTIO_END_OF_LIST() > -}; > +static uint64_t uhci_ioport_read(void *opaque, hwaddr addr, unsigned i= nt size) > +{ > + switch (size) { > + case 1: > + return uhci_ioport_readb(opaque, (uint32_t)addr); > + case 2: > + return uhci_ioport_readw(opaque, (uint32_t)addr); > + case 4: > + return uhci_ioport_readl(opaque, (uint32_t)addr); > + default: > + return ~0UL; > + } > +} Aaaargh. Please don't. Offloading the size handling to the memory api is better. See attached patch. cheers, Gerd --------------010709010105080202080709 Content-Type: text/plain; name="0001-uhci-stop-using-portio-lists.patch" Content-Disposition: attachment; filename="0001-uhci-stop-using-portio-lists.patch" Content-Transfer-Encoding: base64 RnJvbSAzZjU4MTAwMDRkYWQyZWY2N2NmMDY3ZDk2Y2YwYjk4MzE2NmE0NTRmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNv bT4KRGF0ZTogVGh1LCAzIEphbiAyMDEzIDEyOjI5OjQxICswMTAwClN1YmplY3Q6IFtQQVRD SF0gdWhjaTogc3RvcCB1c2luZyBwb3J0aW8gbGlzdHMKClNpZ25lZC1vZmYtYnk6IEdlcmQg SG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPgotLS0KIGh3L3VzYi9oY2QtdWhjaS5jIHwg IDEwNiArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogdHJhY2UtZXZlbnRzICAgICAgfCAgICAyIC0KIDIgZmlsZXMgY2hhbmdlZCwgMzAg aW5zZXJ0aW9ucygrKSwgNzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaHcvdXNiL2hj ZC11aGNpLmMgYi9ody91c2IvaGNkLXVoY2kuYwppbmRleCAwY2Q2OGNmLi42MDY0NWFhIDEw MDY0NAotLS0gYS9ody91c2IvaGNkLXVoY2kuYworKysgYi9ody91c2IvaGNkLXVoY2kuYwpA QCAtNDYxLDQwICs0NjEsMTEgQEAgc3RhdGljIGNvbnN0IFZNU3RhdGVEZXNjcmlwdGlvbiB2 bXN0YXRlX3VoY2kgPSB7CiAgICAgfQogfTsKIAotc3RhdGljIHZvaWQgdWhjaV9pb3BvcnRf d3JpdGViKHZvaWQgKm9wYXF1ZSwgdWludDMyX3QgYWRkciwgdWludDMyX3QgdmFsKQorc3Rh dGljIHZvaWQgdWhjaV9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1ZSwgaHdhZGRyIGFkZHIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdmFsLCB1bnNpZ25lZCBzaXpl KQogewogICAgIFVIQ0lTdGF0ZSAqcyA9IG9wYXF1ZTsKIAotICAgIGFkZHIgJj0gMHgxZjsK LSAgICBzd2l0Y2goYWRkcikgewotICAgIGNhc2UgMHgwYzoKLSAgICAgICAgcy0+c29mX3Rp bWluZyA9IHZhbDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMgdWludDMy X3QgdWhjaV9pb3BvcnRfcmVhZGIodm9pZCAqb3BhcXVlLCB1aW50MzJfdCBhZGRyKQotewot ICAgIFVIQ0lTdGF0ZSAqcyA9IG9wYXF1ZTsKLSAgICB1aW50MzJfdCB2YWw7Ci0KLSAgICBh ZGRyICY9IDB4MWY7Ci0gICAgc3dpdGNoKGFkZHIpIHsKLSAgICBjYXNlIDB4MGM6Ci0gICAg ICAgIHZhbCA9IHMtPnNvZl90aW1pbmc7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6 Ci0gICAgICAgIHZhbCA9IDB4ZmY7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICByZXR1 cm4gdmFsOwotfQotCi1zdGF0aWMgdm9pZCB1aGNpX2lvcG9ydF93cml0ZXcodm9pZCAqb3Bh cXVlLCB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwpCi17Ci0gICAgVUhDSVN0YXRlICpz ID0gb3BhcXVlOwotCi0gICAgYWRkciAmPSAweDFmOwogICAgIHRyYWNlX3VzYl91aGNpX21t aW9fd3JpdGV3KGFkZHIsIHZhbCk7CiAKICAgICBzd2l0Y2goYWRkcikgewpAQCAtNTQzLDYg KzUxNCwxNyBAQCBzdGF0aWMgdm9pZCB1aGNpX2lvcG9ydF93cml0ZXcodm9pZCAqb3BhcXVl LCB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwpCiAgICAgICAgIGlmIChzLT5zdGF0dXMg JiBVSENJX1NUU19IQ0hBTFRFRCkKICAgICAgICAgICAgIHMtPmZybnVtID0gdmFsICYgMHg3 ZmY7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgMHgwODoKKyAgICAgICAgcy0+ZmxfYmFz ZV9hZGRyICY9IDB4ZmZmZjAwMDA7CisgICAgICAgIHMtPmZsX2Jhc2VfYWRkciB8PSB2YWwg JiB+MHhmZmY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMHgwYToKKyAgICAgICAgcy0+ ZmxfYmFzZV9hZGRyICY9IDB4MDAwMGZmZmY7CisgICAgICAgIHMtPmZsX2Jhc2VfYWRkciB8 PSAodmFsIDw8IDE2KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAweDBjOgorICAgICAg ICBzLT5zb2ZfdGltaW5nID0gdmFsICYgMHhmZjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz ZSAweDEwIC4uLiAweDFmOgogICAgICAgICB7CiAgICAgICAgICAgICBVSENJUG9ydCAqcG9y dDsKQEAgLTU3NCwxMiArNTU2LDExIEBAIHN0YXRpYyB2b2lkIHVoY2lfaW9wb3J0X3dyaXRl dyh2b2lkICpvcGFxdWUsIHVpbnQzMl90IGFkZHIsIHVpbnQzMl90IHZhbCkKICAgICB9CiB9 CiAKLXN0YXRpYyB1aW50MzJfdCB1aGNpX2lvcG9ydF9yZWFkdyh2b2lkICpvcGFxdWUsIHVp bnQzMl90IGFkZHIpCitzdGF0aWMgdWludDY0X3QgdWhjaV9wb3J0X3JlYWQodm9pZCAqb3Bh cXVlLCBod2FkZHIgYWRkciwgdW5zaWduZWQgc2l6ZSkKIHsKICAgICBVSENJU3RhdGUgKnMg PSBvcGFxdWU7CiAgICAgdWludDMyX3QgdmFsOwogCi0gICAgYWRkciAmPSAweDFmOwogICAg IHN3aXRjaChhZGRyKSB7CiAgICAgY2FzZSAweDAwOgogICAgICAgICB2YWwgPSBzLT5jbWQ7 CkBAIC01OTMsNiArNTc0LDE1IEBAIHN0YXRpYyB1aW50MzJfdCB1aGNpX2lvcG9ydF9yZWFk dyh2b2lkICpvcGFxdWUsIHVpbnQzMl90IGFkZHIpCiAgICAgY2FzZSAweDA2OgogICAgICAg ICB2YWwgPSBzLT5mcm51bTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSAweDA4OgorICAg ICAgICB2YWwgPSBzLT5mbF9iYXNlX2FkZHIgJiAweGZmZmY7CisgICAgICAgIGJyZWFrOwor ICAgIGNhc2UgMHgwYToKKyAgICAgICAgdmFsID0gKHMtPmZsX2Jhc2VfYWRkciA+PiAxNikg JiAweGZmZmY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMHgwYzoKKyAgICAgICAgdmFs ID0gcy0+c29mX3RpbWluZzsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAweDEwIC4uLiAw eDFmOgogICAgICAgICB7CiAgICAgICAgICAgICBVSENJUG9ydCAqcG9ydDsKQEAgLTYxNSwz OCArNjA1LDYgQEAgc3RhdGljIHVpbnQzMl90IHVoY2lfaW9wb3J0X3JlYWR3KHZvaWQgKm9w YXF1ZSwgdWludDMyX3QgYWRkcikKICAgICByZXR1cm4gdmFsOwogfQogCi1zdGF0aWMgdm9p ZCB1aGNpX2lvcG9ydF93cml0ZWwodm9pZCAqb3BhcXVlLCB1aW50MzJfdCBhZGRyLCB1aW50 MzJfdCB2YWwpCi17Ci0gICAgVUhDSVN0YXRlICpzID0gb3BhcXVlOwotCi0gICAgYWRkciAm PSAweDFmOwotICAgIHRyYWNlX3VzYl91aGNpX21taW9fd3JpdGVsKGFkZHIsIHZhbCk7Ci0K LSAgICBzd2l0Y2goYWRkcikgewotICAgIGNhc2UgMHgwODoKLSAgICAgICAgcy0+ZmxfYmFz ZV9hZGRyID0gdmFsICYgfjB4ZmZmOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0 YXRpYyB1aW50MzJfdCB1aGNpX2lvcG9ydF9yZWFkbCh2b2lkICpvcGFxdWUsIHVpbnQzMl90 IGFkZHIpCi17Ci0gICAgVUhDSVN0YXRlICpzID0gb3BhcXVlOwotICAgIHVpbnQzMl90IHZh bDsKLQotICAgIGFkZHIgJj0gMHgxZjsKLSAgICBzd2l0Y2goYWRkcikgewotICAgIGNhc2Ug MHgwODoKLSAgICAgICAgdmFsID0gcy0+ZmxfYmFzZV9hZGRyOwotICAgICAgICBicmVhazsK LSAgICBkZWZhdWx0OgotICAgICAgICB2YWwgPSAweGZmZmZmZmZmOwotICAgICAgICBicmVh azsKLSAgICB9Ci0gICAgdHJhY2VfdXNiX3VoY2lfbW1pb19yZWFkbChhZGRyLCB2YWwpOwot ICAgIHJldHVybiB2YWw7Ci19Ci0KIC8qIHNpZ25hbCByZXN1bWUgaWYgY29udHJvbGxlciBz dXNwZW5kZWQgKi8KIHN0YXRpYyB2b2lkIHVoY2lfcmVzdW1lICh2b2lkICpvcGFxdWUpCiB7 CkBAIC0xMjM2LDE4ICsxMTk0LDE0IEBAIHN0YXRpYyB2b2lkIHVoY2lfZnJhbWVfdGltZXIo dm9pZCAqb3BhcXVlKQogICAgIHFlbXVfbW9kX3RpbWVyKHMtPmZyYW1lX3RpbWVyLCB0X25v dyArIGZyYW1lX3QpOwogfQogCi1zdGF0aWMgY29uc3QgTWVtb3J5UmVnaW9uUG9ydGlvIHVo Y2lfcG9ydGlvW10gPSB7Ci0gICAgeyAwLCAzMiwgMiwgLndyaXRlID0gdWhjaV9pb3BvcnRf d3JpdGV3LCB9LAotICAgIHsgMCwgMzIsIDIsIC5yZWFkID0gdWhjaV9pb3BvcnRfcmVhZHcs IH0sCi0gICAgeyAwLCAzMiwgNCwgLndyaXRlID0gdWhjaV9pb3BvcnRfd3JpdGVsLCB9LAot ICAgIHsgMCwgMzIsIDQsIC5yZWFkID0gdWhjaV9pb3BvcnRfcmVhZGwsIH0sCi0gICAgeyAw LCAzMiwgMSwgLndyaXRlID0gdWhjaV9pb3BvcnRfd3JpdGViLCB9LAotICAgIHsgMCwgMzIs IDEsIC5yZWFkID0gdWhjaV9pb3BvcnRfcmVhZGIsIH0sCi0gICAgUE9SVElPX0VORF9PRl9M SVNUKCkKLX07Ci0KIHN0YXRpYyBjb25zdCBNZW1vcnlSZWdpb25PcHMgdWhjaV9pb3BvcnRf b3BzID0gewotICAgIC5vbGRfcG9ydGlvID0gdWhjaV9wb3J0aW8sCisgICAgLnJlYWQgID0g dWhjaV9wb3J0X3JlYWQsCisgICAgLndyaXRlID0gdWhjaV9wb3J0X3dyaXRlLAorICAgIC52 YWxpZC5taW5fYWNjZXNzX3NpemUgPSAxLAorICAgIC52YWxpZC5tYXhfYWNjZXNzX3NpemUg PSA0LAorICAgIC5pbXBsLm1pbl9hY2Nlc3Nfc2l6ZSA9IDIsCisgICAgLmltcGwubWF4X2Fj Y2Vzc19zaXplID0gMiwKKyAgICAuZW5kaWFubmVzcyA9IERFVklDRV9MSVRUTEVfRU5ESUFO LAogfTsKIAogc3RhdGljIFVTQlBvcnRPcHMgdWhjaV9wb3J0X29wcyA9IHsKZGlmZiAtLWdp dCBhL3RyYWNlLWV2ZW50cyBiL3RyYWNlLWV2ZW50cwppbmRleCA0YjA2MWM2Li5mNjhlMDNi IDEwMDY0NAotLS0gYS90cmFjZS1ldmVudHMKKysrIGIvdHJhY2UtZXZlbnRzCkBAIC0zMDcs OCArMzA3LDYgQEAgdXNiX3VoY2lfZnJhbWVfbG9vcF9zdG9wX2lkbGUodm9pZCkgIiIKIHVz Yl91aGNpX2ZyYW1lX2xvb3BfY29udGludWUodm9pZCkgIiIKIHVzYl91aGNpX21taW9fcmVh ZHcodWludDMyX3QgYWRkciwgdWludDMyX3QgdmFsKSAiYWRkciAweCUwNHgsIHJldCAweCUw NHgiCiB1c2JfdWhjaV9tbWlvX3dyaXRldyh1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwp ICJhZGRyIDB4JTA0eCwgdmFsIDB4JTA0eCIKLXVzYl91aGNpX21taW9fcmVhZGwodWludDMy X3QgYWRkciwgdWludDMyX3QgdmFsKSAiYWRkciAweCUwNHgsIHJldCAweCUwOHgiCi11c2Jf dWhjaV9tbWlvX3dyaXRlbCh1aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWwpICJhZGRyIDB4 JTA0eCwgdmFsIDB4JTA4eCIKIHVzYl91aGNpX3F1ZXVlX2FkZCh1aW50MzJfdCB0b2tlbikg InRva2VuIDB4JXgiCiB1c2JfdWhjaV9xdWV1ZV9kZWwodWludDMyX3QgdG9rZW4sIGNvbnN0 IGNoYXIgKnJlYXNvbikgInRva2VuIDB4JXg6ICVzIgogdXNiX3VoY2lfcGFja2V0X2FkZCh1 aW50MzJfdCB0b2tlbiwgdWludDMyX3QgYWRkcikgInRva2VuIDB4JXgsIHRkIDB4JXgiCi0t IAoxLjcuMQoK --------------010709010105080202080709--