[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] rangeset: introduce rangeset_subtract
commit 31703c5d7a5f608e161037050f69f46e0542b16a Author: Stewart Hildebrand <stewart.hildebrand@xxxxxxx> AuthorDate: Thu May 8 09:20:33 2025 -0400 Commit: Stefano Stabellini <stefano.stabellini@xxxxxxx> CommitDate: Thu May 8 16:44:35 2025 -0700 rangeset: introduce rangeset_subtract Introduce rangeset_subtract() to remove regions in r2 from r1. Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> --- xen/common/rangeset.c | 12 ++++++++++++ xen/include/xen/rangeset.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/xen/common/rangeset.c b/xen/common/rangeset.c index e758710390..b9e8912fb1 100644 --- a/xen/common/rangeset.c +++ b/xen/common/rangeset.c @@ -397,6 +397,18 @@ int rangeset_merge(struct rangeset *r1, struct rangeset *r2) return rangeset_report_ranges(r2, 0, ~0UL, merge, r1); } +static int cf_check subtract(unsigned long s, unsigned long e, void *data) +{ + struct rangeset *r = data; + + return rangeset_remove_range(r, s, e); +} + +int rangeset_subtract(struct rangeset *r1, struct rangeset *r2) +{ + return rangeset_report_ranges(r2, 0, ~0UL, subtract, r1); +} + int rangeset_add_singleton( struct rangeset *r, unsigned long s) { diff --git a/xen/include/xen/rangeset.h b/xen/include/xen/rangeset.h index 96c9180825..817505badf 100644 --- a/xen/include/xen/rangeset.h +++ b/xen/include/xen/rangeset.h @@ -85,6 +85,9 @@ int rangeset_consume_ranges(struct rangeset *r, /* Merge rangeset r2 into rangeset r1. */ int __must_check rangeset_merge(struct rangeset *r1, struct rangeset *r2); +/* Subtract rangeset r2 from rangeset r1. */ +int __must_check rangeset_subtract(struct rangeset *r1, struct rangeset *r2); + /* Add/remove/query a single number. */ int __must_check rangeset_add_singleton( struct rangeset *r, unsigned long s); -- generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |