函数源码

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source File:include\linux\dma-mapping.h Create Date:2022-07-27 06:51:41
首页 Copyright©Brick

303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
/*
 * dma_maps_sg_attrs returns 0 on error and > 0 on success.
 * It should never return a value < 0.
 */
static inline int dma_map_sg_attrs(struct device *dev, struct scatterlist *sg,
                   int nents, enum dma_data_direction dir,
                   unsigned long attrs)
{
    const struct dma_map_ops *ops = get_dma_ops(dev);
    int ents;
 
    BUG_ON(!valid_dma_direction(dir));
    if (dma_is_direct(ops))
        ents = dma_direct_map_sg(dev, sg, nents, dir, attrs);
    else
        ents = ops->map_sg(dev, sg, nents, dir, attrs);
    BUG_ON(ents < 0);
    debug_dma_map_sg(dev, sg, nents, ents, dir);
 
    return ents;
}