Function report |
Source Code:mm\zbud.c |
Create Date:2022-07-28 16:25:48 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:zbud_alloc() - allocates a region of a given size*@pool: zbud pool from which to allocate*@size: size in bytes of the desired allocation*@gfp: gfp flags used if the pool needs to grow*@handle: handle of the new allocation* This function will attempt to
Proto:int zbud_alloc(struct zbud_pool *pool, size_t size, gfp_t gfp, unsigned long *handle)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct zbud_pool * | pool | |
size_t | size | |
gfp_t | gfp | |
unsigned long * | handle |
358 | struct zbud_header * zhdr = NULL |
362 | If Not size || gfp & __GFP_HIGHMEM Then Return -EINVAL |
364 | If size > PAGE_SIZE - ZHDR_SIZE_ALIGNED - CHUNK_SIZE Then Return -ENOSPC |
370 | zhdr = NULL |
376 | If first_chunks == 0 Then bud = FIRST |
380 | Go to found |
385 | spin_unlock( & lock) |
386 | page = alloc_page(gfp) |
390 | pages_nr++ |
394 | found : |
395 | If bud == FIRST Then first_chunks = chunks |
397 | Else last_chunks = chunks |
400 | If first_chunks == 0 || last_chunks == 0 Then |
404 | Else |
410 | If Not list_empty - tests whether a list is empty*@head: the list to test. Then deletes entry from list |
414 | handle = Encodes the handle of a particular buddy within a zbud page* Pool lock should be held as this function accesses first|last_chunks |
415 | spin_unlock( & lock) |
417 | Return 0 |
Name | Describe |
---|---|
zbud_zpool_malloc |
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 |