From patchwork Wed Jun 21 09:34:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 9801335 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 411E66038C for ; Wed, 21 Jun 2017 09:36:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2EB801FF12 for ; Wed, 21 Jun 2017 09:36:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 236F326538; Wed, 21 Jun 2017 09:36:18 +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 57920204C1 for ; Wed, 21 Jun 2017 09:36:17 +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 1dNc1d-0008Nu-GX; Wed, 21 Jun 2017 09:34:13 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dNc1c-0008NL-0p for xen-devel@lists.xenproject.org; Wed, 21 Jun 2017 09:34:12 +0000 Received: from [85.158.143.35] by server-8.bemta-6.messagelabs.com id DB/09-03696-39D3A495; Wed, 21 Jun 2017 09:34:11 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrHIsWRWlGSWpSXmKPExsXS6fjDS3eSrVe kwZefKhbft0xmcmD0OPzhCksAYxRrZl5SfkUCa8a5ztuMBc/DKyZOO8XWwNji3sXIySEkkCfx 4/8adhCbV8BOYtrOBywgtoSAocTphTfBbBYBVYlLjzYwgthsAuoSbc+2s3YxcnCICBhInDua1 MXIxcEssJZJ4uKsu0wgNcIC7hIvP2xlhZhfJLH1wGqw+ZwC9hJzlr1mA+nlFRCU+LtDGCTMDL T21P7dzBMYeWYhZGYhyUDYWhIPf91igbC1JZYtfM0MUs4sIC2x/B8HRNhKYsvKe2hKQGxXiYm 7rrAsYORYxahRnFpUllqka2iml1SUmZ5RkpuYmaNraGCml5taXJyYnpqTmFSsl5yfu4kRGK4M QLCD8f7GgEOMkhxMSqK8F2S9IoX4kvJTKjMSizPii0pzUosPMcpwcChJ8N61BsoJFqWmp1akZ eYAIwcmLcHBoyTCu8wcKM1bXJCYW5yZDpE6xagoJc4raAOUEABJZJTmwbXBovUSo6yUMC8j0C FCPAWpRbmZJajyrxjFORiVhHnfWQFN4cnMK4Gb/gpoMRPQ4hdHPEAWlyQipKQaGNWsjpoce6+ h0xS9Ysrze3HnJt2rEH+qslYqSjryiX/5FJ5LvfbyHfYydg8Wcit6/PB7Gip9N9Xla3XAzXuK CYFXLnIZ3C0LM85QzV6nd2JzQ9S7onZpw5fp79aF776eW+/JobmPz7h16okJDX0CqzRX61S7C D9sqj/1Ibx/QUyxjNIel8ydSizFGYmGWsxFxYkA7w6MBdECAAA= X-Env-Sender: JBeulich@suse.com X-Msg-Ref: server-4.tower-21.messagelabs.com!1498037648!68752244!1 X-Originating-IP: [137.65.248.74] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 64343 invoked from network); 21 Jun 2017 09:34:10 -0000 Received: from prv-mh.provo.novell.com (HELO prv-mh.provo.novell.com) (137.65.248.74) by server-4.tower-21.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 21 Jun 2017 09:34:10 -0000 Received: from INET-PRV-MTA by prv-mh.provo.novell.com with Novell_GroupWise; Wed, 21 Jun 2017 03:34:08 -0600 Message-Id: <594A59AF020000780016505A@prv-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 14.2.2 Date: Wed, 21 Jun 2017 03:34:07 -0600 From: "Jan Beulich" To: "xen-devel" References: <594A57B10200007800165012@prv-mh.provo.novell.com> <594A57B10200007800165012@prv-mh.provo.novell.com> In-Reply-To: <594A57B10200007800165012@prv-mh.provo.novell.com> Mime-Version: 1.0 Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan Subject: [Xen-devel] [PATCH 05/11] evtchn: convert evtchn_port_is_*() to plain bool 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 ... at once reducing overall source size by combining some statements and constifying a few pointers. Signed-off-by: Jan Beulich evtchn: convert evtchn_port_is_*() to plain bool ... at once reducing overall source size by combining some statements and constifying a few pointers. Signed-off-by: Jan Beulich --- a/xen/common/event_2l.c +++ b/xen/common/event_2l.c @@ -61,7 +61,7 @@ static void evtchn_2l_unmask(struct doma } } -static bool_t evtchn_2l_is_pending(struct domain *d, evtchn_port_t port) +static bool evtchn_2l_is_pending(const struct domain *d, evtchn_port_t port) { unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); @@ -69,7 +69,7 @@ static bool_t evtchn_2l_is_pending(struc return port < max_ports && test_bit(port, &shared_info(d, evtchn_pending)); } -static bool_t evtchn_2l_is_masked(struct domain *d, evtchn_port_t port) +static bool evtchn_2l_is_masked(const struct domain *d, evtchn_port_t port) { unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); --- a/xen/common/event_fifo.c +++ b/xen/common/event_fifo.c @@ -19,7 +19,7 @@ #include -static inline event_word_t *evtchn_fifo_word_from_port(struct domain *d, +static inline event_word_t *evtchn_fifo_word_from_port(const struct domain *d, unsigned int port) { unsigned int p, w; @@ -293,37 +293,25 @@ static void evtchn_fifo_unmask(struct do evtchn_fifo_set_pending(v, evtchn); } -static bool_t evtchn_fifo_is_pending(struct domain *d, evtchn_port_t port) +static bool evtchn_fifo_is_pending(const struct domain *d, evtchn_port_t port) { - event_word_t *word; - - word = evtchn_fifo_word_from_port(d, port); - if ( unlikely(!word) ) - return 0; + const event_word_t *word = evtchn_fifo_word_from_port(d, port); - return test_bit(EVTCHN_FIFO_PENDING, word); + return word && test_bit(EVTCHN_FIFO_PENDING, word); } -static bool_t evtchn_fifo_is_masked(struct domain *d, evtchn_port_t port) +static bool_t evtchn_fifo_is_masked(const struct domain *d, evtchn_port_t port) { - event_word_t *word; + const event_word_t *word = evtchn_fifo_word_from_port(d, port); - word = evtchn_fifo_word_from_port(d, port); - if ( unlikely(!word) ) - return 1; - - return test_bit(EVTCHN_FIFO_MASKED, word); + return !word || test_bit(EVTCHN_FIFO_MASKED, word); } -static bool_t evtchn_fifo_is_busy(struct domain *d, evtchn_port_t port) +static bool_t evtchn_fifo_is_busy(const struct domain *d, evtchn_port_t port) { - event_word_t *word; - - word = evtchn_fifo_word_from_port(d, port); - if ( unlikely(!word) ) - return 0; + const event_word_t *word = evtchn_fifo_word_from_port(d, port); - return test_bit(EVTCHN_FIFO_LINKED, word); + return word && test_bit(EVTCHN_FIFO_LINKED, word); } static int evtchn_fifo_set_priority(struct domain *d, struct evtchn *evtchn, --- a/xen/include/xen/event.h +++ b/xen/include/xen/event.h @@ -137,13 +137,13 @@ struct evtchn_port_ops { void (*set_pending)(struct vcpu *v, struct evtchn *evtchn); void (*clear_pending)(struct domain *d, struct evtchn *evtchn); void (*unmask)(struct domain *d, struct evtchn *evtchn); - bool_t (*is_pending)(struct domain *d, evtchn_port_t port); - bool_t (*is_masked)(struct domain *d, evtchn_port_t port); + bool (*is_pending)(const struct domain *d, evtchn_port_t port); + bool (*is_masked)(const struct domain *d, evtchn_port_t port); /* * Is the port unavailable because it's still being cleaned up * after being closed? */ - bool_t (*is_busy)(struct domain *d, evtchn_port_t port); + bool (*is_busy)(const struct domain *d, evtchn_port_t port); int (*set_priority)(struct domain *d, struct evtchn *evtchn, unsigned int priority); void (*print_state)(struct domain *d, const struct evtchn *evtchn); @@ -174,23 +174,23 @@ static inline void evtchn_port_unmask(st d->evtchn_port_ops->unmask(d, evtchn); } -static inline bool_t evtchn_port_is_pending(struct domain *d, - evtchn_port_t port) +static inline bool evtchn_port_is_pending(const struct domain *d, + evtchn_port_t port) { return d->evtchn_port_ops->is_pending(d, port); } -static inline bool_t evtchn_port_is_masked(struct domain *d, - evtchn_port_t port) +static inline bool evtchn_port_is_masked(const struct domain *d, + evtchn_port_t port) { return d->evtchn_port_ops->is_masked(d, port); } -static inline bool_t evtchn_port_is_busy(struct domain *d, evtchn_port_t port) +static inline bool evtchn_port_is_busy(const struct domain *d, + evtchn_port_t port) { - if ( d->evtchn_port_ops->is_busy ) - return d->evtchn_port_ops->is_busy(d, port); - return 0; + return d->evtchn_port_ops->is_busy && + d->evtchn_port_ops->is_busy(d, port); } static inline int evtchn_port_set_priority(struct domain *d, Reviewed-by: Andrew Cooper --- a/xen/common/event_2l.c +++ b/xen/common/event_2l.c @@ -61,7 +61,7 @@ static void evtchn_2l_unmask(struct doma } } -static bool_t evtchn_2l_is_pending(struct domain *d, evtchn_port_t port) +static bool evtchn_2l_is_pending(const struct domain *d, evtchn_port_t port) { unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); @@ -69,7 +69,7 @@ static bool_t evtchn_2l_is_pending(struc return port < max_ports && test_bit(port, &shared_info(d, evtchn_pending)); } -static bool_t evtchn_2l_is_masked(struct domain *d, evtchn_port_t port) +static bool evtchn_2l_is_masked(const struct domain *d, evtchn_port_t port) { unsigned int max_ports = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); --- a/xen/common/event_fifo.c +++ b/xen/common/event_fifo.c @@ -19,7 +19,7 @@ #include -static inline event_word_t *evtchn_fifo_word_from_port(struct domain *d, +static inline event_word_t *evtchn_fifo_word_from_port(const struct domain *d, unsigned int port) { unsigned int p, w; @@ -293,37 +293,25 @@ static void evtchn_fifo_unmask(struct do evtchn_fifo_set_pending(v, evtchn); } -static bool_t evtchn_fifo_is_pending(struct domain *d, evtchn_port_t port) +static bool evtchn_fifo_is_pending(const struct domain *d, evtchn_port_t port) { - event_word_t *word; - - word = evtchn_fifo_word_from_port(d, port); - if ( unlikely(!word) ) - return 0; + const event_word_t *word = evtchn_fifo_word_from_port(d, port); - return test_bit(EVTCHN_FIFO_PENDING, word); + return word && test_bit(EVTCHN_FIFO_PENDING, word); } -static bool_t evtchn_fifo_is_masked(struct domain *d, evtchn_port_t port) +static bool_t evtchn_fifo_is_masked(const struct domain *d, evtchn_port_t port) { - event_word_t *word; + const event_word_t *word = evtchn_fifo_word_from_port(d, port); - word = evtchn_fifo_word_from_port(d, port); - if ( unlikely(!word) ) - return 1; - - return test_bit(EVTCHN_FIFO_MASKED, word); + return !word || test_bit(EVTCHN_FIFO_MASKED, word); } -static bool_t evtchn_fifo_is_busy(struct domain *d, evtchn_port_t port) +static bool_t evtchn_fifo_is_busy(const struct domain *d, evtchn_port_t port) { - event_word_t *word; - - word = evtchn_fifo_word_from_port(d, port); - if ( unlikely(!word) ) - return 0; + const event_word_t *word = evtchn_fifo_word_from_port(d, port); - return test_bit(EVTCHN_FIFO_LINKED, word); + return word && test_bit(EVTCHN_FIFO_LINKED, word); } static int evtchn_fifo_set_priority(struct domain *d, struct evtchn *evtchn, --- a/xen/include/xen/event.h +++ b/xen/include/xen/event.h @@ -137,13 +137,13 @@ struct evtchn_port_ops { void (*set_pending)(struct vcpu *v, struct evtchn *evtchn); void (*clear_pending)(struct domain *d, struct evtchn *evtchn); void (*unmask)(struct domain *d, struct evtchn *evtchn); - bool_t (*is_pending)(struct domain *d, evtchn_port_t port); - bool_t (*is_masked)(struct domain *d, evtchn_port_t port); + bool (*is_pending)(const struct domain *d, evtchn_port_t port); + bool (*is_masked)(const struct domain *d, evtchn_port_t port); /* * Is the port unavailable because it's still being cleaned up * after being closed? */ - bool_t (*is_busy)(struct domain *d, evtchn_port_t port); + bool (*is_busy)(const struct domain *d, evtchn_port_t port); int (*set_priority)(struct domain *d, struct evtchn *evtchn, unsigned int priority); void (*print_state)(struct domain *d, const struct evtchn *evtchn); @@ -174,23 +174,23 @@ static inline void evtchn_port_unmask(st d->evtchn_port_ops->unmask(d, evtchn); } -static inline bool_t evtchn_port_is_pending(struct domain *d, - evtchn_port_t port) +static inline bool evtchn_port_is_pending(const struct domain *d, + evtchn_port_t port) { return d->evtchn_port_ops->is_pending(d, port); } -static inline bool_t evtchn_port_is_masked(struct domain *d, - evtchn_port_t port) +static inline bool evtchn_port_is_masked(const struct domain *d, + evtchn_port_t port) { return d->evtchn_port_ops->is_masked(d, port); } -static inline bool_t evtchn_port_is_busy(struct domain *d, evtchn_port_t port) +static inline bool evtchn_port_is_busy(const struct domain *d, + evtchn_port_t port) { - if ( d->evtchn_port_ops->is_busy ) - return d->evtchn_port_ops->is_busy(d, port); - return 0; + return d->evtchn_port_ops->is_busy && + d->evtchn_port_ops->is_busy(d, port); } static inline int evtchn_port_set_priority(struct domain *d,