Lines Matching full:block
28 * Find or create vm block based on requested @size.
34 struct ct_vm_block *block = NULL, *entry; in get_vm_block() local
48 break; /* found a block that is big enough */ in get_vm_block()
57 block = entry; in get_vm_block()
61 block = kzalloc(sizeof(*block), GFP_KERNEL); in get_vm_block()
62 if (!block) in get_vm_block()
65 block->addr = entry->addr; in get_vm_block()
66 block->size = size; in get_vm_block()
67 list_add(&block->list, &vm->used); in get_vm_block()
74 return block; in get_vm_block()
77 static void put_vm_block(struct ct_vm *vm, struct ct_vm_block *block) in put_vm_block() argument
82 block->size = CT_PAGE_ALIGN(block->size); in put_vm_block()
85 list_del(&block->list); in put_vm_block()
86 vm->size += block->size; in put_vm_block()
90 if (entry->addr >= (block->addr + block->size)) in put_vm_block()
94 list_add_tail(&block->list, &vm->unused); in put_vm_block()
95 entry = block; in put_vm_block()
97 if ((block->addr + block->size) == entry->addr) { in put_vm_block()
98 entry->addr = block->addr; in put_vm_block()
99 entry->size += block->size; in put_vm_block()
100 kfree(block); in put_vm_block()
102 __list_add(&block->list, pos->prev, pos); in put_vm_block()
103 entry = block; in put_vm_block()
128 struct ct_vm_block *block; in ct_vm_map() local
133 block = get_vm_block(vm, size); in ct_vm_map()
134 if (block == NULL) { in ct_vm_map()
135 printk(KERN_ERR "ctxfi: No virtual memory block that is big " in ct_vm_map()
141 pte_start = (block->addr >> CT_PAGE_SHIFT); in ct_vm_map()
142 pages = block->size >> CT_PAGE_SHIFT; in ct_vm_map()
149 block->size = size; in ct_vm_map()
150 return block; in ct_vm_map()
153 static void ct_vm_unmap(struct ct_vm *vm, struct ct_vm_block *block) in ct_vm_unmap() argument
156 put_vm_block(vm, block); in ct_vm_unmap()
177 struct ct_vm_block *block; in ct_vm_create() local
207 block = kzalloc(sizeof(*block), GFP_KERNEL); in ct_vm_create()
208 if (NULL != block) { in ct_vm_create()
209 block->addr = 0; in ct_vm_create()
210 block->size = vm->size; in ct_vm_create()
211 list_add(&block->list, &vm->unused); in ct_vm_create()