node-drivers/base-driver/drivers/vca/plx87xx/plx_main.c
static int plx_alloc_blockio_dev_page(struct plx_device *xdev)
{
	dma_addr_t dma_addr;
	void* va;

	va = dma_zalloc_coherent(&xdev->pdev->dev, BLOKIO_DEVPAGE_SIZE, &dma_addr,
		GFP_KERNEL |  __GFP_DMA32);

	if (!va) {
		dev_err(&xdev->pdev->dev, "failed to allocate blockio dev page\n");
		return -ENOMEM;
	}

	xdev->blockio.dp_va = va;
	xdev->blockio.dp_da = dma_addr;

	return 0;
}
/**
 * plx_alloc_blockio_dev_page - allocate memory used for blockio device injection
 * @xdev: plx device structure
 */
allocate memory used for blockio device injection
@xdev: plx device structure
allocate memory used for blockio device injection @xdev : plx device structure
static int plx_alloc_blockio_dev_page(struct plx_device *xdev)
{
	dma_addr_t dma_addr;
	void* va;
	va = dma_zalloc_coherent(&xdev->pdev->dev, BLOKIO_DEVPAGE_SIZE, &dma_addr,
		GFP_KERNEL |  __GFP_DMA32);
	if (!va) {
		dev_err(&xdev->pdev->dev, "failed to allocate blockio dev page\n");
		return -ENOMEM;
	}
	xdev->blockio.dp_va = va;
	xdev->blockio.dp_da = dma_addr;
	return 0;
}
static int plx_alloc_blockio_dev_page ( struct plx_device * xdev ) { dma_addr_t dma_addr ; void * va ; va = dma_zalloc_coherent ( & xdev -> pdev -> dev , BLOKIO_DEVPAGE_SIZE , & dma_addr , GFP_KERNEL | __GFP_DMA32 ) ; if ( ! va ) { dev_err ( & xdev -> pdev -> dev , " \n " ) ; return - ENOMEM ; } xdev -> blockio . dp_va = va ; xdev -> blockio . dp_da = dma_addr ; return 0 ; }
plx_alloc_blockio_dev_page - allocate memory used for blockio device injection
 @xdev: plx device structure
plx_alloc_blockio_dev_page - allocate memory used for blockio device injection @xdev : plx device structure