xref: /rk3399_rockchip-uboot/include/ramdisk.h (revision b5644a8973f0b05edc89989e94dd1f217b78f2ed)
1a3fec70dSJoseph Chen /* SPDX-License-Identifier:     GPL-2.0+ */
2a3fec70dSJoseph Chen /*
3a3fec70dSJoseph Chen  * (C) Copyright 2018 Rockchip Electronics Co., Ltd
4a3fec70dSJoseph Chen  */
5a3fec70dSJoseph Chen 
6a3fec70dSJoseph Chen #ifndef __RAMDISK_H__
7a3fec70dSJoseph Chen #define __RAMDISK_H__
8a3fec70dSJoseph Chen 
9a3fec70dSJoseph Chen struct ramdisk_ops {
10a3fec70dSJoseph Chen 	/*
11a3fec70dSJoseph Chen 	 * read() - read from a block device
12a3fec70dSJoseph Chen 	 *
13a3fec70dSJoseph Chen 	 * @desc:	Block descriptor
14a3fec70dSJoseph Chen 	 * @start:	Start block number to read
15a3fec70dSJoseph Chen 	 * @blkcnt:	Number of blocks to read
16a3fec70dSJoseph Chen 	 * @buffer:	Destination buffer for data read
17a3fec70dSJoseph Chen 	 *
18a3fec70dSJoseph Chen 	 * @return blkcnt is OK, otherwise is error.
19a3fec70dSJoseph Chen 	 */
20a3fec70dSJoseph Chen 	ulong (*read)(struct blk_desc *desc,
21a3fec70dSJoseph Chen 		      lbaint_t start, lbaint_t blkcnt, void *buffer);
22a3fec70dSJoseph Chen 
23a3fec70dSJoseph Chen 	/*
24a3fec70dSJoseph Chen 	 * write() - write to a block device
25a3fec70dSJoseph Chen 	 *
26a3fec70dSJoseph Chen 	 * @desc:	Block descriptor
27a3fec70dSJoseph Chen 	 * @start:	Start block number to write
28a3fec70dSJoseph Chen 	 * @blkcnt:	Number of blocks to write
29a3fec70dSJoseph Chen 	 * @buffer:	Source buffer for data to write
30a3fec70dSJoseph Chen 	 *
31a3fec70dSJoseph Chen 	 * @return blkcnt is OK, otherwise is error.
32a3fec70dSJoseph Chen 	 */
33a3fec70dSJoseph Chen 
34a3fec70dSJoseph Chen 	ulong (*write)(struct blk_desc *desc,
35a3fec70dSJoseph Chen 		       lbaint_t start, lbaint_t blkcnt, const void *buffer);
36a3fec70dSJoseph Chen 	/*
37a3fec70dSJoseph Chen 	 * erase() - erase a section of a block device
38a3fec70dSJoseph Chen 	 *
39a3fec70dSJoseph Chen 	 * @desc:	Block descriptor
40a3fec70dSJoseph Chen 	 * @start:	Start block number to erase
41a3fec70dSJoseph Chen 	 * @blkcnt:	Number of blocks to erase
42a3fec70dSJoseph Chen 	 *
43a3fec70dSJoseph Chen 	 * @return blkcnt is OK, otherwise is error.
44a3fec70dSJoseph Chen 	 */
45a3fec70dSJoseph Chen 	ulong (*erase)(struct blk_desc *desc, lbaint_t start, lbaint_t blkcnt);
46a3fec70dSJoseph Chen };
47a3fec70dSJoseph Chen 
48*b5644a89SJoseph Chen int dm_ramdisk_is_enabled(void);
49*b5644a89SJoseph Chen 
50a3fec70dSJoseph Chen #endif /* __RAMDISK_H__ */
51