fangxinyong
903e87a7bd
builtin: support uid/gid config for binfs app
...
Implement I_SUID/I_SGID feature for binfs in the POSIX compliant way.
If set-user-ID bit is set in the file permissions, then the effective
user ID of process shall be set to UID of the new process image file.
test case:
hello example emulates to set uid and file set-user-ID bit, and call
geteuid and getegid API.
UID = 2000
GID = 3000
MODE = 06555
nsh> ls -l /bin/hello
-r-sr-sr-x 2000 3000 0 hello
nsh> hello
geteuid:2000
getegid:3000
Signed-off-by: fangxinyong <fangxinyong@xiaomi.com>
2023-08-14 01:37:00 +08:00
yangyalei
50428979d0
fix wait after vfork return error
...
Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2023-08-11 09:30:45 -06:00
anjiahao
fa676f264f
gdbstub:fix typo
...
CC: umm_heap/umm_zalloc.c gdbstub/lib_gdbstub.c:599:12: error: conflicting types for ‘gdb_hex2bin’; have ‘int(void *, size_t, const void *, size_t)’ {aka ‘int(void *, long unsigned int, const void *, long unsigned int)’}
599 | static int gdb_hex2bin(FAR void *buf, size_t buf_len,
| ^~~~~~~~~~~
gdbstub/lib_gdbstub.c:102:16: note: previous declaration of ‘gdb_hex2bin’ with type ‘ssize_t(void *, size_t, const void *, size_t)’ {aka ‘long int(void *, long unsigned int, const void *, long unsigned int)’}
102 | static ssize_t gdb_hex2bin(FAR void *buf, size_t buf_len,
| ^~~~~~~~~~~
gdbstub/lib_gdbstub.c: In function ‘gdb_write_memory’:
gdbstub/lib_gdbstub.c:1079:38: warning: passing argument 6 of ‘gdb_put_memory’ from incompatible pointer type [-Wincompatible-pointer-types]
1079 | addr, length, gdb_hex2bin);
| ^~~~~~~~~~~
| |
| int (*)(void *, size_t, const void *, size_t) {aka int (*)(void *, long unsigned int, const void *, long unsigned int)}
gdbstub/lib_gdbstub.c:743:49: note: expected ‘gdb_format_func_t’ {aka ‘long int (*)(void *, long unsigned int, const void *, long unsigned int)’} but argument is of type ‘int (*)(void *, size_t, const void *, size_t)’ {aka ‘int (*)(void *, long unsigned int, const void *, long unsigned int)’}
743 | gdb_format_func_t format)
| ~~~~~~~~~~~~~~~~~~^~~~~~
gdbstub/lib_gdbstub.c: In function ‘gdb_query’:
gdbstub/lib_gdbstub.c:1223:60: warning: format ‘%d’ expects argument of type ‘int’, but argument 7 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
1223 | "Name: %s, State: %s, Priority: %d, Stack: %d",
| ~^
| |
| int
| %ld
1224 | tcb->name, thread_state, tcb->sched_priority,
1225 | tcb->adj_stack_size);
| ~~~~~~~~~~~~~~~~~~~
| |
| size_t {aka long unsigned int}
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2023-08-11 20:16:17 +08:00
chao an
60c4d61c02
libs/libc/hex2bin: enhance 64-bit compatibility
...
Signed-off-by: chao an <anchao@xiaomi.com>
2023-08-11 19:43:37 +08:00
liaoao
74dddfe92b
fdt: add libfdt support
...
Signed-off-by: liaoao <liaoao@xiaomi.com>
2023-08-10 20:47:37 +08:00
zhangyuan21
b705103f23
arm64: save and restore fpu regs in jmp when ARCH_FPU enabled
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-10 13:12:16 +08:00
fangxinyong
896f34fde9
sched: implement effective uid and gid interfaces
...
Implement 'effective' setuid, getuid, setgid, and getgid interfaces.
These will be inheritance by all child task groups. These definitons
are explicitly specified here:
https://pubs.opengroup.org/onlinepubs/000095399/functions/geteuid.html
https://pubs.opengroup.org/onlinepubs/000095399/functions/getegid.html
https://pubs.opengroup.org/onlinepubs/000095399/functions/seteuid.html
https://pubs.opengroup.org/onlinepubs/000095399/functions/setegid.html
Signed-off-by: fangxinyong <fangxinyong@xiaomi.com>
2023-08-09 17:07:58 +08:00
Petro Karashchenko
aa3eeaa62a
libs/libc: use _SCHED_GETPID in getpgrp implementation
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2023-08-08 11:58:29 -03:00
Petro Karashchenko
d113722eb2
style: fix indentation issues
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2023-08-08 11:58:29 -03:00
Petro Karashchenko
1b0baa8337
nuttx: use lib_free for memory de-allocation after strdup or asprintf
...
The memory allocated with strdup and asprintf is done via lib_malloc
so we need to use lib_free to deallocate memory otherwise the assertion
"Free memory from the wrong heap" is hit with flat mode and user separated
heap enabled mode.
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2023-08-08 11:58:29 -03:00
cuiziwei
7c8bb8c293
nuttx/tls: Remove the max key limiatation in task_tls_alloc and pthread_key_create
...
Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
2023-08-05 06:33:49 -07:00
cuiziwei
5334c065b4
nuttx/tls:Setting the candidtate index to null prevents dangling pointers.
...
Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
2023-08-05 06:33:49 -07:00
cuiziwei
8ffde7cf16
nuttx/tls:Setting the candidtate index to null prevents dangling pointers.
...
Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
2023-08-05 06:33:49 -07:00
zhangyuan21
699c401889
libc: update arm-m memset function
...
Use the memset function in bionic for better performance.
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-03 21:15:50 -07:00
yinshengkai
26fc59bc35
libc/stdio: changed LIBC_NL_ARGMAX default value to 9
...
If LIBC_NL_ARGMAX is too large, the stack usage of printf family functions will increase
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-08-03 19:07:22 -07:00
zhangyuan21
a10cc49e67
Revert "newlib: libc: memcpy M-profile PACBTI-enablement"
...
This reverts commit 9fa097ab69
.
2023-08-03 07:03:39 -07:00
fangxinyong
2bf434214e
libc/sysconf: add _SC_REALTIME_SIGNALS
...
pass ltp case: open_posix_testsuite/conformance/interfaces/sigwait/7-1.c
Signed-off-by: fangxinyong <fangxinyong@xiaomi.com>
2023-08-02 22:57:28 -07:00
fangxinyong
da3a75da2c
libc/net: compatible with Android for htonq/ntohq
...
Signed-off-by: fangxinyong <fangxinyong@xiaomi.com>
2023-08-02 22:47:29 -07:00
zhangyuan21
3625385541
arch_memcpy: Optimize arch memcpy for armv7-m and armv8-m
...
Use ldm and stm instruction to optimize performance when
both src and dst are 32-bit aligned.
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-02 16:52:25 +02:00
dongjiuzhu1
1920ff31d3
libs/libc/gpsutils/minmea: move minmea library from apps/gpsutils
...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2023-08-01 23:09:46 -07:00
yangyalei
6a5cf6d3ff
ltp: fix review questions
...
Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2023-08-01 09:35:36 -07:00
yangyalei
f40eee50d6
pwd: Add initial implementation of getpwent
...
fix ltp sigqueue testcase crash in getpwent:
nsh> ltp_sigqueue_3_1
core dumped
Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2023-07-31 07:50:10 -07:00
yangyalei
4ecff53e2c
sigaltstack: Add initial implementation of sigaltstack
...
fix ltp testcase compile error:
ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/31-1-buildonly.c:16:13: \
error: ‘sigaltstack’ undeclared (first use in this function)
16 | dummyvar = sigaltstack;
| ^~~~~~~~~~~
Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2023-07-31 07:50:10 -07:00
yangyalei
ed705f9cb3
sysconf: add _SC_THREAD_THREADS_MAX response
...
fix ltp_pthread_create_s_c1 test get wrong PTHREAD_THREADS_MAX.
Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2023-07-31 07:50:10 -07:00
dongjiuzhu1
5d09b4cbd0
libc/rand_r: support rand_r api
...
refs to https://pubs.opengroup.org/onlinepubs/7908799/xsh/rand.html
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2023-07-29 07:28:23 -07:00
dongjiuzhu1
afb473707f
libc/pthread: add pthread_attr_set/getscope
...
refs to https://pubs.opengroup.org/onlinepubs/7908799/xsh/pthread_attr_setscope.html
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2023-07-28 20:55:22 -07:00
guoshichao
02153a2afb
pthread_atfork: fix the incorrect description in comments
...
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2023-07-26 04:51:13 -07:00
guoshichao
9d7f349664
libs/pthread/pthread_atfork: fulfill implement pthread_atfork function
...
1. add the pthread_atfork implementation
2. the pthread_atfork implementation are referred to https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_atfork.html
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2023-07-26 10:41:52 +02:00
guoshichao
3524f4b9ce
libs/libc/fork: add lib_fork implementation
...
1. add lib_fork api in libs/libc, we need a fork() api to implement the
fork relative method, such as pthread_atfork
2. rename the assembly fork entry function name to up_fork(), and rename
the up_fork() to arch specific name, such as
sim_fork()/arm_fork()/mips_fork() etc.
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2023-07-26 10:41:52 +02:00
Xiang Xiao
f3269a6caa
sched: Rename DEBUG_TCBINFO to ARCH_HAVE_TCBINFO
...
and select if the arch support to define g_tcbinfo variable
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-07-26 09:33:38 +02:00
Tiago Medicci Serrano
a5c92582a4
Rename CamelCase symbols to lowercase
2023-07-25 08:51:17 -07:00
Alan Carvalho de Assis
35ec548033
Remove empty lines with spaces found in the source code
2023-07-25 08:51:17 -07:00
Neale Ferguson
ed4f651bbd
Fix modlib to get binary loading working again
...
This patch fixes the issue reported here:
https://github.com/apache/nuttx/issues/9845
2023-07-25 08:51:17 -07:00
Zhe Weng
9dc5a59d50
libc/netdb: Move dns query info and buffer out of the stack
...
The length of these buffers come from Kconfig, it isn't safe to allocate
them on the stack.
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2023-07-25 06:17:48 -07:00
guoshichao
714926e6ea
libs/libc/strftime: add modifier character support to strftime
...
1. make the ltp/open_posix_testsuite/strftime 2-1.c case
2. the modification are referred to https://pubs.opengroup.org/onlinepubs/9699919799/functions/strftime.html
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2023-07-24 10:34:23 -07:00
guoshichao
0092b3e30f
sched/signal/sig_nanosleep: fix the clock_nanosleep posix case
...
1. make the clock_nanosleep can pass
ltp/open_posix_testsuite/clock_nanosleep 13-1, 10-1, 9-1 cases
2. the modification are referred to https://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_nanosleep.html
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2023-07-23 22:02:03 -07:00
anjiahao
9f644579b3
fix sim register & tcb info typo
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2023-07-23 21:59:35 -07:00
chao an
4b94dc3092
toolchain/gcc: fix linker error if enable STACK_CANARIES/LTO at same time
...
If -fstack-protector-all is enabled, gcc linker will need GCC
SSP(Stack Smashing Protector) support, Since the implement of SSP
is related to the OS, most of embedded toolchain does not provide
ssp support, so an error will be reported when linking:
enable CONFIG_LTO_FULL && CONFIG_STACK_CANARIES
arm-none-eabi/bin/ld: cannot find -lssp_nonshared: No such file or directory
arm-none-eabi/bin/ld: cannot find -lssp: No such file or directory
https://github.com/gcc-mirror/gcc/blob/master/gcc/gcc.cc#L983-L985
Since nuttx has already implemented SSP related hook functions,
so in this PR, we filter out this option in the link phase to ensure that
the implementation of lssp/lssp_nonshared will not be referenced
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-21 01:13:34 +08:00
zhanghongyu
3c359da8b9
dns: print dns server address when query failed
...
When debugging the actual dns resolution failure encountered, it is found
that if you know the address of dnsserver, the difficulty of debugging the
problem is reduced.
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2023-07-20 08:11:57 +02:00
Xiang Xiao
a51be33a41
libc/tls: Change the default value of TLS_NELEM to zero
...
to ensure the default config as small as possible.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-07-20 08:11:30 +02:00
Xiang Xiao
abfe082a6f
Kconfig: Simplify the conditional default statement
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-07-16 14:39:20 -03:00
Xiang Xiao
e031a73aef
Kconfig: Change some "default y" to "default !DEFAULT_SMALL"
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-07-16 14:39:20 -03:00
Xiang Xiao
120c4a1660
modlib: Move modlib_allocbuffer to modlib_sectname and modlib_symname
...
it's better to allocate the buffer just before really use it.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-07-16 14:17:07 +03:00
Xiang Xiao
45cdb3efa4
libc/basename: Change len type from int to size_t
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-07-16 00:35:35 +03:00
chao an
f10b54a081
cmake: fix CMake build break
...
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-15 23:32:36 +08:00
anjiahao
b956495c5e
libs/libc:Support gdb rsp protocol
...
you can debug nuttx through any transport layer (serial port, network etc.),
currently supports the following functions:
1. Read and write registers
2. Read and write memory
3. Switch thread and read stack information
Future support plans:
1. Support breakpoint, watch point (requires architecture support).
related information:
https://sourceware.org/gdb/onlinedocs/gdb/Remote-Protocol.html
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2023-07-15 01:57:11 +08:00
yinshengkai
fe9251b546
libc: export lib_sprintf_internal function
...
This function does not take numbered arguments in printf
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-07-14 00:22:11 +03:00
yinshengkai
135959eb83
libc/printf: fix "%pS" length error
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-07-14 00:22:11 +03:00
chao an
8277229f53
nxstyle: covert utf-8 to ascii
...
libs/libc/stdio/lib_libgetstreams.c: C source, UTF-8 Unicode text
->
libs/libc/stdio/lib_libgetstreams.c: C source, ASCII text
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-14 01:24:50 +08:00
guoshichao
79af1cdfe6
libs/libc/getpgid: add getpgid implementation
...
1. the getpgid function can help to pass the
ltp/open_posix_testsuite/killpg related testcases
2. NuttX do not support process group, so we use the process id as
process group id
3. the implementation are referred to: https://pubs.opengroup.org/onlinepubs/9699919799/functions/getpgid.html
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2023-07-13 19:37:35 +08:00