127811d8cabe56e0c3622251b049086f49face4ffYinghai Lu#ifndef _LINUX_RANGE_H 227811d8cabe56e0c3622251b049086f49face4ffYinghai Lu#define _LINUX_RANGE_H 327811d8cabe56e0c3622251b049086f49face4ffYinghai Lu 427811d8cabe56e0c3622251b049086f49face4ffYinghai Lustruct range { 527811d8cabe56e0c3622251b049086f49face4ffYinghai Lu u64 start; 627811d8cabe56e0c3622251b049086f49face4ffYinghai Lu u64 end; 727811d8cabe56e0c3622251b049086f49face4ffYinghai Lu}; 827811d8cabe56e0c3622251b049086f49face4ffYinghai Lu 927811d8cabe56e0c3622251b049086f49face4ffYinghai Luint add_range(struct range *range, int az, int nr_range, 1027811d8cabe56e0c3622251b049086f49face4ffYinghai Lu u64 start, u64 end); 1127811d8cabe56e0c3622251b049086f49face4ffYinghai Lu 1227811d8cabe56e0c3622251b049086f49face4ffYinghai Lu 1327811d8cabe56e0c3622251b049086f49face4ffYinghai Luint add_range_with_merge(struct range *range, int az, int nr_range, 1427811d8cabe56e0c3622251b049086f49face4ffYinghai Lu u64 start, u64 end); 1527811d8cabe56e0c3622251b049086f49face4ffYinghai Lu 1627811d8cabe56e0c3622251b049086f49face4ffYinghai Luvoid subtract_range(struct range *range, int az, u64 start, u64 end); 1727811d8cabe56e0c3622251b049086f49face4ffYinghai Lu 1827811d8cabe56e0c3622251b049086f49face4ffYinghai Luint clean_sort_range(struct range *range, int az); 1927811d8cabe56e0c3622251b049086f49face4ffYinghai Lu 2027811d8cabe56e0c3622251b049086f49face4ffYinghai Luvoid sort_range(struct range *range, int nr_range); 2127811d8cabe56e0c3622251b049086f49face4ffYinghai Lu 229ad3f2c7c69659c343843393944d739fec1f2e73Yinghai Lu#define MAX_RESOURCE ((resource_size_t)~0) 239ad3f2c7c69659c343843393944d739fec1f2e73Yinghai Lustatic inline resource_size_t cap_resource(u64 val) 249ad3f2c7c69659c343843393944d739fec1f2e73Yinghai Lu{ 259ad3f2c7c69659c343843393944d739fec1f2e73Yinghai Lu if (val > MAX_RESOURCE) 269ad3f2c7c69659c343843393944d739fec1f2e73Yinghai Lu return MAX_RESOURCE; 279ad3f2c7c69659c343843393944d739fec1f2e73Yinghai Lu 289ad3f2c7c69659c343843393944d739fec1f2e73Yinghai Lu return val; 299ad3f2c7c69659c343843393944d739fec1f2e73Yinghai Lu} 3027811d8cabe56e0c3622251b049086f49face4ffYinghai Lu#endif 31