nuttx/include
chenrun1 a1ccf15e39 idr:Tool for associating discrete ids with addresses
This is a tool for associating discrete IDs with addresses.
This tool is implemented through the red-black tree method provided by <sys/tree.h>, and the time complexity when calling, searching, and deleting is optimized to O(logn)
The implementation is the moving node operation of two red-black trees
1. When applying for a node, it will first check whether there is an available node in the "removed" tree. If so, the memory address of the node will be reused and moved to the "alloced" tree.
2. If the "removed" tree is an "empty tree", then the node will be requested from the memory and added to the "alloced" tree
3. Similarly, when removing a node, we set the address pointed to in the node to "NULL" and move it to the "removed" tree. Next time we alloc the node, we can reduce the overhead caused by memory application
For now, we still have something that can be optimized, and that is the memory elimination mechanism of the "removed tree". The current implementation will only release all the content under the "removed" tree when the idtree is destroyed.

Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2024-08-19 11:05:40 -03:00
..
android
arpa
crypto include/crypto/curve25519.h: fix gcc14 error 2024-05-31 18:14:11 -03:00
cxx add rint and expm1 function to cmath from libm 2024-07-12 12:05:54 +08:00
net
netinet netinet/in.h: add macro definitions to resolve compilation errors 2024-08-19 19:49:42 +08:00
netpacket net/netlink: Add RTM preifx notify support 2024-05-14 10:05:37 -03:00
nuttx idr:Tool for associating discrete ids with addresses 2024-08-19 11:05:40 -03:00
ssp
sys v9fs:File system based on 9P2000L. 2024-08-19 11:05:40 -03:00
.gitignore .gitignore: add ignore 2024-03-14 22:47:55 +08:00
aio.h
alloca.h
assert.h include: When defining NDEBUG, assert will implement alignment standards 2024-05-17 10:18:16 -03:00
byteswap.h
ctype.h Add basic support for locales in order to C++ streams to build and work for simple cases (POSIX / C locale). 2024-04-29 17:34:10 +08:00
debug.h rpmsg/debug: add debug configs and macros 2024-02-15 19:53:55 -08:00
dirent.h
dlfcn.h dlfcn: Add stub for dladdr 2024-07-26 14:39:10 -03:00
dsp.h libdsp: fix gcc14 error and clean up includes 2024-06-02 09:27:36 -03:00
dspb16.h libdsp: fix gcc14 error and clean up includes 2024-06-02 09:27:36 -03:00
elf32.h
elf64.h
elf.h coredump:support coredump aligned access registers 2024-08-12 02:02:25 +08:00
endian.h
err.h
errno.h
execinfo.h libc/execinfo: extract a common backtrace format function 2024-06-29 22:44:39 +08:00
fcntl.h libc/unistd: added an implementation of the lib_flock function 2024-07-14 10:51:41 -03:00
fixedmath.h
fnmatch.h
ftw.h
getopt.h
glob.h
grp.h
hex2bin.h
iconv.h
ifaddrs.h
inttypes.h libs/libc/inttypes: add support for imaxdiv 2024-04-23 10:26:48 -03:00
iso646.h
langinfo.h
libgen.h
libintl.h
limits.h
locale.h
lzf.h
malloc.h
mqueue.h
netdb.h
nl_types.h
nxflat.h
obstack.h
poll.h
pthread.h pthread: add pthread_self/pthread_gettid_np function 2024-06-26 17:40:55 +08:00
pty.h
pwd.h
regex.h
resolv.h
sched.h sched.h: add SCHED_BATCH and SCHED_IDLE definition 2024-07-14 13:20:53 -03:00
search.h hsearch_r: add DELETE action 2024-02-21 13:29:36 -03:00
semaphore.h
signal.h
spawn.h
stdbool.h
stddef.h
stdint.h
stdio.h
stdlib.h libc: add support for reallocarray 2024-04-17 11:36:39 -03:00
stdnoreturn.h
string.h
strings.h libc/lib_bzero:Add bzero prototype. 2024-05-07 14:59:05 +02:00
syscall.h
syslog.h
termios.h
threads.h Fix typo in mtx_timedlock 2024-02-02 09:03:18 -08:00
time.h
unistd.h unistd.h: Adds some posix supported definitions. 2024-06-19 20:47:49 +08:00
utime.h
uuid.h
wchar.h libs/libc/wchar: add ungetwc implementation 2023-12-17 01:39:06 -08:00
wctype.h