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 39 struct cmd_tbl_s { 40 char *name; /* Command Name */ 41 int maxargs; /* maximum number of arguments */ 42 int repeatable; /* autorepeat allowed? */ 43 44 /* Implementation function */ 45 int (*cmd)(struct cmd_tbl_s *, int, int, char *[]); 46 char *usage; /* Usage message (short) */ 47 #ifdef CFG_LONGHELP 48 char *help; /* Help message (long) */ 49 #endif 50 }; 51 52 typedef struct cmd_tbl_s cmd_tbl_t; 53 54 extern cmd_tbl_t __u_boot_cmd_start; 55 extern cmd_tbl_t __u_boot_cmd_end; 56 57 58 /* common/command.c */ 59 cmd_tbl_t *find_cmd(const char *cmd); 60 61 /* 62 * Monitor Command 63 * 64 * All commands use a common argument format: 65 * 66 * void function (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); 67 */ 68 69 typedef void command_t (cmd_tbl_t *, int, int, char *[]); 70 71 #endif /* __ASSEMBLY__ */ 72 73 /* 74 * Command Flags: 75 */ 76 #define CMD_FLAG_REPEAT 0x0001 /* repeat last command */ 77 #define CMD_FLAG_BOOTD 0x0002 /* command is from bootd */ 78 79 /* 80 * Configurable monitor commands definitions have been moved 81 * to include/cmd_confdefs.h 82 */ 83 84 85 #define Struct_Section __attribute__ ((unused,section (".u_boot_cmd"))) 86 #define U_BOOT_CMD(x) __u_boot_cmd_##x Struct_Section 87 88 #ifdef CFG_LONGHELP 89 90 #define MK_CMD_ENTRY(name,maxargs,rep,cmd,usage,help) \ 91 { name, maxargs, rep, cmd, usage, help } 92 93 #else /* no long help info */ 94 95 #define MK_CMD_ENTRY(name,maxargs,rep,cmd,usage,help) \ 96 { name, maxargs, rep, cmd, usage } 97 98 #endif /* CFG_LONGHELP */ 99 100 #endif /* __COMMAND_H */ 101