27 Commits

Author SHA1 Message Date
Shell
40cd8cce99 feat: Added rt_interrupt_context* family for nested interrupt handling
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 <smokewood@qq.com>
2024-11-03 10:08:45 +08:00
Meco Man
2748a6ada4 [kernel] fix some strict compiling warnings 2024-02-19 01:56:21 -05:00
Shell
e7880a9713 [kernel] support for hook list
Signed-off-by: Shell <smokewood@qq.com>
2024-01-02 19:42:46 +08:00
yanghuang
b51a3420b0 [kernel] 解决rt_slist_for_each_entry宏不能正常遍历slist链表中元素的问题
因rt_slist_for_each_entry宏不能正常调用,在实际开发中去循环再调用rt_slist_entry很不简洁,所以修改了rt_slist_for_each_entry宏中关于链表next的判空处理。目前相关代码在GD32系统的MCU上均能正常工作,相关应用也在生产产品中经过验证。
2023-11-06 10:03:04 +08:00
bin
4d6ceffcab [doxygen] Fix some comments in rtservice.h 2023-02-01 22:31:57 -05:00
rewine
a638a879fb [include] fix comment for rt_container_of 2022-05-25 10:04:55 +08:00
Meco Man
2fd265406e [include] auto formatted 2021-03-08 17:22:21 +08:00
Bernard Xiong
310517b818 [Kernel] Code cleanup 2020-04-10 00:02:57 +08:00
Owen
66cf4b9cf0
Update rtservice.h
更正为正确的Doxygen组定义语法
2018-12-26 10:16:04 +08:00
Bernard Xiong
20bc91d25f [license] Change license to Apache. 2018-10-14 19:38:52 +08:00
Bernard Xiong
41f7f2c284 [Kernel] Update to Apache License v2.0
Update license for RT-Thread kernel.
2018-09-14 22:37:43 +08:00
armink
a969b7096f [slist] Add rt_slist_tail and rt_slist_tail_entry for slist. 2018-09-11 20:06:40 +08:00
Lynx Zhou
754b363839
Add list iterators over list elements
Address the comments from armink@rt-thread
2018-07-11 17:14:44 +08:00
Lynx Zhou
3b9dfc6aed
Add list iterators over list elements
Some non-gnu toolchains don't support gnu C extended keyword "typeof", like MDK (if no "gnu" option) and IAR, in this case we can provide list element manipulation macro functions to iterate over the list.
2018-07-04 15:50:31 +08:00
armink
aa12d66b30 [rtservice] Add rt_slist_first and rt_slist_next API to slist. 2018-06-27 13:05:50 +08:00
bupleurum
3af13de6a5
Update rtservice.h 2018-05-21 19:41:13 +08:00
JasonJiaJie
e9b846d119 [list]1.Modify rt_slist_foreach to rt_slist_for_each_entry. 2.Add rt_sllist_isempty. 3.Make code cleanup
1.Modify rt_slist_foreach to rt_slist_for_each_entry. 2.Add rt_sllist_isempty. 3.Make code cleanup
2017-12-14 09:28:10 +08:00
weety
ed90b9d415 [RTSERVICE] Add rt_list_for_each_entry_safe macros definition. 2017-11-05 22:36:46 +08:00
armink
d3ac388846 [rtservice] Add rt_list_len and rt_slist_len to rtservice.h . 2017-10-19 09:28:17 +08:00
bernard
cd215b2545 [Kernel] header files
1. Remove components.h file;
2. Add libc_* files for standard libc definitions;
3. Add rtdbg.h file for simple debug log;
4. Add single list implementation;
5. Change the 'rt_uint8_t' type of cmd to 'int'.
2017-10-15 22:30:05 +08:00
Bernard Xiong
462885e6f1 [Kernel] rename list_for_each/list_first_entry. 2017-04-09 19:13:21 +08:00
Bernard Xiong
bb1cb89b52 [Kernel] Add list_for_each_entry and list_frist_entry routine.
committed by FH.
2016-05-20 12:24:08 +08:00
Bernard Xiong
79392bb082 Embedded GPLv2 license. 2013-06-24 17:06:09 +08:00
qiuyiuestc@gmail.com
7c7fa51f97 add __RT_SERVICE_H__ definition
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2347 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-10-13 03:26:25 +00:00
dzzxzz@gmail.com
cba2e9bcba convert tabs to 4 spaces in rtservice.h
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2267 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-09-05 05:42:12 +00:00
bernard.xiong@gmail.com
87195cf84e Added memory heap object implementation; Added RT_LIST_OBJECT_INIT macro.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2046 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-04-14 03:52:56 +00:00
bernard.xiong@gmail.com
0f519b6721 move src\kservice.h to include\rtservice.h.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2005 bbd45198-f89e-11dd-88c7-29a3b14d5316
2012-03-22 06:11:44 +00:00