nuttx/fs
chao an 87f134cfaa sched/sleep: replace all Signal-based sleep implement to Scheduled sleep
Nuttx currently has 2 types of sleep interfaces:

1. Signal-scheduled sleep: nxsig_sleep() / nxsig_usleep() / nxsig_nanosleep()
Weaknesses:
a. Signal-dependent: The signal-scheduled sleep method is bound to the signal framework, while some driver sleep operations do not depend on signals.
b. Timespec conversion: Signal-scheduled sleep involves timespec conversion, which has a significant impact on performance.

2. Busy sleep: up_mdelay() / up_udelay()
Weaknesses:
a. Does not actively trigger scheduling, occupy the CPU loading.

3. New interfaces: Scheduled sleep: nxsched_sleep() / nxsched_usleep() / nxsched_msleep() / nxsched_ticksleep()
Strengths:
a. Does not depend on the signal framework.
b. Tick-based, without additional computational overhead.

Currently, the Nuttx driver framework extensively uses nxsig_* interfaces. However, the driver does not need to rely on signals or timespec conversion.
Therefore, a new set of APIs is added to reduce dependencies on other modules.

(This PR also aims to make signals optional, further reducing the code size of Nuttx.)

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-10-17 14:05:02 +08:00
..
aio fs/file: unify prefix about file_xxx api, like file_open, file_ioctl 2025-06-12 18:12:42 +08:00
binfs fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
cromfs fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
driver fs/driver: Add a generic function to find a driver pointer by filesystem path 2025-10-11 00:47:02 +08:00
event fs: Move inotify.c from fs/notify/ to fs/vfs/ 2025-06-23 18:17:10 -03:00
fat fs/fat: Fix wrong alloc used in fat_zero_cluster() 2025-08-29 19:18:32 +02:00
hostfs style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
inode fs/fs_files: restore fd before calling fdlist_install 2025-06-26 09:31:14 -03:00
littlefs style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
mmap fs/mmap/Kconfig: fix reference to non-existent readme 2025-10-11 17:07:51 -04:00
mnemofs style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
mount fs: Move inotify.c from fs/notify/ to fs/vfs/ 2025-06-23 18:17:10 -03:00
mqueue fs/vfs: clear filep when call file_open/file_mq_open to avoid random value 2025-06-26 09:31:14 -03:00
nfs style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
nxffs style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
partition style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
procfs arch: optimize up_check_tcbstack for stack overflow detection 2025-09-27 12:56:11 +08:00
romfs style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
rpmsgfs sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
semaphore fs: Move inotify.c from fs/notify/ to fs/vfs/ 2025-06-23 18:17:10 -03:00
shm fs: Move inotify.c from fs/notify/ to fs/vfs/ 2025-06-23 18:17:10 -03:00
smartfs fs/smartfs: Fix a fatal bug about sector writing after seek 2025-06-13 20:42:36 +08:00
socket fs/vfs: Separate file descriptors from file descriptions 2025-06-12 18:12:42 +08:00
spiffs style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
tmpfs fs/tmpfs: Skip any slash at the beginning of relpath 2024-12-07 11:40:00 +08:00
unionfs style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
userfs fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
v9fs refactor: fix spelling in private field names 2025-05-24 09:44:22 -03:00
vfs sched/signal: Remove shadow definitions to reduce unnecessary API 2025-10-14 17:40:18 +08:00
zipfs fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
CMakeLists.txt fs: migrate to SPDX identifier 2024-11-06 01:58:54 +08:00
fs_heap.c fs_heap:add fs_heap_mallinfo_task 2025-01-15 17:12:50 +08:00
fs_heap.h fs_heap:add fs_heap_mallinfo_task 2025-01-15 17:12:50 +08:00
fs_initialize.c fs: Move inotify.c from fs/notify/ to fs/vfs/ 2025-06-23 18:17:10 -03:00
Kconfig fs: Move inotify.c from fs/notify/ to fs/vfs/ 2025-06-23 18:17:10 -03:00
Makefile fs: Move inotify.c from fs/notify/ to fs/vfs/ 2025-06-23 18:17:10 -03:00