Lines Matching refs:blockpool
1094 static void __vxge_hw_blockpool_destroy(struct __vxge_hw_blockpool *blockpool) in __vxge_hw_blockpool_destroy() argument
1099 if (!blockpool) in __vxge_hw_blockpool_destroy()
1102 hldev = blockpool->hldev; in __vxge_hw_blockpool_destroy()
1104 list_for_each_safe(p, n, &blockpool->free_block_list) { in __vxge_hw_blockpool_destroy()
1116 blockpool->pool_size--; in __vxge_hw_blockpool_destroy()
1119 list_for_each_safe(p, n, &blockpool->free_entry_list) { in __vxge_hw_blockpool_destroy()
1132 struct __vxge_hw_blockpool *blockpool, in __vxge_hw_blockpool_create() argument
1144 if (blockpool == NULL) { in __vxge_hw_blockpool_create()
1149 blockpool->hldev = hldev; in __vxge_hw_blockpool_create()
1150 blockpool->block_size = VXGE_HW_BLOCK_SIZE; in __vxge_hw_blockpool_create()
1151 blockpool->pool_size = 0; in __vxge_hw_blockpool_create()
1152 blockpool->pool_max = pool_max; in __vxge_hw_blockpool_create()
1153 blockpool->req_out = 0; in __vxge_hw_blockpool_create()
1155 INIT_LIST_HEAD(&blockpool->free_block_list); in __vxge_hw_blockpool_create()
1156 INIT_LIST_HEAD(&blockpool->free_entry_list); in __vxge_hw_blockpool_create()
1162 __vxge_hw_blockpool_destroy(blockpool); in __vxge_hw_blockpool_create()
1166 list_add(&entry->item, &blockpool->free_entry_list); in __vxge_hw_blockpool_create()
1176 __vxge_hw_blockpool_destroy(blockpool); in __vxge_hw_blockpool_create()
1186 __vxge_hw_blockpool_destroy(blockpool); in __vxge_hw_blockpool_create()
1191 if (!list_empty(&blockpool->free_entry_list)) in __vxge_hw_blockpool_create()
1193 list_first_entry(&blockpool->free_entry_list, in __vxge_hw_blockpool_create()
1209 &blockpool->free_block_list); in __vxge_hw_blockpool_create()
1210 blockpool->pool_size++; in __vxge_hw_blockpool_create()
1212 __vxge_hw_blockpool_destroy(blockpool); in __vxge_hw_blockpool_create()
2256 struct __vxge_hw_blockpool *blockpool; in vxge_hw_blockpool_block_add() local
2260 blockpool = &devh->block_pool; in vxge_hw_blockpool_block_add()
2263 blockpool->req_out--; in vxge_hw_blockpool_block_add()
2272 blockpool->req_out--; in vxge_hw_blockpool_block_add()
2276 if (!list_empty(&blockpool->free_entry_list)) in vxge_hw_blockpool_block_add()
2278 list_first_entry(&blockpool->free_entry_list, in vxge_hw_blockpool_block_add()
2293 list_add(&entry->item, &blockpool->free_block_list); in vxge_hw_blockpool_block_add()
2294 blockpool->pool_size++; in vxge_hw_blockpool_block_add()
2297 blockpool->req_out--; in vxge_hw_blockpool_block_add()
2323 void __vxge_hw_blockpool_blocks_add(struct __vxge_hw_blockpool *blockpool) in __vxge_hw_blockpool_blocks_add() argument
2327 if ((blockpool->pool_size + blockpool->req_out) < in __vxge_hw_blockpool_blocks_add()
2330 blockpool->req_out += nreq; in __vxge_hw_blockpool_blocks_add()
2335 (blockpool->hldev)->pdev, in __vxge_hw_blockpool_blocks_add()
2336 blockpool->hldev, VXGE_HW_BLOCK_SIZE); in __vxge_hw_blockpool_blocks_add()
2348 struct __vxge_hw_blockpool *blockpool; in __vxge_hw_blockpool_malloc() local
2351 blockpool = &devh->block_pool; in __vxge_hw_blockpool_malloc()
2353 if (size != blockpool->block_size) { in __vxge_hw_blockpool_malloc()
2375 if (!list_empty(&blockpool->free_block_list)) in __vxge_hw_blockpool_malloc()
2377 list_first_entry(&blockpool->free_block_list, in __vxge_hw_blockpool_malloc()
2389 &blockpool->free_entry_list); in __vxge_hw_blockpool_malloc()
2390 blockpool->pool_size--; in __vxge_hw_blockpool_malloc()
2394 __vxge_hw_blockpool_blocks_add(blockpool); in __vxge_hw_blockpool_malloc()
2404 __vxge_hw_blockpool_blocks_remove(struct __vxge_hw_blockpool *blockpool) in __vxge_hw_blockpool_blocks_remove() argument
2408 list_for_each_safe(p, n, &blockpool->free_block_list) { in __vxge_hw_blockpool_blocks_remove()
2410 if (blockpool->pool_size < blockpool->pool_max) in __vxge_hw_blockpool_blocks_remove()
2414 (blockpool->hldev)->pdev, in __vxge_hw_blockpool_blocks_remove()
2420 (blockpool->hldev)->pdev, in __vxge_hw_blockpool_blocks_remove()
2426 list_add(p, &blockpool->free_entry_list); in __vxge_hw_blockpool_blocks_remove()
2428 blockpool->pool_size--; in __vxge_hw_blockpool_blocks_remove()
2442 struct __vxge_hw_blockpool *blockpool; in __vxge_hw_blockpool_free() local
2445 blockpool = &devh->block_pool; in __vxge_hw_blockpool_free()
2447 if (size != blockpool->block_size) { in __vxge_hw_blockpool_free()
2453 if (!list_empty(&blockpool->free_entry_list)) in __vxge_hw_blockpool_free()
2455 list_first_entry(&blockpool->free_entry_list, in __vxge_hw_blockpool_free()
2472 &blockpool->free_block_list); in __vxge_hw_blockpool_free()
2473 blockpool->pool_size++; in __vxge_hw_blockpool_free()
2479 __vxge_hw_blockpool_blocks_remove(blockpool); in __vxge_hw_blockpool_free()
4764 struct __vxge_hw_blockpool *blockpool; in __vxge_hw_blockpool_block_allocate() local
4766 blockpool = &devh->block_pool; in __vxge_hw_blockpool_block_allocate()
4768 if (size == blockpool->block_size) { in __vxge_hw_blockpool_block_allocate()
4770 if (!list_empty(&blockpool->free_block_list)) in __vxge_hw_blockpool_block_allocate()
4772 list_first_entry(&blockpool->free_block_list, in __vxge_hw_blockpool_block_allocate()
4778 blockpool->pool_size--; in __vxge_hw_blockpool_block_allocate()
4783 __vxge_hw_blockpool_blocks_add(blockpool); in __vxge_hw_blockpool_block_allocate()
4946 struct __vxge_hw_blockpool *blockpool; in __vxge_hw_blockpool_block_free() local
4948 blockpool = &devh->block_pool; in __vxge_hw_blockpool_block_free()
4950 if (entry->length == blockpool->block_size) { in __vxge_hw_blockpool_block_free()
4951 list_add(&entry->item, &blockpool->free_block_list); in __vxge_hw_blockpool_block_free()
4952 blockpool->pool_size++; in __vxge_hw_blockpool_block_free()
4955 __vxge_hw_blockpool_blocks_remove(blockpool); in __vxge_hw_blockpool_block_free()