Commit Graph

1720 Commits

Author SHA1 Message Date
ganjing bc4124c988 (libc/pthread): rename proto to prio in pthread_mutexattr_s
Signed-off-by: ganjing <ganjing@xiaomi.com>
2026-04-21 01:35:13 +08:00
hujun5 e2006b0602 gettid: inline gettid
Improved the performance of pthread lock in protected mode from 145ns to 125ns

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:35:03 +08:00
guoshichao b1b187fe81 header: remove the param name from function declaration
According to the PSE52 POSIX header file specification,
function prototypes declared in header files must not
include parameter names. Otherwise, the header test case
check will fail and prompt us to remove the parameter names.

Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2026-04-21 01:33:02 +08:00
guoshichao a3c4be523e header: remove the param name from function declaration
According to the PSE52 POSIX header file specification,
function prototypes declared in header files must not
include parameter names. Otherwise, the header test case
check will fail and prompt us to remove the parameter names.

Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2026-04-21 01:32:35 +08:00
hujun5 e4981191b7 mutex: add mutex_type.h
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:31:31 +08:00
fangxinyong 2d79388e40 misra_c_10_4_violation: change priorit/policy to int type
In the POSIX, both policy and priority are defined as int type.
To avoid unnecessary cast, NuttX internally changes these to int as well

Signed-off-by: fangxinyong <fangxinyong@xiaomi.com>
2026-04-21 01:29:21 +08:00
guoshichao 1ea50df6e6 pthread: reorganized the locations of pthread-related functions and constants
1. According to the POSIX specification, the functions `pthread_kill`
and `pthread_sigmask` have been moved from `pthread.h` to `signal.h`.
2. As required by the POSIX standard, the pthread-related constants
have been relocated from `pthread.h` to `sys/types.h`.

Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2026-04-21 01:27:57 +08:00
guoshichao 523eaf13af pthead: change the pthread_equal implementation from macro to function
During the build of PSE52 VSX testcases, the pthread_equal() is accessed in the form of a function pointer. Therefore, we have changed the
implementation of pthread_equal() from a macro to an actual function.

Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2026-04-21 01:27:56 +08:00
p-szafonimateusz 5f6f85863b pthread: add pthread_{get|set}concurrency support
Add support for pthread_{get|set}concurrency support.

NuttX uses 1:1 threading model (every pthread is a kernel-managed thread),
so this function has no real effect on the scheduling behavior.

Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2026-04-21 01:27:43 +08:00
p-szafonimateusz 3890a510cb pthread: add pthread_attr_{get|set}guardsize support
This commit adds simple implementation of guardsize for pthreads.
At this moment this option simply increases the size of allocated pthread stack.

At default pthread guard size is set to 0.

Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2026-04-21 01:27:37 +08:00
ligd 36ae9572e3 pthread.h: merge sporadic related struct value together
Signed-off-by: ligd <liguiding1@xiaomi.com>
2026-04-21 01:26:11 +08:00
Jukka Laitinen ce8ee1a8b4 Clean up the nxmutex library
- Remove the redundant holder, as nxsem now manages hoder TID
- Remove DEBUGASSERTIONS which are managed in nxsem
- Remove the "reset" handling logic, as it is now managed in nxsem
- Inline the simplest functions

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:23:18 +08:00
Jukka Laitinen 3f1de39ace Integrate nxmutex support fully into nxsem
This puts the mutex support fully inside nxsem, allowing
locking the mutex and setting the holder with single atomic
operation.

This enables fast mutex locking from userspace, avoiding taking
critical_sections, which may be heavy in SMP and cleanup
of nxmutex library in the future.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:23:17 +08:00
Jukka Laitinen 524d4c2144 Correct the pthread mutex priority inheritance default setting
After pthread mutexes changed to nxmutex, the priority inheritance
was set on by default; even if one tried to control it with
CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT.

Also the CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_PROTECT is not effective.

Fix this by setting the default mutex priority adjustment flags according
to CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT and CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_PROTECT.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:23:15 +08:00
hujun5 1084664be8 add spinlock_type.h
reason:
Due to incomplete handling of spinlock_t in arch/spinlock.h,
it should not be used directly by external code.
Furthermore, because pthread.h and nuttx/spinlock.h have a circular
dependency, pthread.h cannot successfully include nuttx/spinlock.h.
Therefore, we have split spinlock_type.h from spinlock.h.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:18:16 +08:00
yukangzhi 2fdedbd761 libc/pthread: Avoid compiler optimizations for once_control->done
Avoid compiler optimizations that cause judgments to be made using
old values.

Signed-off-by: yukangzhi <yukangzhi@xiaomi.com>
2026-04-21 01:15:52 +08:00
hujun5 be997096e9 pthread: remove enter_critical_section in pthread_barrier_wait
reason:
We decouple semcount from business logic by using an independent counting variable,
which allows us to remove critical sections in many cases.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:14:23 +08:00
hujun5 b8001c4387 pthread_cond_broadcast use wait_count for judement
This commit fixes the comment from https://github.com/apache/nuttx/pull/14581

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:14:20 +08:00
hujun5 28ec0fde7d pthread_cond remove csection
reason:
We decouple semcount from business logic by using an independent counting variable,
which allows us to remove critical sections in many cases.

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2026-04-21 01:13:28 +08:00
openvela-robot 77f0bea7f5 Merge branch 'master' into vela
apache/nuttx commit id: eb27ebba8adfe29644a7b890f86e6f16941921dc

Signed-off-by: ligd <liguiding1@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-04-21 01:12:27 +08:00
openvela-robot 87c6ff19cf mm: Fix some typos
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2026-04-21 01:12:20 +08:00
openvela-robot b2f5ba0753 syslog: convert \n to \r\n in syslog framework layer
Signed-off-by: yangsong8 <yangsong8@xiaomi.com>
2026-04-21 01:12:15 +08:00
openvela-robot 24c239f8f5 arm/cmake: fix cmake compile error
1. The -c parameter should not be added during the link phase, otherwise the link will fail.
2. If it is the clang compiler, its toolchain library should use --print-file-name to find it, otherwise an error will occur

Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2026-04-21 01:12:09 +08:00
openvela-robot 44ed68d400 fs/rpmsgfs: return real err value when open failed
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2026-04-21 01:12:00 +08:00
openvela-robot 85912ed402 syslog/channel: rename syslog_channel() to syslog_channel_register()
Change syslog API naming more reasonable:

1. rename syslog_channel() to syslog_channel_register()
2. rename syslog_channel_remove() to syslog_channel_unregister()

Signed-off-by: chao an <anchao@lixiang.com>
2026-04-21 01:11:54 +08:00
openvela-robot 0fdd165dfa Fix disable msi when msi capability not exist issue
Signed-off-by: yezhonghui <yezhonghui@xiaomi.com>
2026-04-21 01:11:48 +08:00
openvela-robot 61f4f9411d openamp: sync with community
Comminity has upgrade the openamp to the last commit (near 2024.05 Release),
sync back to vela.

Only modify the makefile and upgrade the patch, should be no impact in any
features.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-04-21 01:11:43 +08:00
openvela-robot 4ea93dbabf add a flag of lin internal sleep/wakeup state
Signed-off-by: wangxiaoxin <wangxiaoxin@xiaomi.com>
2026-04-21 01:11:35 +08:00
openvela-robot 5081b31bd0 cmake(sync):sync CMakeLists.txt conflict of libc with github
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2026-04-21 01:11:30 +08:00
openvela-robot 39fce4b20d arch/x86_64: Resolving NUC Boot Failure Issue
The segment of the Xen PVH boot protocol was not specified during linking and was placed before .loader.text, causing the boot to fail

Signed-off-by: liwenxiang1 <liwenxiang1@xiaomi.com>
2026-04-21 01:11:24 +08:00
openvela-robot d2e613094f arm64/makefile: No longer using hwasan pile insertion
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2026-04-21 01:11:19 +08:00
openvela-robot a3dd40b0d9 mm: call sched_note within mm lock
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2026-04-21 01:11:12 +08:00
openvela-robot 8b787c52e2 sched: sync minor differences in community code
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2026-04-21 01:11:07 +08:00
openvela-robot bf0c4ea69a libc/modlib: Make modlib selectable from defconfig
since bootloader may call modlib functions directly
to load elf firmware without binfmt, dlfcn or module.

BTW, this patch also remove the duplicated selecttion

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2026-04-21 01:11:02 +08:00
openvela-robot d194b91929 Revert "math32.h: remove typeof depends"
This reverts commit 4e9f8176a08aa25c7173bc4c748e721b0841ddac.

Reason for revert:
This patch are using to fix the following build warning when build with greenhills compiler:
    CC:  syslog/vsyslog.c "pthread/pthread_create.c", line 443: warning #1931-D: operand of sizeof is
              not a type, variable, or dereferenced pointer expression
              ptcb->cmn.timeslice = MSEC2TICK(CONFIG_RR_INTERVAL);
                                    ^

    CC:  dirent/lib_closedir.c "sched/sched_profil.c", line 81: warning #1931-D: operand of sizeof is not a
              type, variable, or dereferenced pointer expression
        wd_start(&prof->timer, PROFTICK, profil_timer_handler, arg);
                               ^

    "sched/sched_profil.c", line 142: warning #1931-D: operand of sizeof is not a
              type, variable, or dereferenced pointer expression
        wd_start(&prof->timer, PROFTICK, profil_timer_handler, (wdparm_t)prof);
                               ^

    CC:  common/arm_modifyreg8.c "sched/sched_setscheduler.c", line 165: warning #1931-D: operand of sizeof is
              not a type, variable, or dereferenced pointer expression
                tcb->timeslice  = MSEC2TICK(CONFIG_RR_INTERVAL);
                                  ^

    CC:  misc/lib_utsname.c "sched/sched_unlock.c", line 275: warning #1931-D: operand of sizeof is not a
              type, variable, or dereferenced pointer expression
                rtcb->timeslice = MSEC2TICK(CONFIG_RR_INTERVAL);
                                  ^

    "sched/sched_roundrobin.c", line 119: warning #1931-D: operand of sizeof is
              not a type, variable, or dereferenced pointer expression
                tcb->timeslice = MSEC2TICK(CONFIG_RR_INTERVAL);
                                 ^

we need to keep the modification
2026-04-21 01:10:57 +08:00
openvela-robot ac82d776ab usb: Fix issue with the calculation descriptor length error
Signed-off-by: yangsong8 <yangsong8@xiaomi.com>
2026-04-21 01:10:47 +08:00
openvela-robot 0662b2ac02 rpmsgdev/blk: sync with communitfy, minor nxstyle fix
Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-04-21 01:10:42 +08:00
openvela-robot 97534cf708 add lin status changes the format of the reported frame and add the macros that lin needs
Signed-off-by: wangxiaoxin <wangxiaoxin@xiaomi.com>
2026-04-21 01:10:37 +08:00
openvela-robot 492cec3ec5 nuttx/sim: Fix MacOs build error with argument unused during compilation: '-no-pie'
Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
2026-04-21 01:10:31 +08:00
openvela-robot 1f0a222301 sim/m64:Fix ld error with .rodata can not be used when making a PIE object.
/usr/bin/ld: nuttx.rel: relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: failed to set dynamic section sizes: bad value

Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
2026-04-21 01:10:25 +08:00
openvela-robot 80196e894b nuttx: Change the judgment of GCCVER version to greater equal.
Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
2026-04-21 01:10:19 +08:00
openvela-robot 6c85ce6822 vsprintf:fix bug when print int64 0x8000000000000000
stdio/lib_libvsprintf.c:1018:17: runtime error: negation of -9223372036854775808 cannot be
represented in type 'long long int'; cast to an unsigned type to negate this value to itself
    #0 0x3326a86 in vsprintf_internal stdio/lib_libvsprintf.c:1018
    #1 0x332926b in lib_vsprintf stdio/lib_libvsprintf.c:1363
    #2 0x3777978 in vfprintf stdio/lib_vfprintf.c:52
    #3 0x671b3a0 in printf stdio/lib_printf.c:44
    #4 0x37abc0c in hello_main /data/project/code/vela-pt/apps/examples/hello/hello_main.c:38
    #5 0x33201d3 in nxtask_startup sched/task_startup.c:70
    #6 0x3208ecb in nxtask_start task/task_start.c:134
    #7 0x3357a49 in pre_start sim/sim_initialstate.c:52

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2026-04-21 01:10:13 +08:00
openvela-robot 78d736af82 arm/toolchain.defs: sync the whole-archive config with community
Signed-off-by: guoshichao <guoshichao@xiaomi.com>
2026-04-21 01:10:07 +08:00
openvela-robot 47daa79e0b nuttx/x86_64:Add _sinit and _einit initialization.
Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
2026-04-21 01:10:02 +08:00
openvela-robot 5d60745acb strptime.c:len is not defined.
Bring all code that uses the variable len under the CONFIG_LIBC_LOCALE

Signed-off-by: chenjiahua1 <chenjiahua1@xiaomi.com>
2026-04-21 01:09:56 +08:00
openvela-robot 679535b72f coredump: add architecture-specific registers dump, including NVIC and MPU
Signed-off-by: wanggang26 <wanggang26@xiaomi.com>
2026-04-21 01:09:50 +08:00
openvela-robot 1dbe459e5f Increase the chance for _assert to work early in the boot 2026-04-21 01:09:43 +08:00
openvela-robot db1bde8907 Doc: Migrate Versioning and Task Names
Migrate
https://cwiki.apache.org/confluence/display/NUTTX/Versioning+and+Task+Names
to the official wiki

Signed-off-by: Ludovic Vanasse <ludovicvanasse@gmail.com>
2026-04-21 01:09:38 +08:00
openvela-robot ac763890d3 mm/mempool: Merge two memory requests
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2026-04-21 01:09:31 +08:00
openvela-robot 7e009970ce drivers/segger: inline note_sysview_get_timestamp
Avoid another layer of function call to get time.

Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2026-04-21 01:09:12 +08:00