Lines Matching refs:desc
61 static void *mem_alloc_tmp(struct boot_mem_desc *desc, size_t len, size_t align) in mem_alloc_tmp() argument
68 assert(desc && desc->mem_start && desc->mem_end); in mem_alloc_tmp()
70 if (SUB_OVERFLOW(desc->mem_end, len, &va)) in mem_alloc_tmp()
73 if (va < desc->mem_start) in mem_alloc_tmp()
75 desc->mem_end = va; in mem_alloc_tmp()
82 static void add_padding(struct boot_mem_desc *desc, vaddr_t va) in add_padding() argument
85 vaddr_t start = desc->mem_start; in add_padding()
97 pad->next = desc->padding; in add_padding()
98 desc->padding = pad; in add_padding()
102 static void *mem_alloc(struct boot_mem_desc *desc, size_t len, size_t align) in mem_alloc() argument
111 assert(desc && desc->mem_start && desc->mem_end); in mem_alloc()
113 va = ROUNDUP2(desc->mem_start, align); in mem_alloc()
116 if (ve > desc->mem_end) in mem_alloc()
118 add_padding(desc, va); in mem_alloc()
119 desc->mem_start = ve; in mem_alloc()
128 struct boot_mem_desc desc = { in boot_mem_init() local
135 boot_mem_desc = mem_alloc_tmp(&desc, sizeof(desc), alignof(desc)); in boot_mem_init()
136 *boot_mem_desc = desc; in boot_mem_init()