Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _LINUX_RANGE_H
0003 #define _LINUX_RANGE_H
0004 #include <linux/types.h>
0005 
0006 struct range {
0007     u64   start;
0008     u64   end;
0009 };
0010 
0011 static inline u64 range_len(const struct range *range)
0012 {
0013     return range->end - range->start + 1;
0014 }
0015 
0016 int add_range(struct range *range, int az, int nr_range,
0017         u64 start, u64 end);
0018 
0019 
0020 int add_range_with_merge(struct range *range, int az, int nr_range,
0021                 u64 start, u64 end);
0022 
0023 void subtract_range(struct range *range, int az, u64 start, u64 end);
0024 
0025 int clean_sort_range(struct range *range, int az);
0026 
0027 void sort_range(struct range *range, int nr_range);
0028 
0029 #define MAX_RESOURCE ((resource_size_t)~0)
0030 static inline resource_size_t cap_resource(u64 val)
0031 {
0032     if (val > MAX_RESOURCE)
0033         return MAX_RESOURCE;
0034 
0035     return val;
0036 }
0037 #endif