From patchwork Mon Oct 19 18:43:08 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 36415 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 80F2AB7B75 for ; Tue, 20 Oct 2009 06:28:48 +1100 (EST) Received: from localhost ([127.0.0.1]:36724 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MzxuP-000093-Dl for incoming@patchwork.ozlabs.org; Mon, 19 Oct 2009 15:28:45 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MzxDL-0006I7-3L for qemu-devel@nongnu.org; Mon, 19 Oct 2009 14:44:15 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MzxDG-0006Ez-IG for qemu-devel@nongnu.org; Mon, 19 Oct 2009 14:44:13 -0400 Received: from [199.232.76.173] (port=49060 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MzxDG-0006Ew-DD for qemu-devel@nongnu.org; Mon, 19 Oct 2009 14:44:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:25136) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MzxDF-0006N3-QT for qemu-devel@nongnu.org; Mon, 19 Oct 2009 14:44:10 -0400 Received: from int-mx04.intmail.prod.int.phx2.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.17]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n9JIi8lL023315 for ; Mon, 19 Oct 2009 14:44:08 -0400 Received: from localhost.localdomain (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx04.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id n9JIhcCG012656; Mon, 19 Oct 2009 14:44:07 -0400 From: Juan Quintela To: qemu-devel@nongnu.org Date: Mon, 19 Oct 2009 20:43:08 +0200 Message-Id: <0edca5cf146804cba97ef5a8b4bee78ac01c0f99.1255976538.git.quintela@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.67 on 10.5.11.17 X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. Subject: [Qemu-devel] [PATCH 23/25] e1000: unfold mac_reg_tosave array X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Juan Quintela --- hw/e1000.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 74 insertions(+), 13 deletions(-) diff --git a/hw/e1000.c b/hw/e1000.c index f123bda..0d40fbe 100644 --- a/hw/e1000.c +++ b/hw/e1000.c @@ -879,15 +879,6 @@ e1000_mmio_readw(void *opaque, target_phys_addr_t addr) (8 * (addr & 3))) & 0xffff; } -static const int mac_regtosave[] = { - CTRL, EECD, EERD, GPRC, GPTC, ICR, ICS, IMC, IMS, - LEDCTL, MANC, MDIC, MPC, PBA, RCTL, RDBAH, RDBAL, RDH, - RDLEN, RDT, STATUS, SWSM, TCTL, TDBAH, TDBAL, TDH, TDLEN, - TDT, TORH, TORL, TOTH, TOTL, TPR, TPT, TXDCTL, WUFC, - VET, -}; -enum { MAC_NSAVE = ARRAY_SIZE(mac_regtosave) }; - static const struct { int size; int array0; @@ -929,8 +920,43 @@ nic_save(QEMUFile *f, void *opaque) qemu_put_be16s(f, s->eeprom_data + i); for (i = 0; i < 0x20; i++) qemu_put_be16s(f, s->phy_reg + i); - for (i = 0; i < MAC_NSAVE; i++) - qemu_put_be32s(f, s->mac_reg + mac_regtosave[i]); + qemu_put_be32s(f, &s->mac_reg[CTRL]); + qemu_put_be32s(f, &s->mac_reg[EECD]); + qemu_put_be32s(f, &s->mac_reg[EERD]); + qemu_put_be32s(f, &s->mac_reg[GPRC]); + qemu_put_be32s(f, &s->mac_reg[GPTC]); + qemu_put_be32s(f, &s->mac_reg[ICR]); + qemu_put_be32s(f, &s->mac_reg[ICS]); + qemu_put_be32s(f, &s->mac_reg[IMC]); + qemu_put_be32s(f, &s->mac_reg[IMS]); + qemu_put_be32s(f, &s->mac_reg[LEDCTL]); + qemu_put_be32s(f, &s->mac_reg[MANC]); + qemu_put_be32s(f, &s->mac_reg[MDIC]); + qemu_put_be32s(f, &s->mac_reg[MPC]); + qemu_put_be32s(f, &s->mac_reg[PBA]); + qemu_put_be32s(f, &s->mac_reg[RCTL]); + qemu_put_be32s(f, &s->mac_reg[RDBAH]); + qemu_put_be32s(f, &s->mac_reg[RDBAL]); + qemu_put_be32s(f, &s->mac_reg[RDH]); + qemu_put_be32s(f, &s->mac_reg[RDLEN]); + qemu_put_be32s(f, &s->mac_reg[RDT]); + qemu_put_be32s(f, &s->mac_reg[STATUS]); + qemu_put_be32s(f, &s->mac_reg[SWSM]); + qemu_put_be32s(f, &s->mac_reg[TCTL]); + qemu_put_be32s(f, &s->mac_reg[TDBAH]); + qemu_put_be32s(f, &s->mac_reg[TDBAL]); + qemu_put_be32s(f, &s->mac_reg[TDH]); + qemu_put_be32s(f, &s->mac_reg[TDLEN]); + qemu_put_be32s(f, &s->mac_reg[TDT]); + qemu_put_be32s(f, &s->mac_reg[TORH]); + qemu_put_be32s(f, &s->mac_reg[TORL]); + qemu_put_be32s(f, &s->mac_reg[TOTH]); + qemu_put_be32s(f, &s->mac_reg[TOTL]); + qemu_put_be32s(f, &s->mac_reg[TPR]); + qemu_put_be32s(f, &s->mac_reg[TPT]); + qemu_put_be32s(f, &s->mac_reg[TXDCTL]); + qemu_put_be32s(f, &s->mac_reg[WUFC]); + qemu_put_be32s(f, &s->mac_reg[VET]); for (i = 0; i < MAC_NARRAYS; i++) for (j = 0; j < mac_regarraystosave[i].size; j++) qemu_put_be32s(f, @@ -975,8 +1001,43 @@ nic_load(QEMUFile *f, void *opaque, int version_id) qemu_get_be16s(f, s->eeprom_data + i); for (i = 0; i < 0x20; i++) qemu_get_be16s(f, s->phy_reg + i); - for (i = 0; i < MAC_NSAVE; i++) - qemu_get_be32s(f, s->mac_reg + mac_regtosave[i]); + qemu_get_be32s(f, &s->mac_reg[CTRL]); + qemu_get_be32s(f, &s->mac_reg[EECD]); + qemu_get_be32s(f, &s->mac_reg[EERD]); + qemu_get_be32s(f, &s->mac_reg[GPRC]); + qemu_get_be32s(f, &s->mac_reg[GPTC]); + qemu_get_be32s(f, &s->mac_reg[ICR]); + qemu_get_be32s(f, &s->mac_reg[ICS]); + qemu_get_be32s(f, &s->mac_reg[IMC]); + qemu_get_be32s(f, &s->mac_reg[IMS]); + qemu_get_be32s(f, &s->mac_reg[LEDCTL]); + qemu_get_be32s(f, &s->mac_reg[MANC]); + qemu_get_be32s(f, &s->mac_reg[MDIC]); + qemu_get_be32s(f, &s->mac_reg[MPC]); + qemu_get_be32s(f, &s->mac_reg[PBA]); + qemu_get_be32s(f, &s->mac_reg[RCTL]); + qemu_get_be32s(f, &s->mac_reg[RDBAH]); + qemu_get_be32s(f, &s->mac_reg[RDBAL]); + qemu_get_be32s(f, &s->mac_reg[RDH]); + qemu_get_be32s(f, &s->mac_reg[RDLEN]); + qemu_get_be32s(f, &s->mac_reg[RDT]); + qemu_get_be32s(f, &s->mac_reg[STATUS]); + qemu_get_be32s(f, &s->mac_reg[SWSM]); + qemu_get_be32s(f, &s->mac_reg[TCTL]); + qemu_get_be32s(f, &s->mac_reg[TDBAH]); + qemu_get_be32s(f, &s->mac_reg[TDBAL]); + qemu_get_be32s(f, &s->mac_reg[TDH]); + qemu_get_be32s(f, &s->mac_reg[TDLEN]); + qemu_get_be32s(f, &s->mac_reg[TDT]); + qemu_get_be32s(f, &s->mac_reg[TORH]); + qemu_get_be32s(f, &s->mac_reg[TORL]); + qemu_get_be32s(f, &s->mac_reg[TOTH]); + qemu_get_be32s(f, &s->mac_reg[TOTL]); + qemu_get_be32s(f, &s->mac_reg[TPR]); + qemu_get_be32s(f, &s->mac_reg[TPT]); + qemu_get_be32s(f, &s->mac_reg[TXDCTL]); + qemu_get_be32s(f, &s->mac_reg[WUFC]); + qemu_get_be32s(f, &s->mac_reg[VET]); for (i = 0; i < MAC_NARRAYS; i++) for (j = 0; j < mac_regarraystosave[i].size; j++) qemu_get_be32s(f,