blob: 8222984a8bf6d0dc20ea1a64fea1a9f6e51dccec (
plain)
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
|
#ifndef _GPXE_BLOCKDEV_H
#define _GPXE_BLOCKDEV_H
/**
* @file
*
* Block devices
*
*/
#include <gpxe/uaccess.h>
struct block_device;
/** Block device operations */
struct block_device_operations {
/**
* Read block
*
* @v blockdev Block device
* @v block Block number
* @v count Block count
* @v buffer Data buffer
* @ret rc Return status code
*/
int ( * read ) ( struct block_device *blockdev, uint64_t block,
unsigned long count, userptr_t buffer );
/**
* Write block
*
* @v blockdev Block device
* @v block Block number
* @v count Block count
* @v buffer Data buffer
* @ret rc Return status code
*/
int ( * write ) ( struct block_device *blockdev, uint64_t block,
unsigned long count, userptr_t buffer );
};
/** A block device */
struct block_device {
/** Block device operations */
struct block_device_operations *op;
/** Block size */
size_t blksize;
/** Total number of blocks */
uint64_t blocks;
};
#endif /* _GPXE_BLOCKDEV_H */
|