diff options
| author | geniusgogo <[email protected]> | 2023-10-17 13:07:59 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-10-17 13:07:59 +0800 |
| commit | ecd29fda6005ef19c625f194f9311259ba907a78 (patch) | |
| tree | d0e272f5783ac4a3048238e14a37bcd88b5dc3e6 /include | |
| parent | 7d64cdcf58969b1b2b7e9cfb3aac9e46cb456ae3 (diff) | |
Sync dfs lwp (#8123)
Diffstat (limited to 'include')
| -rw-r--r-- | include/rtdef.h | 31 | ||||
| -rw-r--r-- | include/rthw.h | 2 | ||||
| -rw-r--r-- | include/rtthread.h | 4 |
3 files changed, 29 insertions, 8 deletions
diff --git a/include/rtdef.h b/include/rtdef.h index ad875be194..560d4c08c2 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -726,11 +726,11 @@ enum #define RT_THREAD_CTRL_INFO 0x03 /**< Get thread information. */ #define RT_THREAD_CTRL_BIND_CPU 0x04 /**< Set thread bind cpu. */ -#ifdef RT_USING_SMP - #define RT_CPU_DETACHED RT_CPUS_NR /**< The thread not running on cpu. */ #define RT_CPU_MASK ((1 << RT_CPUS_NR) - 1) /**< All CPUs mask bit. */ +#ifdef RT_USING_SMP + #ifndef RT_SCHEDULE_IPI #define RT_SCHEDULE_IPI 0 #endif /* RT_SCHEDULE_IPI */ @@ -739,6 +739,17 @@ enum #define RT_STOP_IPI 1 #endif /* RT_STOP_IPI */ +#endif /* RT_USING_SMP */ + +struct rt_cpu_usage_stats +{ + rt_uint64_t user; + rt_uint64_t system; + rt_uint64_t irq; + rt_uint64_t idle; +}; +typedef struct rt_cpu_usage_stats *rt_cpu_usage_stats_t; + /** * CPUs definitions * @@ -746,7 +757,7 @@ enum struct rt_cpu { struct rt_thread *current_thread; - + struct rt_thread *idle_thread; rt_uint16_t irq_nest; rt_uint8_t irq_switch_flag; @@ -760,9 +771,11 @@ struct rt_cpu #endif /* RT_THREAD_PRIORITY_MAX > 32 */ rt_tick_t tick; +#ifdef RT_USING_SMART + struct rt_cpu_usage_stats cpu_stat; +#endif }; - -#endif /* RT_USING_SMP */ +typedef struct rt_cpu *rt_cpu_t; struct rt_thread; @@ -936,6 +949,9 @@ struct rt_thread int exit_request; int tid; + rt_uint64_t user_time; + rt_uint64_t system_time; + #ifndef ARCH_MM_MMU lwp_sighandler_t signal_handler[32]; #else @@ -948,11 +964,14 @@ struct rt_thread int *clear_child_tid; #endif /* ARCH_MM_MMU */ #endif /* RT_USING_SMART */ - rt_ubase_t user_data; /**< private user data beyond this thread */ }; typedef struct rt_thread *rt_thread_t; +#ifdef RT_USING_SMART +#define IS_USER_MODE(t) ((t)->user_ctx.ctx == RT_NULL) +#endif /* RT_USING_SMART */ + /**@}*/ /** diff --git a/include/rthw.h b/include/rthw.h index ed512ac14f..60f97f2329 100644 --- a/include/rthw.h +++ b/include/rthw.h @@ -127,6 +127,8 @@ void rt_hw_local_irq_enable(rt_base_t level); #define rt_hw_interrupt_disable rt_cpus_lock #define rt_hw_interrupt_enable rt_cpus_unlock #else +#define rt_hw_local_irq_disable rt_hw_interrupt_disable +#define rt_hw_local_irq_enable rt_hw_interrupt_enable rt_base_t rt_hw_interrupt_disable(void); void rt_hw_interrupt_enable(rt_base_t level); #endif /*RT_USING_SMP*/ diff --git a/include/rtthread.h b/include/rtthread.h index 610115134c..883af363b2 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -624,11 +624,11 @@ void rt_interrupt_leave(void); rt_base_t rt_cpus_lock(void); void rt_cpus_unlock(rt_base_t level); +#endif /* RT_USING_SMP */ + struct rt_cpu *rt_cpu_self(void); struct rt_cpu *rt_cpu_index(int index); -#endif /* RT_USING_SMP */ - /* * the number of nested interrupts. */ |
