1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_RANGE_H
3 #define _LINUX_RANGE_H
4
5 struct range {
6 u64 start;
7 u64 end;
8 };
9
10 int add_range(struct range *range, int az, int nr_range,
11 u64 start, u64 end);
12
13
14 int add_range_with_merge(struct range *range, int az, int nr_range,
15 u64 start, u64 end);
16
17 void subtract_range(struct range *range, int az, u64 start, u64 end);
18
19 int clean_sort_range(struct range *range, int az);
20
21 void sort_range(struct range *range, int nr_range);
22
23 #define MAX_RESOURCE ((resource_size_t)~0)
cap_resource(u64 val)24 static inline resource_size_t cap_resource(u64 val)
25 {
26 if (val > MAX_RESOURCE)
27 return MAX_RESOURCE;
28
29 return val;
30 }
31 #endif
32