Files
mkrtos-real/mkrtos_user/lib/letter-shell/demo/mkrtos/shell_fs_ext.c

102 lines
2.2 KiB
C
Raw Normal View History

2023-12-03 17:54:26 +08:00
#include "shell.h"
2023-12-03 22:47:29 +08:00
#include "cons_cli.h"
2023-12-10 10:20:05 +08:00
#include "pm_cli.h"
#include <stdlib.h>
2023-12-03 17:54:26 +08:00
#include <stdio.h>
#include <dirent.h>
#include <unistd.h>
#include <stddef.h>
#include <string.h>
#include <sys/time.h>
#include <pthread.h>
#include <errno.h>
2024-01-05 23:59:48 +08:00
#include "u_sys.h"
2023-12-03 17:54:26 +08:00
int ls(int argc, char *agrv[])
{
DIR *dir;
struct dirent *ptr;
int i;
if (argc < 2)
{
return -1;
}
dir = opendir(agrv[1]);
if (!dir)
{
return 0;
}
while ((ptr = readdir(dir)) != NULL)
{
printf("%s \n", ptr->d_name);
}
closedir(dir);
return 0;
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), ls, ls, ls command);
2023-12-03 22:47:29 +08:00
int cat(int argc, char *argv[])
{
if (argc != 2)
{
return (-1);
}
FILE *fp;
int c;
if ((fp = fopen(argv[1], "r")) == NULL)
{
return errno;
2023-12-03 22:47:29 +08:00
}
while ((c = fgetc(fp)) != EOF)
{
2025-01-06 19:07:10 +08:00
cons_write((uint8_t *)&c, 1);
2023-12-03 22:47:29 +08:00
}
fclose(fp);
return 0;
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), cat, cat, cat command);
2023-12-10 10:20:05 +08:00
int kill(int argc, char *argv[])
{
if (argc < 2)
{
return -1;
}
int pid = atoi(argv[1]);
2023-12-10 23:51:39 +08:00
return pm_kill_task(pid, PM_KILL_TASK_ALL);
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), kill, kill, kill command);
int shell_symlink(int argc, char *argv[])
{
if (argc < 3)
{
return -1;
}
printf("%s %s %s\n", __func__, argv[1], argv[2]);
return symlink(argv[1], argv[2]);
2023-12-10 10:20:05 +08:00
}
2023-12-10 23:51:39 +08:00
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), symlink, shell_symlink, symlink command);
2024-01-05 23:59:48 +08:00
int shell_reboot(int argc, char *argv[])
{
printf("sys reboot.\n");
sys_reboot(SYS_PROT);
return 0;
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), reboot, shell_reboot, reboot command);
int shell_mem_info(int argc, char *argv[])
{
size_t total;
size_t free;
2025-01-06 19:07:10 +08:00
sys_mem_info(SYS_PROT, (umword_t *)&total, (umword_t *)&free);
2024-01-05 23:59:48 +08:00
printf("sys mem:\ntotal:%dB\nfree:%dB\n", total, free);
return 0;
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_MAIN), mem, shell_mem_info, mem command);