Files
mop3/devices/devices.c
kamkow1 c8fb575bdd
All checks were successful
Build ISO image / build-and-deploy (push) Successful in 2m7s
Build documentation / build-and-deploy (push) Successful in 39s
Change formatting rules
2026-04-24 01:54:48 +02:00

49 lines
1.3 KiB
C

#include <device_info.h>
#include <devices.h>
#include <malloc.h>
#include <mprintf.h>
#include <process.h>
#include <status.h>
#include <string.h>
#include <system.h>
static const char* device_types_str[] = {
[DEVICE_TYPE_DEBUGCONSOLE] = "Debug console", [DEVICE_TYPE_TERMINAL] = "System terminal",
[DEVICE_TYPE_KEYBOARD] = "Keyboard", [DEVICE_TYPE_DRIVE] = "Drive",
[DEVICE_TYPE_USB_CTRL] = "USB controller",
};
static void list_all_devices(void) {
struct device_info* infos = malloc(sizeof(struct device_info) * 1024);
memset(infos, 0, sizeof(struct device_info) * 1024);
int device_count = get_device_info(infos, 1024);
mprintf("%-30s %-20s\n", "NAME", "TYPE");
for (int dev = 0; dev < device_count; dev++) {
struct device_info* info = &infos[dev];
mprintf("%-30s %-20s\n", info->key, device_types_str[info->type]);
}
}
void app_main(void) {
char commandbuf[32];
memset(commandbuf, 0, sizeof(commandbuf));
if (env_get(process_get_pgid(), "help", (void*)commandbuf, sizeof(commandbuf)) == ST_OK) {
mprintf("devices -C command\n");
mprintf("commands: list_all\n");
return;
}
if (env_get(process_get_pgid(), "C", (void*)commandbuf, sizeof(commandbuf)) != ST_OK) {
mprintf("ERROR C=???. No command provided\n");
return;
}
if (strcmp(commandbuf, "list_all") == 0) {
list_all_devices();
}
}