Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
27811d8c YL |
2 | #ifndef _LINUX_RANGE_H |
3 | #define _LINUX_RANGE_H | |
a4574f63 | 4 | #include <linux/types.h> |
27811d8c YL |
5 | |
6 | struct range { | |
7 | u64 start; | |
8 | u64 end; | |
9 | }; | |
10 | ||
a4574f63 DW |
11 | static inline u64 range_len(const struct range *range) |
12 | { | |
13 | return range->end - range->start + 1; | |
14 | } | |
15 | ||
27811d8c YL |
16 | int add_range(struct range *range, int az, int nr_range, |
17 | u64 start, u64 end); | |
18 | ||
19 | ||
20 | int add_range_with_merge(struct range *range, int az, int nr_range, | |
21 | u64 start, u64 end); | |
22 | ||
23 | void subtract_range(struct range *range, int az, u64 start, u64 end); | |
24 | ||
25 | int clean_sort_range(struct range *range, int az); | |
26 | ||
27 | void sort_range(struct range *range, int nr_range); | |
28 | ||
9ad3f2c7 YL |
29 | #define MAX_RESOURCE ((resource_size_t)~0) |
30 | static inline resource_size_t cap_resource(u64 val) | |
31 | { | |
32 | if (val > MAX_RESOURCE) | |
33 | return MAX_RESOURCE; | |
34 | ||
35 | return val; | |
36 | } | |
27811d8c | 37 | #endif |