Lines Matching defs:block
26 * Find or create vm block based on requested @size.
32 struct ct_vm_block *block, *entry;
46 break; /* found a block that is big enough */
58 block = kzalloc(sizeof(*block), GFP_KERNEL);
59 if (!block)
62 block->addr = entry->addr;
63 block->size = size;
64 list_add(&block->list, &vm->used);
69 return block;
72 static void put_vm_block(struct ct_vm *vm, struct ct_vm_block *block)
77 block->size = CT_PAGE_ALIGN(block->size);
80 list_del(&block->list);
81 vm->size += block->size;
85 if (entry->addr >= (block->addr + block->size))
89 list_add_tail(&block->list, &vm->unused);
90 entry = block;
92 if ((block->addr + block->size) == entry->addr) {
93 entry->addr = block->addr;
94 entry->size += block->size;
95 kfree(block);
97 __list_add(&block->list, pos->prev, pos);
98 entry = block;
122 struct ct_vm_block *block;
128 block = get_vm_block(vm, size, atc);
129 if (block == NULL) {
131 "No virtual memory block that is big enough to allocate!\n");
136 pte_start = (block->addr >> CT_PAGE_SHIFT);
137 pages = block->size >> CT_PAGE_SHIFT;
144 block->size = size;
145 return block;
148 static void ct_vm_unmap(struct ct_vm *vm, struct ct_vm_block *block)
151 put_vm_block(vm, block);
168 struct ct_vm_block *block;
198 block = kzalloc(sizeof(*block), GFP_KERNEL);
199 if (NULL != block) {
200 block->addr = 0;
201 block->size = vm->size;
202 list_add(&block->list, &vm->unused);