未验证 提交 02a0da51 编写于 作者: S Stanley Lwin 提交者: GitHub

List command (#6134)

* initial commit for list cmd
上级 9623706e
/*
* Copyright (c) 2006-2021, RT-Thread Development Team
* Copyright (c) 2006-2022, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
......@@ -29,6 +29,7 @@
* 2018-12-27 Jesven Fix the problem that disable interrupt too long in list_thread
* Provide protection for the "first layer of objects" when list_*
* 2020-04-07 chenhui add clear
* 2022-07-02 Stanley Lwin add list command
*/
#include <rthw.h>
......@@ -887,4 +888,107 @@ long list_device(void)
MSH_CMD_EXPORT(list_device, list device in system);
#endif
int cmd_list(int argc, char **argv)
{
if(argc == 2)
{
if(strcmp(argv[1], "thread") == 0)
{
list_thread();
}
else if(strcmp(argv[1], "timer") == 0)
{
list_timer();
}
#ifdef RT_USING_SEMAPHORE
else if(strcmp(argv[1], "sem") == 0)
{
list_sem();
}
#endif /* RT_USING_SEMAPHORE */
#ifdef RT_USING_EVENT
else if(strcmp(argv[1], "event") == 0)
{
list_event();
}
#endif /* RT_USING_EVENT */
#ifdef RT_USING_MUTEX
else if(strcmp(argv[1], "mutex") == 0)
{
list_mutex();
}
#endif /* RT_USING_MUTEX */
#ifdef RT_USING_MAILBOX
else if(strcmp(argv[1], "mailbox") == 0)
{
list_mailbox();
}
#endif /* RT_USING_MAILBOX */
#ifdef RT_USING_MESSAGEQUEUE
else if(strcmp(argv[1], "msgqueue") == 0)
{
list_msgqueue();
}
#endif /* RT_USING_MESSAGEQUEUE */
#ifdef RT_USING_MEMPOOL
else if(strcmp(argv[1], "mempool") == 0)
{
list_mempool();
}
#endif /* RT_USING_MEMPOOL */
#ifdef RT_USING_DEVICE
else if(strcmp(argv[1], "device") == 0)
{
list_device();
}
#endif /* RT_USING_DEVICE */
#ifdef RT_USING_DFS
else if(strcmp(argv[1], "fd") == 0)
{
extern int list_fd(void);
list_fd();
}
#endif /* RT_USING_DFS */
else
{
goto _usage;
}
return 0;
}
_usage:
rt_kprintf("Usage: list [options]\n");
rt_kprintf("[options]:\n");
rt_kprintf(" thread - list threads\n");
rt_kprintf(" timer - list timers\n");
#ifdef RT_USING_SEMAPHORE
rt_kprintf(" sem - list semaphores\n");
#endif /* RT_USING_SEMAPHORE */
#ifdef RT_USING_MUTEX
rt_kprintf(" mutex - list mutexs\n");
#endif /* RT_USING_MUTEX */
#ifdef RT_USING_EVENT
rt_kprintf(" event - list events\n");
#endif /* RT_USING_EVENT */
#ifdef RT_USING_MAILBOX
rt_kprintf(" mailbox - list mailboxs\n");
#endif /* RT_USING_MAILBOX */
#ifdef RT_USING_MESSAGEQUEUE
rt_kprintf(" msgqueue - list message queues\n");
#endif /* RT_USING_MESSAGEQUEUE */
#ifdef RT_USING_MEMPOOL
rt_kprintf(" mempool - list memory pools\n");
#endif /* RT_USING_MEMPOOL */
#ifdef RT_USING_DEVICE
rt_kprintf(" device - list devices\n");
#endif /* RT_USING_DEVICE */
#ifdef RT_USING_DFS
rt_kprintf(" fd - list file descriptors\n");
#endif /* RT_USING_DFS */
return 0;
}
MSH_CMD_EXPORT_ALIAS(cmd_list, list, list objects);
#endif /* RT_USING_FINSH */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册