From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38574 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PoO8N-0004OL-Uy for qemu-devel@nongnu.org; Sat, 12 Feb 2011 17:40:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PoO8M-0007vZ-Kb for qemu-devel@nongnu.org; Sat, 12 Feb 2011 17:40:07 -0500 Received: from mail-vx0-f173.google.com ([209.85.220.173]:64096) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PoO8M-0007vT-B2 for qemu-devel@nongnu.org; Sat, 12 Feb 2011 17:40:06 -0500 Received: by vxb40 with SMTP id 40so1996192vxb.4 for ; Sat, 12 Feb 2011 14:40:06 -0800 (PST) MIME-Version: 1.0 From: Blue Swirl Date: Sun, 13 Feb 2011 00:39:45 +0200 Message-ID: Content-Type: multipart/mixed; boundary=90e6ba53a0b202da8b049c1d7fdf Subject: [Qemu-devel] [PATCH 01/10] parallel: refactor device creation List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel --90e6ba53a0b202da8b049c1d7fdf Content-Type: text/plain; charset=UTF-8 Turn parallel_init into an inline function. Don't expose ParallelState. Signed-off-by: Blue Swirl --- hw/parallel.c | 21 +++++---------------- hw/pc.h | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/hw/parallel.c b/hw/parallel.c index ce311aa..cc853a5 100644 --- a/hw/parallel.c +++ b/hw/parallel.c @@ -64,7 +64,7 @@ #define PARA_CTR_SIGNAL (PARA_CTR_SELECT|PARA_CTR_INIT|PARA_CTR_AUTOLF|PARA_CTR_STROBE) -struct ParallelState { +typedef struct ParallelState { uint8_t dataw; uint8_t datar; uint8_t status; @@ -77,7 +77,7 @@ struct ParallelState { uint32_t last_read_offset; /* For debugging */ /* Memory-mapped interface */ int it_shift; -}; +} ParallelState; typedef struct ISAParallelState { ISADevice dev; @@ -500,18 +500,6 @@ static int parallel_isa_initfn(ISADevice *dev) return 0; } -ParallelState *parallel_init(int index, CharDriverState *chr) -{ - ISADevice *dev; - - dev = isa_create("isa-parallel"); - qdev_prop_set_uint32(&dev->qdev, "index", index); - qdev_prop_set_chr(&dev->qdev, "chardev", chr); - if (qdev_init(&dev->qdev) < 0) - return NULL; - return &DO_UPCAST(ISAParallelState, dev, dev)->state; -} - /* Memory mapped interface */ static uint32_t parallel_mm_readb (void *opaque, target_phys_addr_t addr) { @@ -571,7 +559,8 @@ static CPUWriteMemoryFunc * const parallel_mm_write_sw[] = { }; /* If fd is zero, it means that the parallel device uses the console */ -ParallelState *parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq, CharDriverState *chr) +bool parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq, + CharDriverState *chr) { ParallelState *s; int io_sw; @@ -585,7 +574,7 @@ ParallelState *parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq io_sw = cpu_register_io_memory(parallel_mm_read_sw, parallel_mm_write_sw, s, DEVICE_NATIVE_ENDIAN); cpu_register_physical_memory(base, 8 << it_shift, io_sw); - return s; + return true; } static ISADeviceInfo parallel_isa_info = { diff --git a/hw/pc.h b/hw/pc.h index d5d2f42..443ba34 100644 --- a/hw/pc.h +++ b/hw/pc.h @@ -20,10 +20,21 @@ SerialState *serial_isa_init(int index, CharDriverState *chr); void serial_set_frequency(SerialState *s, uint32_t frequency); /* parallel.c */ +static inline bool parallel_init(int index, CharDriverState *chr) +{ + ISADevice *dev; + + dev = isa_create("isa-parallel"); + qdev_prop_set_uint32(&dev->qdev, "index", index); + qdev_prop_set_chr(&dev->qdev, "chardev", chr); + if (qdev_init(&dev->qdev) < 0) { + return false; + } + return true; +} -typedef struct ParallelState ParallelState; -ParallelState *parallel_init(int index, CharDriverState *chr); -ParallelState *parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq, CharDriverState *chr); +bool parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq, + CharDriverState *chr); /* i8259.c */ -- 1.6.2.4 --90e6ba53a0b202da8b049c1d7fdf Content-Type: application/mbox; name="0001-parallel-refactor-device-creation.patch" Content-Disposition: attachment; filename="0001-parallel-refactor-device-creation.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gk33z9n70 RnJvbSA1MzNmNThkNTEyZDZhNGM0ZTAwNGU5ZWZkZmI4MDdiMWJhODRhNWRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8NTMzZjU4ZDUxMmQ2YTRjNGUwMDRlOWVmZGZiODA3 YjFiYTg0YTVkZS4xMjk3NTUwMjI4LmdpdC5ibGF1d2lyYmVsQGdtYWlsLmNvbT4KRnJvbTogQmx1 ZSBTd2lybCA8YmxhdXdpcmJlbEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNSBGZWIgMjAxMSAxNDo1 MTo1NyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTBdIHBhcmFsbGVsOiByZWZhY3RvciBkZXZp Y2UgY3JlYXRpb24KClR1cm4gcGFyYWxsZWxfaW5pdCBpbnRvIGFuIGlubGluZSBmdW5jdGlvbi4K CkRvbid0IGV4cG9zZSBQYXJhbGxlbFN0YXRlLgoKU2lnbmVkLW9mZi1ieTogQmx1ZSBTd2lybCA8 YmxhdXdpcmJlbEBnbWFpbC5jb20+Ci0tLQogaHcvcGFyYWxsZWwuYyB8ICAgMjEgKysrKystLS0t LS0tLS0tLS0tLS0tCiBody9wYy5oICAgICAgIHwgICAxOSArKysrKysrKysrKysrKystLS0tCiAy IGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2h3L3BhcmFsbGVsLmMgYi9ody9wYXJhbGxlbC5jCmluZGV4IGNlMzExYWEuLmNjODUz YTUgMTAwNjQ0Ci0tLSBhL2h3L3BhcmFsbGVsLmMKKysrIGIvaHcvcGFyYWxsZWwuYwpAQCAtNjQs NyArNjQsNyBAQAogCiAjZGVmaW5lIFBBUkFfQ1RSX1NJR05BTCAoUEFSQV9DVFJfU0VMRUNUfFBB UkFfQ1RSX0lOSVR8UEFSQV9DVFJfQVVUT0xGfFBBUkFfQ1RSX1NUUk9CRSkKIAotc3RydWN0IFBh cmFsbGVsU3RhdGUgewordHlwZWRlZiBzdHJ1Y3QgUGFyYWxsZWxTdGF0ZSB7CiAgICAgdWludDhf dCBkYXRhdzsKICAgICB1aW50OF90IGRhdGFyOwogICAgIHVpbnQ4X3Qgc3RhdHVzOwpAQCAtNzcs NyArNzcsNyBAQCBzdHJ1Y3QgUGFyYWxsZWxTdGF0ZSB7CiAgICAgdWludDMyX3QgbGFzdF9yZWFk X29mZnNldDsgLyogRm9yIGRlYnVnZ2luZyAqLwogICAgIC8qIE1lbW9yeS1tYXBwZWQgaW50ZXJm YWNlICovCiAgICAgaW50IGl0X3NoaWZ0OwotfTsKK30gUGFyYWxsZWxTdGF0ZTsKIAogdHlwZWRl ZiBzdHJ1Y3QgSVNBUGFyYWxsZWxTdGF0ZSB7CiAgICAgSVNBRGV2aWNlIGRldjsKQEAgLTUwMCwx OCArNTAwLDYgQEAgc3RhdGljIGludCBwYXJhbGxlbF9pc2FfaW5pdGZuKElTQURldmljZSAqZGV2 KQogICAgIHJldHVybiAwOwogfQogCi1QYXJhbGxlbFN0YXRlICpwYXJhbGxlbF9pbml0KGludCBp bmRleCwgQ2hhckRyaXZlclN0YXRlICpjaHIpCi17Ci0gICAgSVNBRGV2aWNlICpkZXY7Ci0KLSAg ICBkZXYgPSBpc2FfY3JlYXRlKCJpc2EtcGFyYWxsZWwiKTsKLSAgICBxZGV2X3Byb3Bfc2V0X3Vp bnQzMigmZGV2LT5xZGV2LCAiaW5kZXgiLCBpbmRleCk7Ci0gICAgcWRldl9wcm9wX3NldF9jaHIo JmRldi0+cWRldiwgImNoYXJkZXYiLCBjaHIpOwotICAgIGlmIChxZGV2X2luaXQoJmRldi0+cWRl dikgPCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByZXR1cm4gJkRPX1VQQ0FTVChJU0FQ YXJhbGxlbFN0YXRlLCBkZXYsIGRldiktPnN0YXRlOwotfQotCiAvKiBNZW1vcnkgbWFwcGVkIGlu dGVyZmFjZSAqLwogc3RhdGljIHVpbnQzMl90IHBhcmFsbGVsX21tX3JlYWRiICh2b2lkICpvcGFx dWUsIHRhcmdldF9waHlzX2FkZHJfdCBhZGRyKQogewpAQCAtNTcxLDcgKzU1OSw4IEBAIHN0YXRp YyBDUFVXcml0ZU1lbW9yeUZ1bmMgKiBjb25zdCBwYXJhbGxlbF9tbV93cml0ZV9zd1tdID0gewog fTsKIAogLyogSWYgZmQgaXMgemVybywgaXQgbWVhbnMgdGhhdCB0aGUgcGFyYWxsZWwgZGV2aWNl IHVzZXMgdGhlIGNvbnNvbGUgKi8KLVBhcmFsbGVsU3RhdGUgKnBhcmFsbGVsX21tX2luaXQodGFy Z2V0X3BoeXNfYWRkcl90IGJhc2UsIGludCBpdF9zaGlmdCwgcWVtdV9pcnEgaXJxLCBDaGFyRHJp dmVyU3RhdGUgKmNocikKK2Jvb2wgcGFyYWxsZWxfbW1faW5pdCh0YXJnZXRfcGh5c19hZGRyX3Qg YmFzZSwgaW50IGl0X3NoaWZ0LCBxZW11X2lycSBpcnEsCisgICAgICAgICAgICAgICAgICAgICAg Q2hhckRyaXZlclN0YXRlICpjaHIpCiB7CiAgICAgUGFyYWxsZWxTdGF0ZSAqczsKICAgICBpbnQg aW9fc3c7CkBAIC01ODUsNyArNTc0LDcgQEAgUGFyYWxsZWxTdGF0ZSAqcGFyYWxsZWxfbW1faW5p dCh0YXJnZXRfcGh5c19hZGRyX3QgYmFzZSwgaW50IGl0X3NoaWZ0LCBxZW11X2lycQogICAgIGlv X3N3ID0gY3B1X3JlZ2lzdGVyX2lvX21lbW9yeShwYXJhbGxlbF9tbV9yZWFkX3N3LCBwYXJhbGxl bF9tbV93cml0ZV9zdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcywgREVW SUNFX05BVElWRV9FTkRJQU4pOwogICAgIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkoYmFz ZSwgOCA8PCBpdF9zaGlmdCwgaW9fc3cpOwotICAgIHJldHVybiBzOworICAgIHJldHVybiB0cnVl OwogfQogCiBzdGF0aWMgSVNBRGV2aWNlSW5mbyBwYXJhbGxlbF9pc2FfaW5mbyA9IHsKZGlmZiAt LWdpdCBhL2h3L3BjLmggYi9ody9wYy5oCmluZGV4IGQ1ZDJmNDIuLjQ0M2JhMzQgMTAwNjQ0Ci0t LSBhL2h3L3BjLmgKKysrIGIvaHcvcGMuaApAQCAtMjAsMTAgKzIwLDIxIEBAIFNlcmlhbFN0YXRl ICpzZXJpYWxfaXNhX2luaXQoaW50IGluZGV4LCBDaGFyRHJpdmVyU3RhdGUgKmNocik7CiB2b2lk IHNlcmlhbF9zZXRfZnJlcXVlbmN5KFNlcmlhbFN0YXRlICpzLCB1aW50MzJfdCBmcmVxdWVuY3kp OwogCiAvKiBwYXJhbGxlbC5jICovCitzdGF0aWMgaW5saW5lIGJvb2wgcGFyYWxsZWxfaW5pdChp bnQgaW5kZXgsIENoYXJEcml2ZXJTdGF0ZSAqY2hyKQoreworICAgIElTQURldmljZSAqZGV2Owor CisgICAgZGV2ID0gaXNhX2NyZWF0ZSgiaXNhLXBhcmFsbGVsIik7CisgICAgcWRldl9wcm9wX3Nl dF91aW50MzIoJmRldi0+cWRldiwgImluZGV4IiwgaW5kZXgpOworICAgIHFkZXZfcHJvcF9zZXRf Y2hyKCZkZXYtPnFkZXYsICJjaGFyZGV2IiwgY2hyKTsKKyAgICBpZiAocWRldl9pbml0KCZkZXYt PnFkZXYpIDwgMCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0 cnVlOworfQogCi10eXBlZGVmIHN0cnVjdCBQYXJhbGxlbFN0YXRlIFBhcmFsbGVsU3RhdGU7Ci1Q YXJhbGxlbFN0YXRlICpwYXJhbGxlbF9pbml0KGludCBpbmRleCwgQ2hhckRyaXZlclN0YXRlICpj aHIpOwotUGFyYWxsZWxTdGF0ZSAqcGFyYWxsZWxfbW1faW5pdCh0YXJnZXRfcGh5c19hZGRyX3Qg YmFzZSwgaW50IGl0X3NoaWZ0LCBxZW11X2lycSBpcnEsIENoYXJEcml2ZXJTdGF0ZSAqY2hyKTsK K2Jvb2wgcGFyYWxsZWxfbW1faW5pdCh0YXJnZXRfcGh5c19hZGRyX3QgYmFzZSwgaW50IGl0X3No aWZ0LCBxZW11X2lycSBpcnEsCisgICAgICAgICAgICAgICAgICAgICAgQ2hhckRyaXZlclN0YXRl ICpjaHIpOwogCiAvKiBpODI1OS5jICovCiAKLS0gCjEuNy4yLjMKCg== --90e6ba53a0b202da8b049c1d7fdf--