feat(storage/vfs): move uart driver to new vfs API

This commit is contained in:
Tomáš Rohlínek
2024-11-01 12:06:17 +01:00
parent 906b3df54b
commit 0aa10dcb43
2 changed files with 30 additions and 13 deletions

View File

@@ -20,7 +20,7 @@ extern "C" {
* *
* @return pointer to structure esp_vfs_t * @return pointer to structure esp_vfs_t
*/ */
const esp_vfs_t *esp_vfs_uart_get_vfs(void); const esp_vfs_fs_ops_t *esp_vfs_uart_get_vfs(void);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -985,8 +985,29 @@ static int uart_tcflush(int fd, int select)
} }
#endif // CONFIG_VFS_SUPPORT_TERMIOS #endif // CONFIG_VFS_SUPPORT_TERMIOS
static const esp_vfs_t uart_vfs = { #ifdef CONFIG_VFS_SUPPORT_DIR
.flags = ESP_VFS_FLAG_DEFAULT, static const esp_vfs_dir_ops_t s_vfs_uart_dir = {
.access = &uart_access,
};
#endif // CONFIG_VFS_SUPPORT_DIR
#ifdef CONFIG_VFS_SUPPORT_SELECT
static const esp_vfs_select_ops_t s_vfs_uart_select = {
.start_select = &uart_start_select,
.end_select = &uart_end_select,
};
#endif // CONFIG_VFS_SUPPORT_SELECT
#ifdef CONFIG_VFS_SUPPORT_TERMIOS
static const esp_vfs_termios_ops_t s_vfs_uart_termios = {
.tcsetattr = &uart_tcsetattr,
.tcgetattr = &uart_tcgetattr,
.tcdrain = &uart_tcdrain,
.tcflush = &uart_tcflush,
};
#endif // CONFIG_VFS_SUPPORT_TERMIOS
static const esp_vfs_fs_ops_t s_vfs_uart = {
.write = &uart_write, .write = &uart_write,
.open = &uart_open, .open = &uart_open,
.fstat = &uart_fstat, .fstat = &uart_fstat,
@@ -995,28 +1016,24 @@ static const esp_vfs_t uart_vfs = {
.fcntl = &uart_fcntl, .fcntl = &uart_fcntl,
.fsync = &uart_fsync, .fsync = &uart_fsync,
#ifdef CONFIG_VFS_SUPPORT_DIR #ifdef CONFIG_VFS_SUPPORT_DIR
.access = &uart_access, .dir = &s_vfs_uart_dir,
#endif // CONFIG_VFS_SUPPORT_DIR #endif // CONFIG_VFS_SUPPORT_DIR
#ifdef CONFIG_VFS_SUPPORT_SELECT #ifdef CONFIG_VFS_SUPPORT_SELECT
.start_select = &uart_start_select, .select = &s_vfs_uart_select,
.end_select = &uart_end_select,
#endif // CONFIG_VFS_SUPPORT_SELECT #endif // CONFIG_VFS_SUPPORT_SELECT
#ifdef CONFIG_VFS_SUPPORT_TERMIOS #ifdef CONFIG_VFS_SUPPORT_TERMIOS
.tcsetattr = &uart_tcsetattr, .termios = &s_vfs_uart_termios,
.tcgetattr = &uart_tcgetattr,
.tcdrain = &uart_tcdrain,
.tcflush = &uart_tcflush,
#endif // CONFIG_VFS_SUPPORT_TERMIOS #endif // CONFIG_VFS_SUPPORT_TERMIOS
}; };
const esp_vfs_t *esp_vfs_uart_get_vfs(void) const esp_vfs_fs_ops_t *esp_vfs_uart_get_vfs(void)
{ {
return &uart_vfs; return &s_vfs_uart;
} }
void uart_vfs_dev_register(void) void uart_vfs_dev_register(void)
{ {
ESP_ERROR_CHECK(esp_vfs_register("/dev/uart", &uart_vfs, NULL)); ESP_ERROR_CHECK(esp_vfs_register_fs("/dev/uart", &s_vfs_uart, ESP_VFS_FLAG_STATIC, NULL));
} }
int uart_vfs_dev_port_set_rx_line_endings(int uart_num, esp_line_endings_t mode) int uart_vfs_dev_port_set_rx_line_endings(int uart_num, esp_line_endings_t mode)