nuttx/drivers/misc
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
..
addrenv.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
CMakeLists.txt drivers/misc/optee: Expanded RPC support. 2025-08-06 02:29:33 +08:00
dev_ascii.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
dev_mem.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
dev_null.c drivers/iovec: revert vector io implement from loop/null/zero driver 2025-01-22 11:29:39 +08:00
dev_zero.c drivers/iovec: revert vector io implement from loop/null/zero driver 2025-01-22 11:29:39 +08:00
goldfish_pipe.c fs/drivers: Avoid causing a busy loop in the program due to context switching induced by sem_post. 2025-03-17 10:44:26 +01:00
Kconfig drivers/misc/optee: Expanded RPC support. 2025-08-06 02:29:33 +08:00
lwl_console.c drivers/lwl: Fix lwl_console.c to support is own up_putc() 2025-10-14 08:36:44 -04:00
Make.defs drivers/misc/optee: Expanded RPC support. 2025-08-06 02:29:33 +08:00
mkrd.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
optee.c drivers/misc/optee: Add error conversion from errno to TEE errors 2025-08-06 02:29:33 +08:00
optee.h drivers/misc/optee: Add error conversion from errno to TEE errors 2025-08-06 02:29:33 +08:00
optee_msg.h drivers/misc/optee: Expanded RPC support. 2025-08-06 02:29:33 +08:00
optee_rpc.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
optee_rpc.h drivers/misc/optee: Expanded RPC support. 2025-08-06 02:29:33 +08:00
optee_smc.c drivers/misc/optee: Expanded RPC support. 2025-08-06 02:29:33 +08:00
optee_smc.h drivers/misc/optee: Add SMC backend for arm archs 2025-05-09 10:29:26 +08:00
optee_socket.c drivers/misc/optee.c: Add shm registration support 2025-05-09 10:29:26 +08:00
optee_supplicant.c drivers/misc/optee: Add error conversion from errno to TEE errors 2025-08-06 02:29:33 +08:00
optee_supplicant.h drivers/misc/optee: Expanded RPC support. 2025-08-06 02:29:33 +08:00
ramdisk.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
rpmsgblk.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
rpmsgblk.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
rpmsgblk_server.c drivers/rpmsgblk_server: fix the syslog format warning 2025-03-03 07:37:13 +08:00
rpmsgdev.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
rpmsgdev.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
rpmsgdev_server.c drivers/misc: fix rpmsg dev poll assert crash 2024-11-12 14:58:53 +08:00
rwbuffer.c bch: add BIOC_DISCARD ioctl that discards cached sector 2025-01-23 02:35:46 +08:00