Merge branch 'bugfix/open_uart_non_blocking' into 'master'

Make UART non-blocking when the file descriptor was opened with the O_NONBLOCK flag

See merge request idf/esp-idf!2153
This commit is contained in:
Ivan Grokhotkov 2018-04-04 14:43:31 +08:00
commit 1a302cbac1

View File

@ -91,15 +91,22 @@ static int uart_open(const char * path, int flags, int mode)
{ {
// this is fairly primitive, we should check if file is opened read only, // this is fairly primitive, we should check if file is opened read only,
// and error out if write is requested // and error out if write is requested
int fd = -1;
if (strcmp(path, "/0") == 0) { if (strcmp(path, "/0") == 0) {
return 0; fd = 0;
} else if (strcmp(path, "/1") == 0) { } else if (strcmp(path, "/1") == 0) {
return 1; fd = 1;
} else if (strcmp(path, "/2") == 0) { } else if (strcmp(path, "/2") == 0) {
return 2; fd = 2;
} else {
errno = ENOENT;
return fd;
} }
errno = ENOENT;
return -1; s_non_blocking[fd] = ((flags & O_NONBLOCK) == O_NONBLOCK);
return fd;
} }
static void uart_tx_char(int fd, int c) static void uart_tx_char(int fd, int c)