@@ -701,6 +701,18 @@ enum
701701#define RT_THREAD_CTRL_INFO 0x03 /**< Get thread information. */
702702#define RT_THREAD_CTRL_BIND_CPU 0x04 /**< Set thread bind cpu. */
703703
704+ /**
705+ * CPU usage statistics data
706+ */
707+ struct rt_cpu_usage_stats
708+ {
709+ rt_ubase_t user ;
710+ rt_ubase_t system ;
711+ rt_ubase_t irq ;
712+ rt_ubase_t idle ;
713+ };
714+ typedef struct rt_cpu_usage_stats * rt_cpu_usage_stats_t ;
715+
704716#ifdef RT_USING_SMP
705717
706718#define RT_CPU_DETACHED RT_CPUS_NR /**< The thread not running on cpu. */
@@ -714,15 +726,6 @@ enum
714726#define RT_STOP_IPI 1
715727#endif /* RT_STOP_IPI */
716728
717- struct rt_cpu_usage_stats
718- {
719- rt_uint64_t user ;
720- rt_uint64_t system ;
721- rt_uint64_t irq ;
722- rt_uint64_t idle ;
723- };
724- typedef struct rt_cpu_usage_stats * rt_cpu_usage_stats_t ;
725-
726729#define _SCHEDULER_CONTEXT (fileds ) fileds
727730
728731/**
@@ -762,14 +765,21 @@ struct rt_cpu
762765
763766#ifdef RT_USING_SMART
764767 struct rt_spinlock spinlock ;
768+ #endif /* RT_USING_SMART */
769+ #ifdef RT_USING_CPU_USAGE_TRACER
765770 struct rt_cpu_usage_stats cpu_stat ;
766- #endif
771+ #endif /* RT_USING_CPU_USAGE_TRACER */
767772};
768773
769774#else /* !RT_USING_SMP */
770775struct rt_cpu
771776{
772777 struct rt_thread * current_thread ;
778+ struct rt_thread * idle_thread ;
779+
780+ #ifdef RT_USING_CPU_USAGE_TRACER
781+ struct rt_cpu_usage_stats cpu_stat ;
782+ #endif /* RT_USING_CPU_USAGE_TRACER */
773783};
774784
775785#endif /* RT_USING_SMP */
@@ -947,9 +957,6 @@ struct rt_thread
947957 void * susp_recycler ; /**< suspended recycler on this thread */
948958 void * robust_list ; /**< pi lock, very carefully, it's a userspace list!*/
949959
950- rt_uint64_t user_time ;
951- rt_uint64_t system_time ;
952-
953960#ifndef ARCH_MM_MMU
954961 lwp_sighandler_t signal_handler [32 ];
955962#else
@@ -963,6 +970,11 @@ struct rt_thread
963970#endif /* ARCH_MM_MMU */
964971#endif /* RT_USING_SMART */
965972
973+ #ifdef RT_USING_CPU_USAGE_TRACER
974+ rt_ubase_t user_time ; /**< Ticks on user */
975+ rt_ubase_t system_time ; /**< Ticks on system */
976+ #endif /* RT_USING_CPU_USAGE_TRACER */
977+
966978#ifdef RT_USING_MEM_PROTECTION
967979 void * mem_regions ;
968980#ifdef RT_USING_HW_STACK_GUARD
@@ -976,7 +988,9 @@ struct rt_thread
976988typedef struct rt_thread * rt_thread_t ;
977989
978990#ifdef RT_USING_SMART
979- #define IS_USER_MODE (t ) ((t)->user_ctx.ctx == RT_NULL)
991+ #define LWP_IS_USER_MODE (t ) ((t)->user_ctx.ctx == RT_NULL)
992+ #else
993+ #define LWP_IS_USER_MODE (t ) (0)
980994#endif /* RT_USING_SMART */
981995
982996/**@}*/
0 commit comments