37 re->
begin = incl_begin;
38 re->
end = excl_end - 1;
67 unsigned long new_tag)
82 #define memranges_each_entry(r, ranges) \
83 for (r = (ranges)->entries; r != NULL; r = r->next)
90 size_t num_free,
unsigned char align);
97 unsigned long mask,
unsigned long match,
98 unsigned long tag,
unsigned char align);
102 #define memranges_init_empty(__ranges, __free, __num_free) \
103 memranges_init_empty_with_alignment(__ranges, __free, __num_free, 12);
108 #define memranges_init(__ranges, __mask, __match, __tag) \
109 memranges_init_with_alignment(__ranges, __mask, __match, __tag, 12);
123 unsigned long mask,
unsigned long match,
135 unsigned long mask,
unsigned long match,
157 unsigned long new_tag);
173 unsigned char align,
unsigned long tag,
resource_t *stolen_base);
int(* memrange_filter_t)(struct device *dev, struct resource *res)
bool memranges_steal(struct memranges *ranges, resource_t limit, resource_t size, unsigned char align, unsigned long tag, resource_t *stolen_base)
static resource_t range_entry_base(const struct range_entry *r)
void memranges_fill_holes_up_to(struct memranges *ranges, resource_t limit, unsigned long tag)
static void range_entry_update_tag(struct range_entry *r, unsigned long new_tag)
void memranges_init_with_alignment(struct memranges *ranges, unsigned long mask, unsigned long match, unsigned long tag, unsigned char align)
static resource_t range_entry_end(const struct range_entry *r)
static bool memranges_is_empty(const struct memranges *ranges)
static void range_entry_init(struct range_entry *re, resource_t incl_begin, resource_t excl_end, unsigned long tag)
void memranges_clone(struct memranges *newranges, struct memranges *oldranges)
void memranges_create_hole(struct memranges *ranges, resource_t base, resource_t size)
void memranges_update_tag(struct memranges *ranges, unsigned long old_tag, unsigned long new_tag)
static unsigned long range_entry_tag(const struct range_entry *r)
void memranges_teardown(struct memranges *ranges)
void memranges_insert(struct memranges *ranges, resource_t base, resource_t size, unsigned long tag)
void memranges_init_empty_with_alignment(struct memranges *ranges, struct range_entry *free, size_t num_free, unsigned char align)
struct range_entry * memranges_next_entry(struct memranges *ranges, const struct range_entry *r)
static resource_t range_entry_size(const struct range_entry *r)
void memranges_add_resources(struct memranges *ranges, unsigned long mask, unsigned long match, unsigned long tag)
void memranges_add_resources_filter(struct memranges *ranges, unsigned long mask, unsigned long match, unsigned long tag, memrange_filter_t filter)
struct range_entry * free_list
struct range_entry * entries
struct range_entry * next