1 /*
2  * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef IO_BLOCK_H
8 #define IO_BLOCK_H
9 
10 #include <drivers/io/io_storage.h>
11 
12 /* block devices ops */
13 typedef struct io_block_ops {
14 	size_t	(*read)(int lba, uintptr_t buf, size_t size);
15 	size_t	(*write)(int lba, const uintptr_t buf, size_t size);
16 } io_block_ops_t;
17 
18 typedef struct io_block_dev_spec {
19 	io_block_spec_t	buffer;
20 	io_block_ops_t	ops;
21 	size_t		block_size;
22 } io_block_dev_spec_t;
23 
24 struct io_dev_connector;
25 
26 int register_io_dev_block(const struct io_dev_connector **dev_con);
27 
28 #endif /* IO_BLOCK_H */
29