Function report |
Source Code:fs\aio.c |
Create Date:2022-07-28 20:21:12 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:aio_setup_ring
Proto:static int aio_setup_ring(struct kioctx *ctx, unsigned int nr_events)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct kioctx * | ctx | |
unsigned int | nr_events |
470 | nr_events += 2 |
479 | file = aio_private_file(ctx, nr_pages) |
481 | aio_ring_file = NULL |
482 | Return -ENOMEM |
485 | aio_ring_file = file |
489 | ring_pages = internal_pages |
490 | If nr_pages > AIO_RING_PAGES Then |
491 | ring_pages = kcalloc - allocate memory for an array. The memory is set to zero.*@n: number of elements.*@size: element size.*@flags: the type of memory to allocate (see kmalloc). |
493 | If Not ring_pages Then |
494 | put_aio_ring_file(ctx) |
495 | Return -ENOMEM |
503 | If Not page Then Break |
505 | pr_debug("pid(%d) page[%d]->count=%d\n", pid, i, page_count(page)) |
507 | SetPageUptodate(page) |
510 | ring_pages[i] = page |
514 | If Value for the false possibility is greater at compile time(i != nr_pages) Then |
515 | aio_free_ring(ctx) |
516 | Return -ENOMEM |
522 | If lock for writing Then |
528 | mmap_base = do_mmap_pgoff(aio_ring_file, 0, mmap_size, page can be read | page can be written , Share changes , 0, & unused, NULL) |
543 | ring = kmap_atomic(ring_pages[0]) |
544 | number of io_events = nr_events |
545 | kernel internal index number = ~0U |
547 | magic = AIO_RING_MAGIC |
550 | size of aio_ring = sizeof(structaio_ring) |
551 | Prevent people trying to call kunmap_atomic() as if it were kunmap()* kunmap_atomic() should get the return value of kmap_atomic, not the page.(ring) |
552 | flush_dcache_page(ring_pages[0]) |
554 | Return 0 |
Name | Describe |
---|---|
ioctx_alloc | x_alloc* Allocates and initializes an ioctx. Returns an ERR_PTR if it failed. |
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 |