2  * SCSI library functions depending on DMA
 
   5 #include <linux/blkdev.h>
 
   6 #include <linux/device.h>
 
   7 #include <linux/kernel.h>
 
  10 #include <scsi/scsi_cmnd.h>
 
  11 #include <scsi/scsi_device.h>
 
  12 #include <scsi/scsi_host.h>
 
  15  * scsi_dma_map - perform DMA mapping against command's sg lists
 
  18  * Returns the number of sg lists actually used, zero if the sg lists
 
  19  * is NULL, or -ENOMEM if the mapping failed.
 
  21 int scsi_dma_map(struct scsi_cmnd *cmd)
 
  25         if (scsi_sg_count(cmd)) {
 
  26                 struct device *dev = cmd->device->host->shost_gendev.parent;
 
  28                 nseg = dma_map_sg(dev, scsi_sglist(cmd), scsi_sg_count(cmd),
 
  29                                   cmd->sc_data_direction);
 
  35 EXPORT_SYMBOL(scsi_dma_map);
 
  38  * scsi_dma_unmap - unmap command's sg lists mapped by scsi_dma_map
 
  41 void scsi_dma_unmap(struct scsi_cmnd *cmd)
 
  43         if (scsi_sg_count(cmd)) {
 
  44                 struct device *dev = cmd->device->host->shost_gendev.parent;
 
  46                 dma_unmap_sg(dev, scsi_sglist(cmd), scsi_sg_count(cmd),
 
  47                              cmd->sc_data_direction);
 
  50 EXPORT_SYMBOL(scsi_dma_unmap);