diff --git a/include/disk/disk_access.h b/include/disk/disk_access.h new file mode 100644 index 00000000000..4156ddff930 --- /dev/null +++ b/include/disk/disk_access.h @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2016 Intel Corporation. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @file + * @brief Disk Access layer APIs and defines + * + * This file contains APIs for disk access. Apart from disks, various + * other storage media like Flash and RAM disks may implement this interface to + * be used by various higher layers(consumers) like USB Mass storage + * and Filesystems. + */ + +#ifndef ZEPHYR_INCLUDE_DISK_DISK_ACCESS_H_ +#define ZEPHYR_INCLUDE_DISK_DISK_ACCESS_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Possible Cmd Codes for disk_ioctl() */ + +/* Get the number of sectors in the disk */ +#define DISK_IOCTL_GET_SECTOR_COUNT 1 +/* Get the size of a disk SECTOR in bytes */ +#define DISK_IOCTL_GET_SECTOR_SIZE 2 +/* How many sectors constitute a FLASH Erase block */ +#define DISK_IOCTL_GET_ERASE_BLOCK_SZ 4 +/* Commit any cached read/writes to disk */ +#define DISK_IOCTL_CTRL_SYNC 5 + +/* 3 is reserved. It used to be DISK_IOCTL_GET_DISK_SIZE */ + +/* Possible return bitmasks for disk_status() */ +#define DISK_STATUS_OK 0x00 +#define DISK_STATUS_UNINIT 0x01 +#define DISK_STATUS_NOMEDIA 0x02 +#define DISK_STATUS_WR_PROTECT 0x04 + +struct disk_operations; + +struct disk_info { + sys_dnode_t node; + char *name; + const struct disk_operations *ops; +}; + +struct disk_operations { + int (*init)(struct disk_info *disk); + int (*status)(struct disk_info *disk); + int (*read)(struct disk_info *disk, u8_t *data_buf, + u32_t start_sector, u32_t num_sector); + int (*write)(struct disk_info *disk, const u8_t *data_buf, + u32_t start_sector, u32_t num_sector); + int (*ioctl)(struct disk_info *disk, u8_t cmd, void *buff); +}; + +/* + * @brief perform any initialization + * + * This call is made by the consumer before doing any IO calls so that the + * disk or the backing device can do any initialization. + * + * @return 0 on success, negative errno code on fail + */ +int disk_access_init(const char *pdrv); + +/* + * @brief Get the status of disk + * + * This call is used to get the status of the disk + * + * @return DISK_STATUS_OK or other DISK_STATUS_*s + */ +int disk_access_status(const char *pdrv); + +/* + * @brief read data from disk + * + * Function to read data from disk to a memory buffer. + * + * @param[in] data_buf Pointer to the memory buffer to put data. + * @param[in] start_sector Start disk sector to read from + * @param[in] num_sector Number of disk sectors to read + * + * @return 0 on success, negative errno code on fail + */ +int disk_access_read(const char *pdrv, u8_t *data_buf, + u32_t start_sector, u32_t num_sector); + +/* + * @brief write data to disk + * + * Function write data from memory buffer to disk. + * + * @param[in] data_buf Pointer to the memory buffer + * @param[in] start_sector Start disk sector to write to + * @param[in] num_sector Number of disk sectors to write + * + * @return 0 on success, negative errno code on fail + */ +int disk_access_write(const char *pdrv, const u8_t *data_buf, + u32_t start_sector, u32_t num_sector); + +/* + * @brief Get/Configure disk parameters + * + * Function to get disk parameters and make any special device requests. + * + * @param[in] cmd DISK_IOCTL_* code describing the request + * + * @return 0 on success, negative errno code on fail + */ +int disk_access_ioctl(const char *pdrv, u8_t cmd, void *buff); + +int disk_access_register(struct disk_info *disk); + +int disk_access_unregister(struct disk_info *disk); + +#ifdef __cplusplus +} +#endif + +#endif /* ZEPHYR_INCLUDE_DISK_DISK_ACCESS_H_ */ diff --git a/include/disk_access.h b/include/disk_access.h index 4beca021f6a..6cddec05c78 100644 --- a/include/disk_access.h +++ b/include/disk_access.h @@ -1,131 +1,15 @@ /* - * Copyright (c) 2016 Intel Corporation. + * Copyright (c) 2019 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ - -/** - * @file - * @brief Disk Access layer APIs and defines - * - * This file contains APIs for disk access. Apart from disks, various - * other storage media like Flash and RAM disks may implement this interface to - * be used by various higher layers(consumers) like USB Mass storage - * and Filesystems. - */ - #ifndef ZEPHYR_INCLUDE_DISK_ACCESS_H_ #define ZEPHYR_INCLUDE_DISK_ACCESS_H_ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { +#ifndef CONFIG_COMPAT_INCLUDES +#warning "This header file has moved, include instead." #endif -/* Possible Cmd Codes for disk_ioctl() */ - -/* Get the number of sectors in the disk */ -#define DISK_IOCTL_GET_SECTOR_COUNT 1 -/* Get the size of a disk SECTOR in bytes */ -#define DISK_IOCTL_GET_SECTOR_SIZE 2 -/* How many sectors constitute a FLASH Erase block */ -#define DISK_IOCTL_GET_ERASE_BLOCK_SZ 4 -/* Commit any cached read/writes to disk */ -#define DISK_IOCTL_CTRL_SYNC 5 - -/* 3 is reserved. It used to be DISK_IOCTL_GET_DISK_SIZE */ - -/* Possible return bitmasks for disk_status() */ -#define DISK_STATUS_OK 0x00 -#define DISK_STATUS_UNINIT 0x01 -#define DISK_STATUS_NOMEDIA 0x02 -#define DISK_STATUS_WR_PROTECT 0x04 - -struct disk_operations; - -struct disk_info { - sys_dnode_t node; - char *name; - const struct disk_operations *ops; -}; - -struct disk_operations { - int (*init)(struct disk_info *disk); - int (*status)(struct disk_info *disk); - int (*read)(struct disk_info *disk, u8_t *data_buf, - u32_t start_sector, u32_t num_sector); - int (*write)(struct disk_info *disk, const u8_t *data_buf, - u32_t start_sector, u32_t num_sector); - int (*ioctl)(struct disk_info *disk, u8_t cmd, void *buff); -}; - -/* - * @brief perform any initialization - * - * This call is made by the consumer before doing any IO calls so that the - * disk or the backing device can do any initialization. - * - * @return 0 on success, negative errno code on fail - */ -int disk_access_init(const char *pdrv); - -/* - * @brief Get the status of disk - * - * This call is used to get the status of the disk - * - * @return DISK_STATUS_OK or other DISK_STATUS_*s - */ -int disk_access_status(const char *pdrv); - -/* - * @brief read data from disk - * - * Function to read data from disk to a memory buffer. - * - * @param[in] data_buf Pointer to the memory buffer to put data. - * @param[in] start_sector Start disk sector to read from - * @param[in] num_sector Number of disk sectors to read - * - * @return 0 on success, negative errno code on fail - */ -int disk_access_read(const char *pdrv, u8_t *data_buf, - u32_t start_sector, u32_t num_sector); - -/* - * @brief write data to disk - * - * Function write data from memory buffer to disk. - * - * @param[in] data_buf Pointer to the memory buffer - * @param[in] start_sector Start disk sector to write to - * @param[in] num_sector Number of disk sectors to write - * - * @return 0 on success, negative errno code on fail - */ -int disk_access_write(const char *pdrv, const u8_t *data_buf, - u32_t start_sector, u32_t num_sector); - -/* - * @brief Get/Configure disk parameters - * - * Function to get disk parameters and make any special device requests. - * - * @param[in] cmd DISK_IOCTL_* code describing the request - * - * @return 0 on success, negative errno code on fail - */ -int disk_access_ioctl(const char *pdrv, u8_t cmd, void *buff); - -int disk_access_register(struct disk_info *disk); - -int disk_access_unregister(struct disk_info *disk); - -#ifdef __cplusplus -} -#endif +#include #endif /* ZEPHYR_INCLUDE_DISK_ACCESS_H_ */ diff --git a/samples/subsys/fs/src/main.c b/samples/subsys/fs/src/main.c index 97d226b6a70..b5076039993 100644 --- a/samples/subsys/fs/src/main.c +++ b/samples/subsys/fs/src/main.c @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include #include diff --git a/subsys/disk/disk_access.c b/subsys/disk/disk_access.c index b36f3519005..2486e4c4ddb 100644 --- a/subsys/disk/disk_access.c +++ b/subsys/disk/disk_access.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/subsys/disk/disk_access_flash.c b/subsys/disk/disk_access_flash.c index 451eb8ccbb3..5397c93a242 100644 --- a/subsys/disk/disk_access_flash.c +++ b/subsys/disk/disk_access_flash.c @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/subsys/disk/disk_access_ram.c b/subsys/disk/disk_access_ram.c index dcb9cc48acb..7820667b1ae 100644 --- a/subsys/disk/disk_access_ram.c +++ b/subsys/disk/disk_access_ram.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/subsys/disk/disk_access_sdhc.c b/subsys/disk/disk_access_sdhc.c index 5981f6d3951..c84abc62ac8 100644 --- a/subsys/disk/disk_access_sdhc.c +++ b/subsys/disk/disk_access_sdhc.c @@ -8,7 +8,7 @@ LOG_MODULE_REGISTER(sdhc, CONFIG_DISK_LOG_LEVEL); -#include +#include #include #include #include diff --git a/subsys/usb/class/mass_storage.c b/subsys/usb/class/mass_storage.c index c941bceb5c3..1e6b18931b3 100644 --- a/subsys/usb/class/mass_storage.c +++ b/subsys/usb/class/mass_storage.c @@ -38,7 +38,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/tests/subsys/fs/fat_fs_dual_drive/src/disk_access_test_drv.c b/tests/subsys/fs/fat_fs_dual_drive/src/disk_access_test_drv.c index 04c1d9b4cfa..e56255f85f6 100644 --- a/tests/subsys/fs/fat_fs_dual_drive/src/disk_access_test_drv.c +++ b/tests/subsys/fs/fat_fs_dual_drive/src/disk_access_test_drv.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include