From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eduard - Gabriel Munteanu Subject: [PATCH 1/7] pci: add range_covers_range() Date: Sun, 15 Aug 2010 22:27:16 +0300 Message-ID: <1281900442-29971-2-git-send-email-eduard.munteanu@linux360.ro> References: <1281900442-29971-1-git-send-email-eduard.munteanu@linux360.ro> Cc: paul@codesourcery.com, blauwirbel@gmail.com, anthony@codemonkey.ws, avi@redhat.com, kvm@vger.kernel.org, qemu-devel@nongnu.org, Eduard - Gabriel Munteanu To: joro@8bytes.org Return-path: Received: from mail-fx0-f46.google.com ([209.85.161.46]:52742 "EHLO mail-fx0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750933Ab0HOTah (ORCPT ); Sun, 15 Aug 2010 15:30:37 -0400 Received: by fxm13 with SMTP id 13so2628988fxm.19 for ; Sun, 15 Aug 2010 12:30:36 -0700 (PDT) In-Reply-To: <1281900442-29971-1-git-send-email-eduard.munteanu@linux360.ro> Sender: kvm-owner@vger.kernel.org List-ID: This helper function allows map invalidation code to determine which maps must be invalidated. Signed-off-by: Eduard - Gabriel Munteanu --- hw/pci.h | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/hw/pci.h b/hw/pci.h index 4bd8a1a..5a6cdb5 100644 --- a/hw/pci.h +++ b/hw/pci.h @@ -419,6 +419,16 @@ static inline int range_covers_byte(uint64_t offset, uint64_t len, return offset <= byte && byte <= range_get_last(offset, len); } +/* Check whether a given range completely covers another. */ +static inline int range_covers_range(uint64_t first_big, uint64_t len_big, + uint64_t first_small, uint64_t len_small) +{ + uint64_t last_big = range_get_last(first_big, len_big); + uint64_t last_small = range_get_last(first_small, len_small); + + return first_big <= first_small && last_small <= last_big; +} + /* Check whether 2 given ranges overlap. * Undefined if ranges that wrap around 0. */ static inline int ranges_overlap(uint64_t first1, uint64_t len1, -- 1.7.1