From patchwork Wed Nov 30 13:50:24 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 9454381 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3D6856071E for ; Wed, 30 Nov 2016 13:52:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2FE60219AC for ; Wed, 30 Nov 2016 13:52:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 24C892842F; Wed, 30 Nov 2016 13:52:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B8FFF219AC for ; Wed, 30 Nov 2016 13:52:55 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cC5Hf-0000Rp-1O; Wed, 30 Nov 2016 13:50:51 +0000 Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cC5Hd-0000QP-FW for xen-devel@lists.xen.org; Wed, 30 Nov 2016 13:50:49 +0000 Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id EC/BE-30393-839DE385; Wed, 30 Nov 2016 13:50:48 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphkeJIrShJLcpLzFFi42JxWrohUtf8pl2 EQXuLpsWSj4tZHBg9ju7+zRTAGMWamZeUX5HAmtG87zlLQbtixb8rJ5kbGN9LdDFyckgI+Ev0 T9/KDGKzCehL7H7xiQnEFhFQlzjdcZEVxGYWKJfY23SJDcQWFvCW+H+0jxHEZhFQldh1Yj9YL 6+Ah8Tkpo3sEDPlJM4f/wkW5xTwlDjV2g40h4NDCKjmxVNOkLCQgJrEtf5L7BCtghInZz5hgV glIXHwxQvmCYy8s5CkZiFJLWBkWsWoUZxaVJZapGtkpJdUlJmeUZKbmJmja2hgqpebWlycmJ6 ak5hUrJecn7uJERg69QwMjDsY97T7HWKU5GBSEuXl67SLEOJLyk+pzEgszogvKs1JLT7EKMPB oSTBe/06UE6wKDU9tSItMwcYxDBpCQ4eJRHei9eA0rzFBYm5xZnpEKlTjIpS4ry3QfoEQBIZp XlwbbDIucQoKyXMy8jAwCDEU5BalJtZgir/ilGcg1FJmHctyBSezLwSuOmvgBYzAS1++9oaZH FJIkJKqoHRv+7qzzUn/jtevXLkTueBz9/OX8+Rdnm3/qAvQ0Bvb+vsiivqhst27Fk222TVUQH 2+E8HVCYalyjuan6san3btFLBNs5kyvOrjksLXwSevBB+rFK6qnBHx4n/KrVFaf/ll3Qbnjfe HrC+zVjo/ru8dzMmff89py+TZa/mo2sKvGsV/9zJrnoir8RSnJFoqMVcVJwIADqfKYSXAgAA X-Env-Sender: prvs=135e2d9de=Andrew.Cooper3@citrix.com X-Msg-Ref: server-11.tower-206.messagelabs.com!1480513842!60899373!3 X-Originating-IP: [66.165.176.89] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n, received_headers: No Received headers X-StarScan-Received: X-StarScan-Version: 9.0.16; banners=-,-,- X-VirusChecked: Checked Received: (qmail 19880 invoked from network); 30 Nov 2016 13:50:46 -0000 Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89) by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP; 30 Nov 2016 13:50:46 -0000 X-IronPort-AV: E=Sophos;i="5.31,574,1473120000"; d="scan'208";a="392225014" From: Andrew Cooper To: Xen-devel Date: Wed, 30 Nov 2016 13:50:24 +0000 Message-ID: <1480513841-7565-8-git-send-email-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1480513841-7565-1-git-send-email-andrew.cooper3@citrix.com> References: <1480513841-7565-1-git-send-email-andrew.cooper3@citrix.com> MIME-Version: 1.0 Cc: Andrew Cooper , Paul Durrant , Jan Beulich Subject: [Xen-devel] [PATCH v3 07/24] x86/emul: Clean up the naming of the retire union X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Rename byte to raw, as the field being a single byte long is an implementation detail. Make the bitfields part of an anonymous struct to remove the .flags qualifier. Change the types of the flags to being booleans, to match their use. No functional change. Signed-off-by: Andrew Cooper Reviewed-by: Paul Durrant Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Paul Durrant v3: * New --- xen/arch/x86/hvm/emulate.c | 6 +++--- xen/arch/x86/x86_emulate/x86_emulate.c | 10 +++++----- xen/arch/x86/x86_emulate/x86_emulate.h | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c index bc259ec..fe62500 100644 --- a/xen/arch/x86/hvm/emulate.c +++ b/xen/arch/x86/hvm/emulate.c @@ -1791,13 +1791,13 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt, new_intr_shadow = hvmemul_ctxt->intr_shadow; /* MOV-SS instruction toggles MOV-SS shadow, else we just clear it. */ - if ( hvmemul_ctxt->ctxt.retire.flags.mov_ss ) + if ( hvmemul_ctxt->ctxt.retire.mov_ss ) new_intr_shadow ^= HVM_INTR_SHADOW_MOV_SS; else new_intr_shadow &= ~HVM_INTR_SHADOW_MOV_SS; /* STI instruction toggles STI shadow, else we just clear it. */ - if ( hvmemul_ctxt->ctxt.retire.flags.sti ) + if ( hvmemul_ctxt->ctxt.retire.sti ) new_intr_shadow ^= HVM_INTR_SHADOW_STI; else new_intr_shadow &= ~HVM_INTR_SHADOW_STI; @@ -1808,7 +1808,7 @@ static int _hvm_emulate_one(struct hvm_emulate_ctxt *hvmemul_ctxt, hvm_funcs.set_interrupt_shadow(curr, new_intr_shadow); } - if ( hvmemul_ctxt->ctxt.retire.flags.hlt && + if ( hvmemul_ctxt->ctxt.retire.hlt && !hvm_local_events_need_delivery(curr) ) { hvm_hlt(regs->eflags); diff --git a/xen/arch/x86/x86_emulate/x86_emulate.c b/xen/arch/x86/x86_emulate/x86_emulate.c index 9c28ed4..416812e 100644 --- a/xen/arch/x86/x86_emulate/x86_emulate.c +++ b/xen/arch/x86/x86_emulate/x86_emulate.c @@ -1905,7 +1905,7 @@ x86_decode( state->eip = ctxt->regs->eip; /* Initialise output state in x86_emulate_ctxt */ - ctxt->retire.byte = 0; + ctxt->retire.raw = 0; op_bytes = def_op_bytes = ad_bytes = def_ad_bytes = ctxt->addr_size/8; if ( op_bytes == 8 ) @@ -2668,7 +2668,7 @@ x86_emulate( case 0x17: /* pop %%ss */ src.val = x86_seg_ss; - ctxt->retire.flags.mov_ss = 1; + ctxt->retire.mov_ss = 1; goto pop_seg; case 0x1e: /* push %%ds */ @@ -2996,7 +2996,7 @@ x86_emulate( if ( (rc = load_seg(seg, src.val, 0, NULL, ctxt, ops)) != 0 ) goto done; if ( seg == x86_seg_ss ) - ctxt->retire.flags.mov_ss = 1; + ctxt->retire.mov_ss = 1; dst.type = OP_NONE; break; @@ -4033,7 +4033,7 @@ x86_emulate( case 0xf4: /* hlt */ generate_exception_if(!mode_ring0(), EXC_GP, 0); - ctxt->retire.flags.hlt = 1; + ctxt->retire.hlt = 1; break; case 0xf5: /* cmc */ @@ -4247,7 +4247,7 @@ x86_emulate( if ( !(_regs.eflags & EFLG_IF) ) { _regs.eflags |= EFLG_IF; - ctxt->retire.flags.sti = 1; + ctxt->retire.sti = 1; } break; diff --git a/xen/arch/x86/x86_emulate/x86_emulate.h b/xen/arch/x86/x86_emulate/x86_emulate.h index b0f0304..ef39601 100644 --- a/xen/arch/x86/x86_emulate/x86_emulate.h +++ b/xen/arch/x86/x86_emulate/x86_emulate.h @@ -468,12 +468,12 @@ struct x86_emulate_ctxt /* Retirement state, set by the emulator (valid only on X86EMUL_OKAY). */ union { + uint8_t raw; struct { - uint8_t hlt:1; /* Instruction HLTed. */ - uint8_t mov_ss:1; /* Instruction sets MOV-SS irq shadow. */ - uint8_t sti:1; /* Instruction sets STI irq shadow. */ - } flags; - uint8_t byte; + bool hlt:1; /* Instruction HLTed. */ + bool mov_ss:1; /* Instruction sets MOV-SS irq shadow. */ + bool sti:1; /* Instruction sets STI irq shadow. */ + }; } retire; };