Zephyr Project API 4.3.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
disk.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 Intel Corporation.
3 * Copyright (c) 2021 Nordic Semiconductor ASA
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
18
19#ifndef ZEPHYR_INCLUDE_DRIVERS_DISK_H_
20#define ZEPHYR_INCLUDE_DRIVERS_DISK_H_
21
35
36#include <zephyr/kernel.h>
37#include <zephyr/types.h>
38#include <zephyr/sys/dlist.h>
39
40#ifdef __cplusplus
41extern "C" {
42#endif
43
47
49#define DISK_IOCTL_GET_SECTOR_COUNT 1
51#define DISK_IOCTL_GET_SECTOR_SIZE 2
53#define DISK_IOCTL_RESERVED 3
55#define DISK_IOCTL_GET_ERASE_BLOCK_SZ 4
57#define DISK_IOCTL_CTRL_SYNC 5
63#define DISK_IOCTL_CTRL_INIT 6
75#define DISK_IOCTL_CTRL_DEINIT 7
76
80
82#define DISK_STATUS_OK 0x00
84#define DISK_STATUS_UNINIT 0x01
86#define DISK_STATUS_NOMEDIA 0x02
88#define DISK_STATUS_WR_PROTECT 0x04
89
90struct disk_operations;
91
95struct disk_info {
99 const char *name;
101 const struct disk_operations *ops;
103 const struct device *dev;
106};
107
112 int (*init)(struct disk_info *disk);
113 int (*status)(struct disk_info *disk);
114 int (*read)(struct disk_info *disk, uint8_t *data_buf,
115 uint32_t start_sector, uint32_t num_sector);
116 int (*write)(struct disk_info *disk, const uint8_t *data_buf,
117 uint32_t start_sector, uint32_t num_sector);
118 int (*erase)(struct disk_info *disk, uint32_t start_sector, uint32_t num_sector);
119 int (*ioctl)(struct disk_info *disk, uint8_t cmd, void *buff);
120};
121
130
139
140#ifdef __cplusplus
141}
142#endif
143
147
148#endif /* ZEPHYR_INCLUDE_DRIVERS_DISK_H_ */
int disk_access_register(struct disk_info *disk)
Register disk.
int disk_access_unregister(struct disk_info *disk)
Unregister disk.
struct _dnode sys_dnode_t
Doubly-linked list node structure.
Definition dlist.h:54
static void cmd(uint32_t command)
Execute a display list command by co-processor engine.
Definition ft8xx_reference_api.h:153
Public kernel APIs.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
Disk info.
Definition disk.h:95
const struct disk_operations * ops
Disk operations.
Definition disk.h:101
sys_dnode_t node
Internally used list node.
Definition disk.h:97
const char * name
Disk name.
Definition disk.h:99
uint16_t refcnt
Internally used disk reference count.
Definition disk.h:105
const struct device * dev
Device associated to this disk.
Definition disk.h:103
Disk operations.
Definition disk.h:111
int(* read)(struct disk_info *disk, uint8_t *data_buf, uint32_t start_sector, uint32_t num_sector)
Definition disk.h:114
int(* ioctl)(struct disk_info *disk, uint8_t cmd, void *buff)
Definition disk.h:119
int(* erase)(struct disk_info *disk, uint32_t start_sector, uint32_t num_sector)
Definition disk.h:118
int(* status)(struct disk_info *disk)
Definition disk.h:113
int(* write)(struct disk_info *disk, const uint8_t *data_buf, uint32_t start_sector, uint32_t num_sector)
Definition disk.h:116
int(* init)(struct disk_info *disk)
Definition disk.h:112