41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
//
|
|
// Created by zemon on 11.11.22.
|
|
//
|
|
|
|
#ifndef UVEOS_ON_NATION_CLIREDIRECTTABLE_H
|
|
#define UVEOS_ON_NATION_CLIREDIRECTTABLE_H
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include "CliCmd.h"
|
|
#include "BaseTypes.h"
|
|
|
|
typedef int32_t (*cliCall)(void *env, tCliCmd *cli);
|
|
|
|
typedef struct {
|
|
tStringStatic cmd;
|
|
cliCall method;
|
|
void *env;
|
|
} tCliRedirectItem;
|
|
|
|
typedef struct {
|
|
tCliRedirectItem *items;
|
|
uint16_t count;
|
|
uint16_t itemsLimit;
|
|
} tCliRedirectTable;
|
|
|
|
void CliRedirectionTable_Init(tCliRedirectTable *baseTable, tCliRedirectItem *mem, uint16_t itemsLimit);
|
|
|
|
#define CliRedirectionTable_InitStatic(TAB, MEM) CliRedirectionTable_Init(TAB,MEM,sizeof(MEM)/sizeof(tCliRedirectItem))
|
|
|
|
bool CliRedirectionTable_RecAdd(tCliRedirectTable *baseTable, char *cmdStatic, uint8_t cmdLen, cliCall mtd, void *env);
|
|
|
|
#define CliRedirectionTable_RecAddStatic(TAB, CMD, CALL, ENV) CliRedirectionTable_RecAdd(TAB,CMD,sizeof (CMD)-1,CALL,ENV)
|
|
|
|
int32_t CliRedirectionTable_ProcessCmd(tCliRedirectTable *env, tCliCmd *cmd);
|
|
|
|
int32_t CliRedirectionTable_ListCmd(tCliRedirectTable *env, tCliCmd *cmd, char divider);
|
|
|
|
#endif //UVEOS_ON_NATION_CLIREDIRECTTABLE_H
|
|
|