summaryrefslogtreecommitdiff
path: root/include/rtthread.h
AgeCommit message (Collapse)Author
2026-05-19feat(kernel): Check interrupt-disabled context in RT_DEBUG_SCHEDULER_AVAILABLEwdfk-prog
2026-04-07fix[src][thread]: add defensive check for idle thread suspensionwdfk-prog
2026-03-12refactor(core): Move __rt_fls to kservicewdfk-prog
2026-02-12feat(console): Add console output enable switchwdfk-prog
- rt_console_output_enabled()/rt_console_output_is_enabled() gate rt_kprintf/rt_kputs output with the switch
2025-09-30doxygen: cleanup code for group_thread_managementChen Wang
The cleanup involved three parts: - Merging the standalone "/**@{*/" into "@addtogroup group_thread_management" - Changing "/**@}*/" to "/** @} group_thread_management */", adding the group name makes it easier to find the matching "@{" part. - Deleting the "@addtogroup" directive in "include/rtthread.h" because this header file doesn't have doxygen comments. All doxygen comments for function bodies are defined in other .c files. Note, we remian two doxygen comments for rt_thread_inited_hookproto_t and rt_thread_idle_sethook in the "include/rtthread.h". rt_thread_inited_hookproto_t is really defined here. For rt_thread_idle_sethook, please see FIXME comment for reason. Signed-off-by: Chen Wang <[email protected]>
2025-09-29doxygen: cleanup code for group_object_managementChen Wang
The cleanup involved three parts: - Merging the standalone "/**@{*/" into "@addtogroup group_object_management" - Changing "/**@}*/" to "/** @} group_object_management */", adding the group name makes it easier to find the matching "@{" part. - Deleting the "@addtogroup" directive in "include/rtthread.h" because this header file doesn't have doxygen comments. All doxygen comments for function bodies are defined in "src/object.c". Plus minor cleanup for group_hook in src/object.c. Signed-off-by: Chen Wang <[email protected]>
2025-09-02doxygen: updated doc for thread management subsystemChen Wang
Signed-off-by: Chen Wang <[email protected]>
2025-09-02[Add][kernel/thread]Add thread overflow hook and testcases:thread_overflow_tc.c.Rbb666
2025-08-30[Add][kservice]Add thread usage support.Rbb666
2025-07-22doxygen: promote object management to a separate pageChen Wang
For "RT-Thread User Guide": Take the "RT-Thread Kernel Object Model" sub-section out of the "Kernel Basics" section and rename it to "Object Management". Correspondingly, rename the "Kernel Object Management" section in the "RT-Thread API Guide" to "Object Management". Signed-off-by: Chen Wang <[email protected]>
2025-07-22doxygen: group name all in lowcase (part 2) (#10530)Chen Wang
* doxygen: fs: unify groupname to lowercase Signed-off-by: Chen Wang <[email protected]> * doxygen: drivers: unify groupname to lowercase Signed-off-by: Chen Wang <[email protected]> * doxygen: signal: unify groupname to lowercase Signed-off-by: Chen Wang <[email protected]> --------- Signed-off-by: Chen Wang <[email protected]>
2025-06-25doxygen: group name all in lowcaseChen Wang
This patch only updated the groups defined in documentation/0.doxygen. Other groups will be moved into documentation/0.doxygen and updated at that time. Signed-off-by: Chen Wang <[email protected]>
2025-05-29doxygen: change group_Device to group_device_driverChen Wang
The originally defined "group_Device" should actually be part of the device-driver component, so create a new "group_device_driver" and then rename "group_Device" to "group_device_driver". Signed-off-by: Chen Wang <[email protected]>
2025-05-23[clock]添加 rt_tick_get_delta 函数 htl5241
2025-02-22fix: clear error compilation of signal in qemu-a9 smp modekurisaw
2025-02-15doxygen: add prefix for groups (#9991)Chen Wang
* doxygen: add prefix for groups Add "group_" prefix to doxygen group names. This makes it easier to grep with group name later. This patch only modifies the groups defined in the pathes of INPUT of documentation/Doxyfile: INPUT = . \ ../src \ ../include \ ../components/finsh \ ../components/drivers/include/drivers \ ../components/drivers/clk \ ../components/dfs/dfs_v2/src \ ../components/dfs/dfs_v2/include Other groups are not touched. Signed-off-by: Chen Wang <[email protected]> * ci: fixed error report when run file_check.py Such as: - "please delete extra space at the end of this line." - "the RT-Thread error code should return negative value. e.g. return -RT_ERROR" Signed-off-by: Chen Wang <[email protected]> --------- Signed-off-by: Chen Wang <[email protected]>
2024-12-13[FIXUP] __rt_clz loss in aarch64GuEe-GUI
Signed-off-by: GuEe-GUI <[email protected]>
2024-11-03feat: Added rt_interrupt_context* family for nested interrupt handlingShell
These changes introduce the rt_interrupt_context family, providing a mechanism for managing nested interrupts. The context management ensures proper storage and retrieval of interrupt states, improving reliability in nested interrupt scenarios by enabling context tracking across different interrupt levels. This enhancement is essential for platforms where nested interrupt handling is crucial, such as in real- time or multi-threaded applications. Changes: - Defined rt_interrupt_context structure with context and node fields in `rtdef.h` to support nested interrupts. - Added rt_slist_pop function in `rtservice.h` for simplified node removal in singly linked lists. - Declared rt_interrupt_context_push, rt_interrupt_context_pop, and rt_interrupt_context_get functions in `rtthread.h` to manage the interrupt/exception stack. - Modified AArch64 CPU support in `cpuport.h` to include rt_hw_show_register for debugging registers. - Refactored `_rt_hw_trap_irq` in `trap.c` for context-aware IRQ handling, with stack push/pop logic to handle nested contexts. - Implemented interrupt context push, pop, and retrieval logic in `irq.c` to manage context at the CPU level. Signed-off-by: Shell <[email protected]>
2024-10-25fix: suppress unused warnings when DEBUG disabledKunYi Chen
When RT_USING_DEBUG is disabled, variables used only in RT_ASSERT statements become unused, triggering -Wunused-but-set-variable compiler warnings. These variables are essential for runtime assertions in debug builds but appear unused in release builds. Example: - Variables used in RT_ASSERT(var != RT_NULL) checks - Affects multiple drivers and components using RT_ASSERT This is a general cleanup to improve code compilation without affecting functionality.
2024-10-21给使用独立的defunct线程添加限制条件heyuanjie87
2024-10-21分离defunctheyuanjie87
2024-09-06[DM] Extended drivers MISC interfaceGuEe-GUI
1. RT_FIELD_PREP: prepare a bitfield element. 2. RT_FIELD_GET: extract a bitfield element. 3. rt_offsetof: member offset of a struct 4. rt_upper_32_bits: high 32 bits of value. 5. rt_lower_32_bits: lower 32 bits of value. 6. rt_upper_16_bits: high 16 bits of value. 7. rt_lower_16_bits: lower 16 bits of value. 8. rt_max_t: fix type of max(...). 9. rt_ilog2: integer logarithm base 2. Signed-off-by: GuEe-GUI <[email protected]>
2024-07-19[src][tick]rt_tick setting arbitrary value function is added to support ↵wdfk-prog
low-power wake-up tick compensation
2024-06-27[doc][doxygen] Fix hook struct error.supperthomas
Signed-off-by: supperthomas <[email protected]>
2024-06-26[doc][doxygen] Fix doxygen struct error.supperthomas
Signed-off-by: supperthomas <[email protected]>
2024-06-13[kservice] Enhance support for backtrace service (#9037)Shell
[feat] Enhance support for backtrace service rt_backtrace_formatted_print() and rt_backtrace_to_buffer() to help debug routines. Also, following modification are included: - make rt_backtrace_frame patchable with weak attr - replace lwp backtrace with sync output Signed-off-by: Shell <[email protected]>
2024-05-28[arm64] add hw thread self (#8942)Shell
* [libcpu] arm64: Add hardware thread_self support This patch introduces hardware-based thread self-identification for the AArch64 architecture. It optimizes thread management by using hardware registers to store and access the current thread's pointer, reducing overhead and improving overall performance. Changes include: - Added `ARCH_USING_HW_THREAD_SELF` configuration option. - Modified `rtdef.h`, `rtsched.h` to conditionally include `critical_switch_flag` based on the new config. - Updated context management in `context_gcc.S`, `cpuport.h` to support hardware-based thread self. - Enhanced `scheduler_mp.c` and `thread.c` to leverage the new hardware thread self feature. These modifications ensure better scheduling and thread handling, particularly in multi-core environments, by minimizing the software overhead associated with thread management. Signed-off-by: Shell <[email protected]> * fixup: address suggestion * fixup: rt_current_thread as global * scheduler: add cpu object for UP scheduler Also, maintain the rt_current_thread in cpu object on UP scheduler. --------- Signed-off-by: Shell <[email protected]>
2024-05-17[smart] select console device dynamically (#8949)Shell
* [smart] select console device dynamically - Fixed compiler warning on terminal subsystem for `components/lwp/terminal/terminal.h` - Updated default console setup to dynamically select an appropriate tty device based on the configured console device name. Signed-off-by: Shell <[email protected]> * fixup: remove useless codes --------- Signed-off-by: Shell <[email protected]>
2024-05-11[include/rtthread.h] rt_thread_close函数声明应当与RT_USING_HEAP无关Yang Xijing
2024-05-08[src] add rt_hw_cpu_id() wrapper API (#8894)Shell
* [src] add rt_hw_cpu_id() wrapper API rt_hw_cpu_id() is an unsafe API which should not be used by most codes directly. It's error-prone because it must be used in proper context, otherwise it can lead to errors and unpredictable behavior. This patch adds a wrapper API for rt_hw_cpu_id() to address this risk. It includes the context-checking functionality and provides a safer alternative for obtaining CPU IDs, ensuring that it is used correctly within the appropriate context. Signed-off-by: Shell <[email protected]> * fixup UMP * update API & comment * ci: cpp_check --------- Signed-off-by: Shell <[email protected]>
2024-05-06[src][Kconfig]make RT_ASSERT independent of RT_USING_DEUBGzms123456
2024-05-01[kernel] add rt_thread_close()Shell
* [thread] Add rt_thread_close() This patch introduces a new function `rt_thread_close()` to enhances the usability and maintainability by providing a dedicated mechanism for closing threads. - A new function `rt_thread_close()` is added to the API, providing a standardized approach for closing threads. - The `rt_thread_close()` function removes a thread from the thread queue, updates its status to indicate closure, and performs the thread timer detaching which is a embedded timer in thread object. - Additionally, the `rt_thread_detach()` function is modified to utilize `rt_thread_close()` internally, streamlining the thread detachment process. Signed-off-by: Shell <[email protected]>
2024-04-20[kernel] move errno functions into klibcMeco Man
2024-04-19add cpu upShell
2024-04-19[src] Fixup UP irq_spinlockShell
Use scheduler lock in up irq_spinlock to avoid scheduling during spinlock. Signed-off-by: Shell <[email protected]>
2024-04-19fix for art-pi smartxiao-mang
2024-04-19fix for art-pi smartxiao-mang
2024-03-20[kernel] remove redundant _scheduler_stack_checkShell
2024-03-20[kernel] move std libc related to rtklibc.hMeco Man
2024-02-23🎯 Sync smart & scheduler codes (#8537)Shell
Signed-off-by: Shell <[email protected]> Co-authored-by: xqyjlj <[email protected]>
2024-02-20[ci] open ci check with function declaration warning (#8546)Yuqiang Wang
2024-02-19[kernel] fix some strict compiling warningsMeco Man
2024-01-16[kservice] MT-safe output support (kprintf/kputs)Shell
Signed-off-by: Shell <[email protected]>
2024-01-09[kernel] fixup of data racing accessing percpu objects (#8475)Shell
Signed-off-by: Shell <[email protected]>
2024-01-02[kernel] support for hook listShell
Signed-off-by: Shell <[email protected]>
2024-01-02[kernel] Add hook for malloc servicesShell
Including the patch for memory allocation, testsuites and fixups of static analysis. Signed-off-by: Shell <[email protected]>
2023-12-22✨ feat: spinlock should lock sched (#8360)xqyjlj
2023-11-21[libc] add RT_USING_INTERNAL_LIBC_ONLY macroMeco Man
This option is for RT-Thread Nano version. If select this option, it will not compile components/libc folder and only use tool chain internal libc. Normally, the tool chain internal is only cover ISO standard (e.g. armcc), but some tool chains' internal libc will cover more than ISO standard (e.g. newlib).
2023-10-26[ctime] fixup of data racing (#8187)Shell
Signed-off-by: Shell <[email protected]>
2023-10-25🎈 perf: perf rt_hw_interrupt_disable/enable (#8042)xqyjlj
Signed-off-by: Shell <[email protected]> Co-authored-by: Shell <[email protected]>