Lines Matching refs:block
35 struct ct_vm_block *block = NULL, *entry; in get_vm_block() local
58 block = entry; in get_vm_block()
62 block = kzalloc(sizeof(*block), GFP_KERNEL); in get_vm_block()
63 if (!block) in get_vm_block()
66 block->addr = entry->addr; in get_vm_block()
67 block->size = size; in get_vm_block()
68 list_add(&block->list, &vm->used); in get_vm_block()
75 return block; in get_vm_block()
78 static void put_vm_block(struct ct_vm *vm, struct ct_vm_block *block) in put_vm_block() argument
83 block->size = CT_PAGE_ALIGN(block->size); in put_vm_block()
86 list_del(&block->list); in put_vm_block()
87 vm->size += block->size; in put_vm_block()
91 if (entry->addr >= (block->addr + block->size)) in put_vm_block()
95 list_add_tail(&block->list, &vm->unused); in put_vm_block()
96 entry = block; in put_vm_block()
98 if ((block->addr + block->size) == entry->addr) { in put_vm_block()
99 entry->addr = block->addr; in put_vm_block()
100 entry->size += block->size; in put_vm_block()
101 kfree(block); in put_vm_block()
103 __list_add(&block->list, pos->prev, pos); in put_vm_block()
104 entry = block; in put_vm_block()
129 struct ct_vm_block *block; in ct_vm_map() local
135 block = get_vm_block(vm, size, atc); in ct_vm_map()
136 if (block == NULL) { in ct_vm_map()
143 pte_start = (block->addr >> CT_PAGE_SHIFT); in ct_vm_map()
144 pages = block->size >> CT_PAGE_SHIFT; in ct_vm_map()
151 block->size = size; in ct_vm_map()
152 return block; in ct_vm_map()
155 static void ct_vm_unmap(struct ct_vm *vm, struct ct_vm_block *block) in ct_vm_unmap() argument
158 put_vm_block(vm, block); in ct_vm_unmap()
179 struct ct_vm_block *block; in ct_vm_create() local
209 block = kzalloc(sizeof(*block), GFP_KERNEL); in ct_vm_create()
210 if (NULL != block) { in ct_vm_create()
211 block->addr = 0; in ct_vm_create()
212 block->size = vm->size; in ct_vm_create()
213 list_add(&block->list, &vm->unused); in ct_vm_create()