函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\dma\swiotlb.c Create Date:2022-07-27 11:35:47
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Statically reserve bounce buffer space and initialize bounce buffer data* structures for the software IO TLB used to implement the DMA API.

函数原型:void __init swiotlb_init(int verbose)

返回类型:void

参数:

类型参数名称
intverbose
248  default_size等于default to 64MB
252  如果非The number of IO TLB blocks (in groups of 64) between io_tlb_start and* io_tlb_end. This is command line adjustable via setup_io_tlb_npages.
253  The number of IO TLB blocks (in groups of 64) between io_tlb_start and* io_tlb_end. This is command line adjustable via setup_io_tlb_npages.等于default_size右移log of the size of each IO TLB slab. The number of slabs is command line* controllable.
254  The number of IO TLB blocks (in groups of 64) between io_tlb_start and* io_tlb_end. This is command line adjustable via setup_io_tlb_npages.等于@a is a power of 2 value (The number of IO TLB blocks (in groups of 64) between io_tlb_start and* io_tlb_end. This is command line adjustable via setup_io_tlb_npages., Maximum allowable number of contiguous slabs to map,* must be a power of 2. What is the appropriate value ?* The complexity of {map,unmap}_single is linearly dependent on this value.)
257  bytes等于The number of IO TLB blocks (in groups of 64) between io_tlb_start and* io_tlb_end. This is command line adjustable via setup_io_tlb_npages.左移log of the size of each IO TLB slab. The number of slabs is command line* controllable.
260  vstart等于memblock_alloc_low( align the pointer to the (next) page boundary (bytes), PAGE_SIZE)
261  如果vstart且非swiotlb_init_with_tbl(vstart, The number of IO TLB blocks (in groups of 64) between io_tlb_start and* io_tlb_end. This is command line adjustable via setup_io_tlb_npages., verbose)则返回
264  如果Used to do a quick range check in swiotlb_tbl_unmap_single and* swiotlb_tbl_sync_single_*, to see if the memory was in fact allocated by this* API.memblock_free_early(Used to do a quick range check in swiotlb_tbl_unmap_single and* swiotlb_tbl_sync_single_*, to see if the memory was in fact allocated by this* API., align the pointer to the (next) page boundary (The number of IO TLB blocks (in groups of 64) between io_tlb_start and* io_tlb_end. This is command line adjustable via setup_io_tlb_npages. << log of the size of each IO TLB slab. The number of slabs is command line* controllable.))
267  打印警告信息("Cannot allocate buffer")
268  no_iotlb_memory = true
调用者
名称描述
pci_swiotlb_init