cmd.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /**
  3. ******************************************************************************
  4. * @file cmd.h
  5. * @author StarFive Technology
  6. * @version V1.0
  7. * @date 07/20/2020
  8. * @brief
  9. ******************************************************************************
  10. * @copy
  11. *
  12. * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  13. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  14. * TIME. AS A RESULT, STARFIVE SHALL NOT BE HELD LIABLE FOR ANY
  15. * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  16. * FROM THE CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  17. * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  18. *
  19. * COPYRIGHT 2020 Shanghai StarFive Technology Co., Ltd.
  20. */
  21. #ifndef _MB_CMD_H_
  22. #define _MB_CMD_H_
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26. typedef struct TAG_CMD_{
  27. unsigned short ver;
  28. unsigned short length;
  29. void * cmdAppHdl;
  30. //**************************************
  31. void * reserved[0x10]; //dev route : init , ioctrl , read , write , rflute , wflute , getchar , tgetchar
  32. unsigned char * startbuf;
  33. unsigned long inputflag;
  34. unsigned long curitem;
  35. unsigned long maxlen;
  36. //**************************************
  37. unsigned char * curbuf;
  38. unsigned long curCH;
  39. unsigned long temp;
  40. unsigned long curArgc;
  41. unsigned char * argvTemp[0x06];
  42. unsigned char * argvList[0x20];
  43. unsigned char buf[0x100 + 0x400 ];
  44. } *P_TAG_CMD_T;
  45. typedef int (*CMDSCRIPTPROC)( void *Context , int argc , char ** argv );
  46. typedef struct tagCMDTBLITEM{
  47. char * cmdCode;
  48. void * context;
  49. CMDSCRIPTPROC cmdScriptProc;
  50. int flag;
  51. }CMDTBLITEM , *PCMDTBLITEM;
  52. int CmdString( char * srccmd , char * basecmd );
  53. void RelayProc( void );
  54. void StdInit( P_TAG_CMD_T hdl );
  55. int ReadString( unsigned char * buf , int length );
  56. int piteCmdLine( char * curRead , char **pargv , int maxArgc );
  57. int CmdHelpProc( void * Context , int argc , char ** argv );
  58. int CmdErrorProc( void * Context , int argc , char ** argv );
  59. int ShowProc( void * Context , int argc , char ** argv );
  60. int LoadProc( void * Context , int argc , char ** argv );
  61. int Do32Proc( void * Context , int argc , char ** argv );
  62. int SetBaud32Proc( void * Context , int argc , char ** argv );
  63. int U2Hex( unsigned long value , char * buf , int length );
  64. int A2Int( char * buf );
  65. void PrintIntHex( unsigned long hexData , int length );
  66. void sys_cmd_proc( void );
  67. void sys_cmd_main_loop(void);
  68. #ifdef __cplusplus
  69. }
  70. #endif
  71. #endif //_MB_CMD_H_