mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 17:19:09 -04:00
vfs: implement fsync for UART VFS
This commit is contained in:
parent
5fb3d59a92
commit
aa692b3483
@ -26,6 +26,7 @@
|
||||
#include "driver/uart.h"
|
||||
#include "sdkconfig.h"
|
||||
#include "driver/uart_select.h"
|
||||
#include "rom/uart.h"
|
||||
|
||||
// TODO: make the number of UARTs chip dependent
|
||||
#define UART_NUM 3
|
||||
@ -304,6 +305,15 @@ static int uart_access(const char *path, int amode)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int uart_fsync(int fd)
|
||||
{
|
||||
assert(fd >= 0 && fd < 3);
|
||||
_lock_acquire_recursive(&s_uart_write_locks[fd]);
|
||||
uart_tx_wait_idle((uint8_t) fd);
|
||||
_lock_release_recursive(&s_uart_write_locks[fd]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void select_notif_callback(uart_port_t uart_num, uart_select_notif_t uart_select_notif, BaseType_t *task_woken)
|
||||
{
|
||||
switch (uart_select_notif) {
|
||||
@ -883,6 +893,7 @@ void esp_vfs_dev_uart_register()
|
||||
.close = &uart_close,
|
||||
.read = &uart_read,
|
||||
.fcntl = &uart_fcntl,
|
||||
.fsync = &uart_fsync,
|
||||
.access = &uart_access,
|
||||
.start_select = &uart_start_select,
|
||||
.end_select = &uart_end_select,
|
||||
|
Loading…
x
Reference in New Issue
Block a user