📄 kslib.h
字号:
/********************************************************************/
/* KSLIB Header for KS32C5000 */
/*------------------------------------------------------------------*/
/* Copyright (C) 1997 Samsung Electronics. */
/*------------------------------------------------------------------*/
/* */
/* Description : 1998-2-10 first edited for KS32C50100 */
/********************************************************************/
#ifndef _KSLIB_H_
#define _KSLIB_H_
// Definition for Command Line
#define MAX_LENGTHOF_COMMANDLINE 256 // Maximum value of command line length
#define MAX_LENGTHOF_COMMAND 10 // Maximum value of command
#define MAX_NUMOF_COMMAND 24 // Maximum value of the number of command.
// it is used by command Table size
#define MAX_NUMOF_ARGS 5 // Maximum value of the number of arguments
// in command line
#define MAX_LENGTHOF_ARGS 10 // Maximum value of the length of a argument
#define MAX_CURRENT_NUM_ARGS 2
#define MAX_CURRENT_STR_ARGS 7
#define CMDLI_TRUE 1
#define MAX_COMMAND_LIST 32
#define IS_USED 0x80000000
typedef struct cmdlist {
char commandline[MAX_LENGTHOF_COMMANDLINE];
U32 comlen;
struct cmdlist *nextcmd;
struct cmdlist *prevcmd;
} CMDPOOL ;
typedef struct diagcmd {
char *cmd_name;
U32 (*cmd_action)(U8, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd);
U32 cmd_length;
char *cmd_help; // if command "help xxxx " runs , this message will be used.
// It must be ended by '\0'
} DIAGCMD;
// Diagnostics Error
#define NO_ERROR 0x0
#define LV1_DIAG_ERROR 0x1
// Diag CLI Sysntax Error Code Base = 0x10000
#define ERROR_BAD_COMMAND 0x10000
#define ERROR_TOO_FEW_ARGUMENT 0x10001
#define ERROR_TOO_MANY_ARGUMENT 0x10002
#define ERROR_TOO_LONG_COMMAND 0x10003
#define ERROR_ILLEGAL_ARGUMENT 0x10004
#define ERROR_ADDRSIZE_NEGATIVE 0x10005
// Manual Diag Error from 0x20000
#define ERROR_MANDIAG_DRAM 0x20000
#define ERROR_MANDIAG_SRAM 0x20001
#define ERROR_MANDIAG_FLASH 0x20002
#define ERROR_MANDIAG_BOOT 0x20003
#define ERROR_MANDIAG_NVRAM 0x20004
#define ERROR_MANDIAG_FORCE 0x20005
#define ERROR_MANDIAG_SWRESET 0x20006
#define ERROR_MANDIAG_UART 0x20007
#define ERROR_MANDIAG_CALLER 0x20008
#define ERROR_ADDRLINE_DRAM 0x20009
#define ERROR_ADDRLINE_SRAM 0x2000a
#define ERROR_ADDRLINE_FLASH 0x2000b
#define ERROR_ADDRLINE_NVRAM 0x2000c
#define ERROR_DRAM_BURST 0x2000d
#define ERROR_NVRAM_BURST 0x2000e
#define ERROR_DISPLAY_ADDRESS_BOUNDARY 0x2000f
// File System Error Code Base = 0x50000
#define ERROR_OPEN_FILE 0x50000
// TFTP Download Error Code Base = 0x60000
#define ERROR_TFTP_DOWNLOALD_NOT_COMPLETE 0x60000
// Flash Driver Error Code Base = 0x70000
#define ERROR_FLASH_WRITE_TIMEOUT 0x70000
#define ERROR_FLASH_RW_COUNT 0x70001
#define ERROR_FLASH_RW_OFFSET 0x70002
#define ERROR_FLASH_CHIPERASE_TIMEOUT 0x70004
#define ERROR_FLASH_SECTORERASE_TIMEOUT 0x70005
#define ERROR_FLASH_ADDRESS_FAULT 0x70006
#define ERROR_CODE 0x80000b
#define NO_RES_ERROR 0x80000c /* no responding error !! */
#define ERROR_RIB_BYTE_WRITE 0x80000d
#define ERROR_RIB_BYTE_READ 0x80000e
// MAC Driver Error Code Base = 0x90000
/*---------------------------------------------------------------------*/
/* Definition of errno macro */
/*---------------------------------------------------------------------*/
#ifndef errno
U32 *errno_addr(void);
#define errno (*(errno_addr()))
#endif
// Symbol Definitions
#define SPACE 0x20
// Memory Size
#define MSIZE_BYTE 0x62
#define MSIZE_HALF 0x68
#define MSIZE_LONG 0x6C
// Type definition for Error Report
typedef struct AllErrRpt {
int SramError ;
int MemError ;
int UartError ;
int TimerError ;
int DmaError ;
int IicError ;
int MacError ;
int HdlcError ;
} AllErrorReport ;
extern void DiagCmdLi(void) ;
/*
* Function : DiagCmdLi(void)
* Description : Command Line Interface Diag
*/
extern U32 RunCommand(CMDPOOL *) ;
/*
* Function : U32 RunCommand(CMDPOOL *)
* Description : Command Running
*/
extern U32 LookUpCommand(char* cmd) ;
/*
* Function : LookUpCommand
* Description : Search the command and return the index of the command.
*/
extern U32 ParseCommandLine(char (*argv)[MAX_LENGTHOF_ARGS],char *commandline) ;
/*
* Function : ParseCommandLine
* Description :
*/
extern void ReportError(U32 err) ;
/*
* Function : ReportError
* Description :
*/
extern U32 str_ncmp(char* str1 , char* str2 , U32 n) ;
/*
* Function : ReportError
* Description : if equals, return 1, else return 0, until str2 is NULL
*/
extern U32 strtoint(char *str, U32 count) ;
/*
* Function : strtoint
* Description : String Value to Interger Value
*/
extern U32 sizeofstr(char *str) ;
/*
* Function : sizeofstr
* Description : Size of String
*/
extern U32 hexstrtohex(char *str, U32 count) ;
/*
* Function : hexstrtohex
* Description : String Value to HEX Value
*/
extern U32 power(U32 base, U32 cha) ;
/*
* Function : power
* Description :
*/
extern void PrintHelpMessage(char *cmd) ;
/*
* Function : PrintHelpMessage
* Description :
*/
/*
* Function : StartDownArea
* Description : Start download program
*/
extern void StartDownPgm(U32 *downarea) ;
/*
* Function : Reset_Boot_Rom
* Description : Reset SNDS Board
*/
extern void Reset_BootRom(void) ;
/*
* Function : All Test Program
* Description : Test of all function
*/
extern U32 AllTestFunc(void) ;
/*
* Function : AllTestInternal
* Description : All KS32C50100 Internal function test
*/
extern U32 AllTestInternal(U32 loopcnt) ;
extern U32 ListOfCmd(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 HelpCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 MCopyCli(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 MFillCli(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 MDumpCli(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 MSearchCli(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 MCompCli(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 MemTestCli(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 DmaTestCli(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 DCopyCli(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 CacheCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 MacCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 HdlcCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 IicCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 MarchTestCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 AllTestCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 DownPgmCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 FusePgmCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 GoPgmCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 StartCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 BootCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 ResetCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 ExitCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern U32 HistoryCmdLi(U8 argc, char (*argv)[MAX_LENGTHOF_ARGS],CMDPOOL *pCmd) ;
extern void EtcTest(void) ;
extern CMDPOOL *ReadCommand(CMDPOOL *,U32 *);
extern CMDPOOL *SearchCommand(CMDPOOL *,U32 *,U32 *);
extern U32 SearchMatchedCommand(CMDPOOL *);
extern void SplitPattern(CMDPOOL *);
extern CMDPOOL *UpdateCommand(CMDPOOL *,CMDPOOL *,U32 *,U32*,U32*,char);
extern void GetSelectedCommand(CMDPOOL *,CMDPOOL *,U32 *);
extern void AnalyzeCommand(CMDPOOL *);
extern CMDPOOL *PutPrompt(CMDPOOL *,U32 *,U32 );
extern void InitCommandPool(CMDPOOL *);
#endif /* _KSLIB_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -