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