walnux/include/nuttx
chenrun1 a6dc4412ba misc/rwlock:Implementing read/write locks.
A new locking mechanism: read/write locks
When there is a writer it is not possible to put on a read lock or a write lock; when there is a reader it is possible to reenter the read lock but not the write lock.
Writers are exclusive locks, readers are shared locks.
At the same time through the waiter count to determine whether there is currently a blocked task, if there is then in the unlock time to wake up all the waiter, through the priority of the competition to complete the blocked lock execution.
For example:
When we have a reader blocking two waiter writers, when the reader is unlocked it wakes up both writers. The writer with higher priority wakes up and checks for a successful condition and locks the lock, the second writer wakes up and fails to check for a condition and continues to block the lock.

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2023-12-02 19:43:19 -08:00
..
1wire
analog channel gain switching in aefc by ioctl 2023-10-16 21:55:40 +08:00
audio audio: add amr format support 2023-10-25 13:33:21 +08:00
binfmt sched/task_[posix]spawn: Simplify how spawn attributes are handled 2023-10-25 11:55:44 -03:00
can Add new ioctls 2023-10-27 13:52:28 -03:00
clk clk:fix some issues when use rpmsg clk 2023-09-22 08:47:23 +08:00
contactless
crypto Added NXP SE05x support (secure element) 2023-09-09 15:54:08 +08:00
dma dma: support source/destination address auto step 2023-09-27 00:47:02 +08:00
drivers driver/tee: add optee client driver module 2023-11-23 06:25:48 -08:00
eeprom
efuse Add ATSAMA5D2/D4 Secure Fuse Controller (SFC) driver 2023-05-12 16:29:48 -03:00
fs rpmsgblk: bind block inode to ept when create ept 2023-11-22 08:08:12 -08:00
himem xtensa/esp32s3: Add SPIRAM high memory support 2023-11-29 06:33:51 -08:00
hwspinlock hwspinlock: Fix typo error(spin_lock_restore to spin_unlock_irqrestore) 2023-07-25 13:03:31 +02:00
i2c
input input/touchscreen: Bring up TSIOC_[SET|GET]CALIB macro 2023-09-20 20:51:38 +08:00
ioexpander drivers/ioexpander: Add const to the value array of multiwritepin 2023-09-28 10:09:51 +08:00
lcd drivers/lcd: change lcd stride from pixel to bytes 2023-11-14 07:30:29 -08:00
leds drivers/userled: add an interface to support LED effects. 2023-06-27 14:44:00 -03:00
lib stdio: Move lib_stream_[initialize|release] from libc/stdio to sched/tls 2023-10-17 13:34:00 +08:00
math math/mpi: add mpi driver in math 2023-10-17 13:43:43 +08:00
mbox
mm mm/kmap: Change kmm_user_map to kmm_map_user 2023-09-29 21:06:16 +08:00
modem cxd56/alt1250: Change power on sequence 2023-07-06 13:18:57 +08:00
motor drivers/foc: add support for drv8301 power-stage driver 2023-11-18 17:07:20 -08:00
mtd mtd:add dhara compatiblity layer 2023-08-22 23:16:14 +08:00
net udp: Add support for SO_TIMESTAMP 2023-11-18 03:10:29 -08:00
note note: remove remaining event code 2023-10-17 09:07:06 +08:00
nx Indent the define statement by two spaces 2023-05-21 09:52:08 -03:00
power support pm runtime base function 2023-09-16 14:44:08 +08:00
rc
regmap nuttx/drivers: add regmap subsystems support. 2023-09-27 00:46:51 +08:00
reset Fixed the reset format error 2023-08-11 20:39:16 +08:00
rf
rptun nuttx: change RPTUNIOC_START and RPTUNIOC_STOP to synchronous 2023-09-20 00:42:02 +08:00
segger c++ compatibility: rename reserved c++ keywords 'public' and 'this' 2023-09-16 19:45:02 +08:00
sensors sensors: mx5611: Add support for MS5607 2023-11-28 16:48:50 -03:00
serial drivers/serial: add ram uart driver 2023-09-19 09:41:07 +08:00
spi driver/spi_slave: support spi_slave asynchronous 2023-07-28 19:11:16 +03:00
syslog syslog: add syslog channel filtering function 2023-07-13 01:04:07 +08:00
timers pwm: add option to set channel output polarity with IOCTL command 2023-08-24 18:25:47 -03:00
usb usbdev/mtp: support mtp class driver 2023-09-16 14:40:08 +08:00
usrsock move usrsock to kernel space 2023-01-11 15:14:03 +08:00
video video.c: modify set_buf call seqence in start_capture function. 2023-11-29 02:01:34 -08:00
virtio virtio: add virtio framework in NuttX 2023-08-10 03:39:39 +08:00
wireless include/nuttx/wireless/lte/lte.h: add fw_version field to lte_version_t 2023-07-23 19:56:38 +08:00
.gitignore
addrenv.h mm_heap: mm dump and panic only valid for the heap own by OS 2023-08-02 06:11:59 -07:00
allsyms.h libc/symtab: Don't include symtab.h in the header files 2023-07-10 23:03:17 +03:00
arch.h mm/kmap: Finalize kmap implementation for RISC-V 2023-11-23 16:38:41 -08:00
ascii.h
atexit.h libc: Implement quick_exit and at_quick_exit 2023-01-25 14:31:37 +02:00
bits.h refine: move BIT Macro to nuttx/bits.h 2023-10-12 14:52:56 +08:00
board.h assert: add regs parameter to board_crashdump function 2023-06-13 09:42:27 +08:00
cache.h armv7/8 cache: add up_get_xcache_size() support 2023-07-15 15:11:07 +08:00
can.h stm32h7: socket CAN error handling. 2023-01-30 11:22:49 +08:00
cancelpt.h task/pthread_cancelpt: Move cancel point handling to libc, data to TLS 2023-11-15 08:52:04 -08:00
clock.h clock.h: use CONFIG_DEBUG_SCHED to test init ticks 2023-11-21 04:01:39 -08:00
compiler.h net/procfs: Support printing multiple IPv6 address per netdev 2023-11-07 19:30:36 +08:00
crc8.h
crc16.h arm64/a64: Add driver for MIPI DSI 2022-12-14 22:37:32 +08:00
crc32.h
crc64.h
elf.h binfmt: Always include arch/elf.h in include/nuttx/elf.h 2023-06-25 19:02:53 -03:00
environ.h
envpath.h
ethtool.h ioctl: add definitions related to ethtool 2023-11-03 22:37:50 +08:00
fdcheck.h libc/fdcheck: add fdcheck module 2023-06-10 02:19:58 +08:00
fdt.h fdt: Add initial FDT support and procfs for userspace export 2023-08-05 12:41:06 -07:00
gdbstub.h libs/libc:Support gdb rsp protocol 2023-07-15 01:57:11 +08:00
hashtable.h hashtable.h: Added a hashtable implementation 2022-12-22 20:20:12 +08:00
init.h support stm32f429i-disco run open flash loader 2023-08-05 12:40:02 -07:00
ipcc.h
irq.h Indent the include statement by two spaces 2023-05-16 12:34:32 -03:00
kmalloc.h mm: include malloc.h in mm/mm.h 2023-06-11 19:37:04 +03:00
kthread.h
lirc.h
list.h list: search prev item in reverse order 2023-11-21 07:59:42 -08:00
mmcsd.h mmcsd: Rename mmc_rpmb_frame_s to rpmb_frame 2023-09-10 23:10:42 +08:00
module.h
mqueue.h Indent the define statement by two spaces 2023-05-21 09:52:08 -03:00
mutex.h misc/mutex: fix assertion if nxmutex_reset() before nxmutex_unlock() 2023-02-04 02:13:15 +08:00
notifier.h notifier: add BLOCKING_INIT_NOTIFIER_HEAD support 2023-09-19 09:32:17 +08:00
nuttx.h
page.h PAGESIZE and PAGEMASK seems as common macro 2023-09-10 18:18:15 +08:00
panic_notifier.h assert: add more information to panic notifier 2023-08-03 03:17:22 -07:00
pgalloc.h
progmem.h
pthread.h sched/tls: remove PTHREAD_CLEANUP from Kconfig 2023-06-14 12:00:48 +08:00
queue.h queue.h: Implement double link list queue split 2023-09-12 22:09:00 +08:00
random.h
reboot_notifier.h reboot: Remove SYS_DOWN to avoid the confusion 2023-04-21 20:37:59 +03:00
rwsem.h misc/rwlock:Implementing read/write locks. 2023-12-02 19:43:19 -08:00
sched.h tcbinfo:remove total_num form tcbinfo. 2023-11-21 21:52:24 -08:00
sched_note.h note: delete sched_note_flatten 2023-11-12 23:52:10 -08:00
scsi.h
sdio.h mmcsd/sdio: fix potential race condition in sdio 2023-03-21 14:40:44 -03:00
sdio_slave.h Add the module of SDIO Slave 2023-08-22 20:28:24 +08:00
semaphore.h semaphore/_SEM_XX: Remove the _SEM redirection macros as unnecessary 2023-11-27 04:52:54 -08:00
signal.h style: fix multiple style issues and remove unused 2023-09-16 14:17:47 +08:00
spawn.h sched/taskfiles: skip unnecessary file open/close operations to improve performance 2023-11-16 07:30:36 -08:00
spinlock.h spinlock: Move the inclusion of stdatomic.h to source file 2023-11-19 20:22:50 +01:00
streams.h c++ compatibility: rename reserved c++ keywords 'public' and 'this' 2023-09-16 19:45:02 +08:00
symtab.h libc/symtab: Move SYMTAB_XXX from unistd/Kconfig to symtab/Kconfig 2023-07-10 13:09:47 -03:00
tee.h driver/tee: add optee client driver module 2023-11-23 06:25:48 -08:00
tls.h task/pthread_cancelpt: Fix task_delete from another task group 2023-11-22 08:05:58 -08:00
trace.h trace: replace SCHED_NOTE_BEGIN to sched_note_begin 2023-04-19 02:53:34 +08:00
userspace.h
vt100.h
wdog.h
wqueue.h wqueue: add work_cancel_sync() support 2023-09-19 15:52:48 +08:00
zoneinfo.h