#pragma once
#include "uefi.h"

#define SHELL_HISTORY 16
#define SHELL_MAX_ARGS 16

typedef void (*cmd_func_t)(int argc, char **argv);

struct command {
    const char *name;
    const char *description;
    cmd_func_t func;
};

void shell_init(uint64_t mem_size);
void shell_run(void);
void shell_register(const struct command *cmd);

/* Current command being executed (for crash screen) */
extern const char *shell_current_cmd;
extern char         shell_current_args[256];
