uboot/include/command.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2000
   3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   4 *
   5 * See file CREDITS for list of people who contributed to this
   6 * project.
   7 *
   8 * This program is free software; you can redistribute it and/or
   9 * modify it under the terms of the GNU General Public License as
  10 * published by the Free Software Foundation; either version 2 of
  11 * the License, or (at your option) any later version.
  12 *
  13 * This program is distributed in the hope that it will be useful,
  14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16 * GNU General Public License for more details.
  17 *
  18 * You should have received a copy of the GNU General Public License
  19 * along with this program; if not, write to the Free Software
  20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 * MA 02111-1307 USA
  22 */
  23
  24/*
  25 *  Definitions for Command Processor
  26 */
  27#ifndef __COMMAND_H
  28#define __COMMAND_H
  29
  30#ifndef NULL
  31#define NULL    0
  32#endif
  33
  34#ifndef __ASSEMBLY__
  35/*
  36 * Monitor Command Table
  37 */
  38
  39struct cmd_tbl_s {
  40        char            *name;          /* Command Name                 */
  41        int             maxargs;        /* maximum number of arguments  */
  42        int             repeatable;     /* autorepeat allowed?          */
  43                                        /* Implementation function      */
  44        int             (*cmd)(struct cmd_tbl_s *, int, int, char *[]);
  45        char            *usage;         /* Usage message        (short) */
  46#ifdef  CFG_LONGHELP
  47        char            *help;          /* Help  message        (long)  */
  48#endif
  49#ifdef CONFIG_AUTO_COMPLETE
  50        /* do auto completion on the arguments */
  51        int             (*complete)(int argc, char *argv[], char last_char, int maxv, char *cmdv[]);
  52#endif
  53};
  54
  55typedef struct cmd_tbl_s        cmd_tbl_t;
  56
  57extern cmd_tbl_t  __u_boot_cmd_start;
  58extern cmd_tbl_t  __u_boot_cmd_end;
  59
  60
  61/* common/command.c */
  62cmd_tbl_t *find_cmd(const char *cmd);
  63
  64#ifdef CONFIG_AUTO_COMPLETE
  65extern void install_auto_complete(void);
  66extern int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *colp);
  67#endif
  68
  69/*
  70 * Monitor Command
  71 *
  72 * All commands use a common argument format:
  73 *
  74 * void function (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
  75 */
  76
  77typedef void    command_t (cmd_tbl_t *, int, int, char *[]);
  78
  79#endif  /* __ASSEMBLY__ */
  80
  81/*
  82 * Command Flags:
  83 */
  84#define CMD_FLAG_REPEAT         0x0001  /* repeat last command          */
  85#define CMD_FLAG_BOOTD          0x0002  /* command is from bootd        */
  86
  87#define Struct_Section  __attribute__ ((unused,section (".u_boot_cmd")))
  88
  89#ifdef  CFG_LONGHELP
  90
  91#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
  92cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help}
  93
  94#else   /* no long help info */
  95
  96#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
  97cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage}
  98
  99#endif  /* CFG_LONGHELP */
 100
 101#endif  /* __COMMAND_H */
 102