Function report |
Source Code:arch\x86\kernel\amd_gart_64.c |
Create Date:2022-07-28 08:52:13 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:alloc_iommu
Proto:static unsigned long alloc_iommu(struct device *dev, int size, unsigned long align_mask)
Type:unsigned long
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct device * | dev | |
| int | size | |
| unsigned long | align_mask |
| 98 | base_index = @a is a power of 2 value (GART remapping area (physical) & dma_get_seg_boundary(dev), PAGE_SIZE) >> PAGE_SHIFT determines the page size |
| 100 | boundary_size = @a is a power of 2 value ((u64)dma_get_seg_boundary(dev) + 1, PAGE_SIZE) >> PAGE_SHIFT determines the page size |
| 104 | offset = iommu_area_alloc(Guarded by iommu_bitmap_lock: , .. and in pages , protected by iommu_bitmap_lock , size, base_index, boundary_size, align_mask) |
| 106 | If offset == -1 Then |
| 107 | global flush state. set for each gart wrap = true |
| 112 | If offset != -1 Then |
| 113 | protected by iommu_bitmap_lock = offset + size |
| 114 | If protected by iommu_bitmap_lock >= .. and in pages Then |
| 115 | protected by iommu_bitmap_lock = 0 |
| 116 | global flush state. set for each gart wrap = true |
| 119 | If If this is disabled the IOMMU will use an optimized flushing strategy* of only flushing when an mapping is reused Then global flush state. set for each gart wrap = true |
| 123 | Return offset |
| Name | Describe |
|---|---|
| dma_map_area | Map a single continuous physical area into the IOMMU.* Caller needs to check if the iommu is needed and flush. |
| __dma_map_cont | Map multiple scatterlist entries continuous into the first. |
| 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 |