Function report |
Source Code:mm\mempool.c |
Create Date:2022-07-28 14:04:42 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:mempool_resize - resize an existing memory pool*@pool: pointer to the memory pool which was allocated via* mempool_create().*@new_min_nr: the new minimum number of elements guaranteed to be* allocated for this pool.* This function shrinks/grows the pool
Proto:int mempool_resize(mempool_t *pool, int new_min_nr)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
mempool_t * | pool | |
int | new_min_nr |
305 | BUG_ON(new_min_nr <= 0) |
306 | might_sleep() |
308 | spin_lock_irqsave( & lock, flags) |
309 | If new_min_nr <= nr of elements at *elements Then |
310 | When new_min_nr < Current nr of elements at *elements cycle |
311 | element = remove_element(pool) |
312 | spin_unlock_irqrestore( & lock, flags) |
314 | spin_lock_irqsave( & lock, flags) |
317 | Go to out_unlock |
319 | spin_unlock_irqrestore( & lock, flags) |
322 | new_elements = kmalloc_array - allocate memory for an array.*@n: number of elements.*@size: element size.*@flags: the type of memory to allocate (see kmalloc). |
324 | If Not new_elements Then Return -ENOMEM |
327 | spin_lock_irqsave( & lock, flags) |
330 | spin_unlock_irqrestore( & lock, flags) |
332 | Go to out |
334 | memcpy(new_elements, elements, Current nr of elements at *elements * size of new_elements ) |
337 | elements = new_elements |
341 | spin_unlock_irqrestore( & lock, flags) |
342 | element = alloc(GFP_KERNEL, pool_data) |
345 | spin_lock_irqsave( & lock, flags) |
347 | add_element(pool, element) |
348 | Else |
354 | out_unlock : |
355 | spin_unlock_irqrestore( & lock, flags) |
356 | out : |
357 | Return 0 |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |