代码拉取完成,页面将自动刷新
third_party\NuttX\fs\driver\fs_registerblockdriver.c
注册一个块设备,
int register_blockdriver(FAR const char *path, //文件名
FAR const struct block_operations *bops, //结构体
mode_t mode, FAR void *priv)
{}
kernel\liteos_a\fs\include\fs\fs.h
块设备操作的结构体,
struct block_operations
{
int (*open)(FAR struct inode *inode);
int (*close)(FAR struct inode *inode);
ssize_t (*read)(FAR struct inode *inode, FAR unsigned char *buffer,
unsigned long long start_sector, unsigned int nsectors);
ssize_t (*write)(FAR struct inode *inode, FAR const unsigned char *buffer,
unsigned long long start_sector, unsigned int nsectors);
int (*geometry)(FAR struct inode *inode, FAR struct geometry *geometry); //获取内部结构
int (*ioctl)(FAR struct inode *inode, int cmd, unsigned long arg);
int (*unlink)(FAR struct inode *inode);
};
struct geometry //几何设备
{
bool geo_available; /* true: The device is available 是否可用 */
bool geo_mediachanged; /* true: The media has changed since last query */
bool geo_writeenabled; /* true: It is okay to write to this device 是否可写 */
unsigned long long geo_nsectors; /* Number of sectors on the device 多少个扇区*/
size_t geo_sectorsize; /* Size of one sector 每个扇区的大小*/
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。