Merge tag 'nfs-for-5.9-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[linux-2.6-microblaze.git] / include / linux / range.h
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)
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