MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / list_thread

Function list_thread

components/finsh/cmd.c:159–286  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

157}
158
159long list_thread(void)
160{
161 rt_base_t level;
162 list_get_next_t find_arg;
163 struct rt_object_information *info;
164 rt_list_t *obj_list[LIST_FIND_OBJ_NR];
165 rt_list_t *next = (rt_list_t *)RT_NULL;
166 const char *item_title = "thread";
167 const size_t tcb_strlen = sizeof(void *) * 2 + 2;
168 const size_t usage_strlen = sizeof(void *) + 1;
169 int maxlen;
170
171 list_find_init(&find_arg, RT_Object_Class_Thread, obj_list, sizeof(obj_list) / sizeof(obj_list[0]));
172 info = rt_list_entry(find_arg.list, struct rt_object_information, object_list);
173
174 maxlen = RT_NAME_MAX;
175
176#ifdef RT_USING_SMP
177 rt_kprintf("%-*.*s cpu bind pri status sp stack size max used left tick error tcb addr usage\n", maxlen, maxlen, item_title);
178 object_split(maxlen);
179 rt_kprintf(" --- ---- --- ------- ---------- ---------- ------ ---------- -------");
180 rt_kprintf(" ");
181 object_split(tcb_strlen);
182 rt_kprintf(" ");
183 object_split(usage_strlen);
184 rt_kprintf("\n");
185#else
186 rt_kprintf("%-*.*s pri status sp stack size max used left tick error tcb addr usage\n", maxlen, maxlen, item_title);
187 object_split(maxlen);
188 rt_kprintf(" --- ------- ---------- ---------- ------ ---------- -------");
189 rt_kprintf(" ");
190 object_split(tcb_strlen);
191 rt_kprintf(" ");
192 object_split(usage_strlen);
193 rt_kprintf("\n");
194#endif /*RT_USING_SMP*/
195
196 do
197 {
198 next = list_get_next(next, &find_arg);
199 {
200 int i;
201 for (i = 0; i < find_arg.nr_out; i++)
202 {
203 struct rt_object *obj;
204 struct rt_thread *thread;
205
206 obj = rt_list_entry(obj_list[i], struct rt_object, list);
207 level = rt_spin_lock_irqsave(&info->spinlock);
208
209 if ((obj->type & ~RT_Object_Class_Static) != find_arg.type)
210 {
211 rt_spin_unlock_irqrestore(&info->spinlock, level);
212 continue;
213 }
214 /* copy info */
215 rt_spin_unlock_irqrestore(&info->spinlock, level);
216

Callers 15

cmd_psFunction · 0.85
cmd_listFunction · 0.85
rt_hw_trap_udefFunction · 0.85
rt_hw_trap_pabtFunction · 0.85
rt_hw_trap_dabtFunction · 0.85
assert_handlerFunction · 0.85
rt_hw_trap_undefFunction · 0.85
rt_hw_trap_swiFunction · 0.85
rt_hw_trap_pabtFunction · 0.85
rt_hw_trap_dabtFunction · 0.85
rt_hw_trap_resvFunction · 0.85

Calls 8

rt_kprintfFunction · 0.85
rt_strerrorFunction · 0.85
rt_thread_get_usageFunction · 0.85
list_find_initFunction · 0.70
object_splitFunction · 0.70
list_get_nextFunction · 0.70
rt_spin_lock_irqsaveFunction · 0.50

Tested by

no test coverage detected