Commit Graph

196 Commits

Author SHA1 Message Date
LiPeng
7ca602e86b fix(vfs): Fix event_write may not exit critical section
This commit fixes the event_write() function where the critical section
was unbalanced.

Merges https://github.com/espressif/esp-idf/pull/12258
2023-09-19 08:53:58 +02:00
morris
be5fff2364 vfs_uart: fix out-of-bounds read
when open uart device "/2" on chips only have 2 UART peripherals
2023-06-20 10:47:06 +08:00
Adam Múdry
da823eddf5 vfs: select sanity NULL check
https://github.com/espressif/esp-idf/issues/9964
2023-05-26 13:46:40 +02:00
morris
2dc6c95859 Merge branch 'bugfix/usb_serial_driver_block_v4.4' into 'release/v4.4'
usb_serial_jtag: Fix bug of blocking TX xfer when using driver (backport v4.4)

See merge request espressif/esp-idf!22831
2023-04-20 11:01:01 +08:00
Dong Heng
b7ea6e44b2 vfs: uart/cdcacm/usb_serial_jtag fcntl return read/write state 2023-03-23 08:22:56 +00:00
Cao Sen Miao
897082dbe5 usb_serial_jtag: Fix bug of blocking TX xfer when using driver,
Merges https://github.com/espressif/esp-idf/pull/10208
2023-03-20 14:39:35 +08:00
Chip Weinberger
6cf1d8ea40 [USB Serial/JTAG Driver] use time-limited blocking for TX 2023-03-20 14:20:40 +08:00
Mahavir Jain
57082d14a5 Merge branch 'feature/semihosting_call_number_change_v4.4' into 'release/v4.4'
Semihosting V2 (v4.4)

See merge request espressif/esp-idf!18332
2022-06-06 20:31:19 +08:00
Erhan Kurubas
c55db5e688 semihosting: drop absolute path support 2022-06-02 11:14:18 +02:00
Ivan Grokhotkov
cd21a31416
vfs: usb_serial_jtag: consider O_NONBLOCK flag when reading via driver
Closes https://github.com/espressif/esp-idf/issues/8839
2022-06-01 16:32:28 +02:00
Erhan Kurubas
c0df348156 semihosting: version 2 2022-06-01 14:49:03 +02:00
David Cermak
f974099b42 vfs: Fix potential select() race if both sock and other-fd trigger
This fixes a potential race condition in select() if both a socket-fd
and non-socket fd trigger simultaneously to unblock this select.
In case of both fds, we use lwip's local thread semaphore, so we only
have to try return it (if it was taken/triggered more than once) when
we exit select().

Closes https://github.com/espressif/esp-idf/issues/8896
2022-05-19 16:57:39 +02:00
Vamshi Gajjela
ebb9cc3670 fatfs: Add ftruncate api support for VFS and FAT-VFS
Unit test cases added to verify ftruncate within fatfs tests.

Closes https://github.com/espressif/esp-idf/issues/8279
2022-05-02 04:37:56 +00:00
Ivan Grokhotkov
ad532236ae vfs: add support for semihosting on ESP32-C3 2022-04-19 13:55:36 +00:00
Ivan Grokhotkov
23b0cdad8a
vfs: add test for errno value after 'open' 2022-02-07 11:36:00 +01:00
hörbert
931dd74da6
vfs: don't overwrite errno by a hard coded ENOENT
Calling "open" in CHECK_AND_CALL sets a perfectly correct errno.
There is no need to overwrite that with a value of ENOENT, since doing
so hides lower level errors like EIO.

Closes https://github.com/espressif/esp-idf/pull/8036
2022-02-07 11:35:59 +01:00
Mahavir Jain
ff3922d217 Merge branch 'bugfix/fix_select_timeout_v4.4' into 'release/v4.4'
VFS: `select` function's timeout is now POSIX compliant (and fix eventfd example) (backport v4.4)

See merge request espressif/esp-idf!16189
2021-12-08 08:32:42 +00:00
Omar Chebib
cf21312d8d VFS: select function's timeout is now POSIX compliant
`select` function will now round up the timeout passed as a parameter (if any).
It  makes it POSIX compliant.

* Closes https://github.com/espressif/esp-idf/issues/7514
2021-11-30 11:51:46 +08:00
Jiacheng Guo
ce7c936633 vfs: reduce lock in vfs_select 2021-11-29 17:32:43 +08:00
Cao Sen Miao
fcecbde778 vfs_usb_serial: set secondary selection for making usb port can output under default menu 2021-11-17 19:54:15 +08:00
Jiacheng Guo
7eafcb0372 vfs: fix occasional ISR context mismatch in event fd 2021-09-17 17:31:20 +08:00
Andrei Safronov
9159aa58d3 tests: refactoring of the gcc's inner functions, because clang doesn't support them 2021-09-10 19:51:27 +03:00
Ivan Grokhotkov
b7a4df9031 vfs: list IO functions which can be used with VFS_SUPPORT_IO disabled 2021-08-23 07:02:19 +02:00
Ivan Grokhotkov
a005e9bfbc docs: move VFS documentation into the component directory
These files were added into the component directory back when we
didn't have the documentation directory, and weren't moved once the
documentation directory was created.
2021-08-23 07:02:19 +02:00
David Cermak
07612b0854 vfs: Add initial lwip vfs test
to test fstat() implementation
2021-08-19 17:29:34 +02:00
Jiacheng Guo
f20fb57871 vfs: fix select return value when non-permanent fd closed 2021-08-16 10:49:31 +08:00
Alex Henrie
d4ff9ab266 Fix memory leak on error path in register_select
And remove dead error handling code from unregister_select.

Closes https://github.com/espressif/esp-idf/pull/7296
2021-07-23 17:49:34 +05:30
Marius Vikhammer
a29a6ceef0 uart: update register headers and examples for S3 2021-07-22 12:05:49 +08:00
Renz Bagaporo
7c22cccb9c esp32: cleanup build script 2021-07-16 20:14:27 +08:00
Cao Sen Miao
3aa9ac2469 usb_serial_jtag: Add blocking driver to support vfs. 2021-07-05 11:22:38 +08:00
Shu Chen
6fce2930d0 esp32h2: enable more components to support esp32h2
Involved components:
 * app_trace
 * esp-tls
 * esp_adc_cal
 * esp_pm
 * esp_serial_slave_link
 * esp_timer
 * freertos
 * idf_test
 * log
 * mbedtls
 * newlib
 * perfmon
 * spi_flash
 * spiffs
 * ulp
 * unity
 * vfs
2021-07-01 19:53:11 +08:00
Jeroen Domburg
2c75f63f89 * ets_delay_us(1) has too much overhead; change logic
* Fix MR comments
2021-04-28 16:38:24 +08:00
Jiacheng Guo
bbb0e7a573 vfs: fix build & ci errors 2021-04-15 15:19:00 +08:00
Jiacheng Guo
0d986de363 vfs: add default initializer for vfs_eventfd 2021-04-15 15:19:00 +08:00
Jiacheng Guo
40035edcac vfs: add doc links 2021-04-15 15:19:00 +08:00
Jiacheng Guo
7c64d1530a vfs: modify copyright header 2021-04-15 15:18:59 +08:00
Jiacheng Guo
37a992bbde vfs: add example for eventfd 2021-04-15 15:18:59 +08:00
Jiacheng Guo
7b911e4641 vfs: add support for mutiple selects in eventfd 2021-04-15 15:18:59 +08:00
Jiacheng Guo
30e9345bc7 vfs: add unit tests for eventfd 2021-04-15 15:18:59 +08:00
Jiacheng Guo
f6fd2eb164 vfs: add eventfd support
eventfd imitates the behavior of POSIX api `man(2) eventfd`. This api
can be used to pass events to a select based message loop.
2021-04-15 15:18:59 +08:00
Marius Vikhammer
2aead8ba57 Support ESP32S3 Beta 3 target
Update ROM API. Port changes from bringup branch.
2021-03-18 10:24:22 +08:00
Jiacheng Guo
b14830c5c0 vfs: use sys/dirent.h from newlib
The dirent.h shipped with the risc-v compiler lacks `extern "C"`
declartion and causes linkage declartion conflict when included in C++
files. Use the dirent.h from newlib only to avoid this issue.
2021-03-04 14:58:43 +08:00
Marius Vikhammer
eec2419390 system: enable shared stack watchpoint
Enable shared stack watchpoint for overflow detection

Enable unit tests:
 * "test printf using shared buffer stack" for C3
 * "Test vTaskDelayUntil" for S2
 * "UART can do poll()" for C3
2021-02-18 15:38:30 +08:00
morris
753a929525 global: fix sign-compare warnings 2021-01-12 14:05:08 +08:00
Ivan Grokhotkov
b1c4107275 vfs: zero-initialize struct stat in *_stat and *_fstat handlers
...otherwise some fields will contain garbage values.
This wasn't noticed until HAVE_BLKSIZE got enabled in newlib builds.
2020-12-29 16:18:04 +01:00
Angus Gratton
c3ba995f2c Merge branch 'ci/ccomp_performance_tests' into 'master'
unit_test: Refactor all performance tests that rely on cache compensated timer

See merge request espressif/esp-idf!11709
2020-12-24 13:44:52 +08:00
Angus Gratton
1741ae941e vfs: Update for esp32c3
From internal commit 6d894813
2020-12-24 14:18:02 +11:00
Marius Vikhammer
0a95151a75 unit_test: Refactor all performance tests that rely on cache compensated timer
There is no ccomp timer on C3, which means our performance tests will start
failing again due to variance caused by cache misses.

This MR adds TEST_PERFORMANCE_CCOMP_ macro that will only fail
performance test if CCOMP timer is supported on the target
2020-12-22 18:56:24 +11:00
Angus Gratton
5228d9f9ce esp32c3: Apply one-liner/small changes for ESP32-C3 2020-12-01 10:58:50 +11:00
Angus Gratton
420aef1ffe Updates for riscv support
* Target components pull in xtensa component directly
* Use CPU HAL where applicable
* Remove unnecessary xtensa headers
* Compilation changes necessary to support non-xtensa gcc types (ie int32_t/uint32_t is no
  longer signed/unsigned int).

Changes come from internal branch commit a6723fc
2020-11-13 07:49:11 +11:00