-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathzio_dma_block.c
More file actions
53 lines (41 loc) · 1.13 KB
/
zio_dma_block.c
File metadata and controls
53 lines (41 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
* Copyright (C) 2016 University of Granada
* Miguel Jimenez Lopez <klyone@ugr.es>
*
* ZIO DMA Block functions (implementation).
*
* This source code is licensed under the GNU General Public License,
* Version 2. See the file COPYING for more details.
*/
#include "zio_dma_block.h"
static void * zio_dma_block_get_buffer(struct dma_block * block)
{
struct zio_dma_block * block_priv = block->priv;
return block_priv->block->data;
}
static size_t zio_dma_block_get_size(struct dma_block * block)
{
struct zio_dma_block * block_priv = block->priv;
return block_priv->block->datalen;
}
static struct dma_block_op zio_dma_block_ops = {
.get_buffer = zio_dma_block_get_buffer,
.get_size = zio_dma_block_get_size
};
struct dma_block * zio_dma_block_create(struct zio_block * block,\
gfp_t gfp)
{
struct dma_block * blk;
struct zio_dma_block * block_priv;
blk = dma_block_create(sizeof(*block_priv),gfp);
if(blk != NULL) {
block_priv = blk->priv;
block_priv->block = block;
dma_block_op_bind(blk,&zio_dma_block_ops);
}
return blk;
}
void zio_dma_block_free(struct dma_block * block)
{
dma_block_free(block);
}