Просмотр исходного кода

!210 [shell] Remove top command
Merge pull request !210 from bernard/bernard_rt-smart

bernard 4 лет назад
Родитель
Сommit
d653807289
1 измененных файлов с 0 добавлено и 185 удалено
  1. 0 185
      components/finsh/cmd.c

+ 0 - 185
components/finsh/cmd.c

@@ -893,189 +893,4 @@ long list(void)
 }
 MSH_CMD_EXPORT(list, list all symbol in system)
 
-#ifdef RT_USING_LWP
-#include <lwp.h>
-#ifdef RT_USING_USERSPACE
-#include <lwp_mm_area.h>
-#endif
-
-#ifdef RT_USING_HEAP
-extern void list_mem(void);
-extern long list_memheap(void);
-#endif
-
-static rt_ubase_t rt_tick_mark = 0;
-static char top_ch;
-
-static void top_tick_hook(void)
-{
-    rt_base_t level;
-    struct rt_thread *thread;
-
-    level = rt_hw_interrupt_disable();
-    thread = rt_thread_self();
-    if (thread)
-    {
-        if (thread->tick_mark != rt_tick_mark)
-        {
-            thread->run_tick = 0;
-            thread->tick_mark = rt_tick_mark;
-        }
-        thread->run_tick++;
-    }
-    rt_hw_interrupt_enable(level);
-}
-
-static void top_getchar_entry(void* parameter)
-{
-    rt_sem_t sem = (rt_sem_t)parameter;
-    while (1)
-    {
-        top_ch = getchar();
-        rt_sem_release(sem);
-        if (top_ch == 'q')
-        {
-            break;
-        }
-    }
-}
-
-long top(void)
-{
-    rt_thread_t tid;
-    list_get_next_t find_arg;
-    rt_list_t *next = (rt_list_t*)RT_NULL;
-    rt_list_t *obj_list[LIST_FIND_OBJ_NR];
-    const char *item_title = "THREAD";
-    int maxlen;
-    rt_sem_t top_char_sem;
-
-    rt_base_t level;
-
-    top_ch = 0;
-    top_char_sem = rt_sem_create("top_char", 0, RT_IPC_FLAG_FIFO);
-    tid = rt_thread_create("top_getchar", top_getchar_entry, top_char_sem,
-            1024, 2, 10);
-    if (tid)
-    {
-        rt_thread_startup(tid);
-    }
-
-    while (1)
-    {
-        rt_ubase_t tick_diff;
-        rt_ubase_t wait_tick;
-
-        level = rt_hw_interrupt_disable();
-        rt_tick_mark = rt_tick_get();
-        rt_tick_sethook(top_tick_hook);
-        rt_hw_interrupt_enable(level);
-
-        wait_tick = RT_TICK_PER_SECOND + rt_tick_mark;
-
-        while (rt_tick_get() < wait_tick)
-        {
-            rt_sem_take(top_char_sem, wait_tick - rt_tick_get());
-            if (top_ch == 'q')
-            {
-                rt_sem_delete(top_char_sem);
-                level = rt_hw_interrupt_disable();
-                rt_tick_sethook(0);
-                rt_hw_interrupt_enable(level);
-                return 0;
-            }
-        }
-
-        level = rt_hw_interrupt_disable();
-        rt_tick_sethook(0);
-        rt_hw_interrupt_enable(level);
-
-        tick_diff = rt_tick_get() - rt_tick_mark;
-
-        list_find_init(&find_arg, RT_Object_Class_Thread, obj_list, sizeof(obj_list)/sizeof(obj_list[0]));
-        maxlen = RT_NAME_MAX;
-        rt_kprintf("\033[2J");
-
-#ifdef RT_USING_HEAP
-#ifdef RT_USING_MEMHEAP_AS_HEAP
-        list_memheap();
-#else
-        list_mem();
-#endif
-#endif
-        object_split(maxlen);
-        rt_kprintf(     "----------------\n");
-        rt_kprintf("%-*.s  PID  PRI  A %%CPU VIRT\n", maxlen, item_title); object_split(maxlen);
-        rt_kprintf(     " ----- ---  - ---- ----\n");
-        do
-        {
-            next = list_get_next(next, &find_arg);
-            {
-                int i;
-                for (i = 0; i < find_arg.nr_out; i++)
-                {
-                    struct rt_object *obj;
-                    struct rt_thread thread_info, *thread;
-
-                    obj = rt_list_entry(obj_list[i], struct rt_object, list);
-                    level = rt_hw_interrupt_disable();
-
-                    if ((obj->type & ~RT_Object_Class_Static) != find_arg.type)
-                    {
-                        rt_hw_interrupt_enable(level);
-                        continue;
-                    }
-                    /* copy info */
-                    memcpy(&thread_info, obj, sizeof thread_info);
-                    rt_hw_interrupt_enable(level);
-
-                    thread = (struct rt_thread*)obj;
-                    {
-                        if (thread->tick_mark != rt_tick_mark)
-                        {
-                            thread->run_tick = 0;
-                        }
-
-                        level = rt_hw_interrupt_disable();
-                        if (thread->lwp)
-                        {
-                            pid_t pid;
-                            struct rt_lwp *lwp;
-
-                            lwp = (struct rt_lwp*)thread->lwp;
-                            lwp_ref_inc(lwp);
-                            rt_hw_interrupt_enable(level);
-                            pid = lwp_to_pid(lwp);
-                            rt_kprintf("%-*.*s %5d %3d ", maxlen, RT_NAME_MAX, thread->name, pid, thread->current_priority);
-#ifdef RT_USING_USERSPACE
-                            {
-                                size_t virt;
-
-                                level = rt_hw_interrupt_disable();
-                                virt = lwp_vmem_count(lwp->map_area);
-                                rt_hw_interrupt_enable(level);
-                                rt_kprintf(" U %3d  0x%08x\n", thread->run_tick * 100/tick_diff, virt);
-                            }
-#else
-                            rt_kprintf(" U %3d\n", thread->run_tick * 100/tick_diff);
-#endif
-                            lwp_ref_dec(lwp);
-                        }
-                        else
-                        {
-                            rt_hw_interrupt_enable(level);
-                            rt_kprintf("%-*.*s       %3d ", maxlen, RT_NAME_MAX, thread->name, thread->current_priority);
-                            rt_kprintf(" K %3d\n", thread->run_tick * 100/tick_diff);
-                        }
-                    }
-                }
-            }
-        }
-        while (next != (rt_list_t*)RT_NULL);
-    }
-    return 0;
-}
-MSH_CMD_EXPORT(top, disaplay system info);
-#endif /* end of RT_USING_LWP */
-
 #endif /* RT_USING_FINSH */