[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 07/10] rangeset: introduce rangeset_merge
This new helper will merge two rangesets. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: George Dunlap <George.Dunlap@xxxxxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Julien Grall <julien.grall@xxxxxxx> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> Cc: Wei Liu <wei.liu2@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 bb68ce62e4..195347669e 100644 --- a/xen/common/rangeset.c +++ b/xen/common/rangeset.c @@ -378,6 +378,18 @@ int rangeset_consume_ranges(struct rangeset *r, return rc; } +static int merge(unsigned long s, unsigned long e, void *data) +{ + struct rangeset *r = data; + + return rangeset_add_range(r, s, e); +} + +int rangeset_merge(struct rangeset *r1, struct rangeset *r2) +{ + return rangeset_report_ranges(r2, 0, ~0ul, merge, 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 583b72bb0c..0c05c2fd4e 100644 --- a/xen/include/xen/rangeset.h +++ b/xen/include/xen/rangeset.h @@ -80,6 +80,9 @@ int rangeset_consume_ranges(struct rangeset *r, void *, unsigned long *c), void *ctxt); +/* Merge rangeset r2 into rangeset r1. */ +int __must_check rangeset_merge(struct rangeset *r1, struct rangeset *r2); + /* Add/remove/query a single number. */ int __must_check rangeset_add_singleton( struct rangeset *r, unsigned long s); -- 2.17.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |