|
@@ -1,19 +1,83 @@
|
|
|
|
+Command definition
|
|
|
|
+------------------
|
|
|
|
|
|
Commands are added to U-Boot by creating a new command structure.
|
|
Commands are added to U-Boot by creating a new command structure.
|
|
-This is done by first including command.h, then using the U_BOOT_CMD() macro
|
|
|
|
-to fill in a cmd_tbl_t struct.
|
|
|
|
|
|
+This is done by first including command.h, then using the U_BOOT_CMD() or the
|
|
|
|
+U_BOOT_CMD_COMPLETE macro to fill in a cmd_tbl_t struct.
|
|
|
|
|
|
-U_BOOT_CMD(name,maxargs,repeatable,command,"usage","help")
|
|
|
|
|
|
+U_BOOT_CMD(name, maxargs, repeatable, command, "usage", "help")
|
|
|
|
+U_BOOT_CMD_COMPLETE(name, maxargs, repeatable, command, "usage, "help", comp)
|
|
|
|
|
|
-name: is the name of the commad. THIS IS NOT a string.
|
|
|
|
-maxargs: the maximum number of arguments this function takes
|
|
|
|
-repeatable: either 0 or 1 to indicate if autorepeat is allowed
|
|
|
|
-command: Function pointer (*cmd)(struct cmd_tbl_s *, int, int, char *[]);
|
|
|
|
-usage: Short description. This is a string
|
|
|
|
-help: Long description. This is a string
|
|
|
|
|
|
+name: The name of the command. THIS IS NOT a string.
|
|
|
|
|
|
|
|
+maxargs: The maximum number of arguments this function takes including
|
|
|
|
+ the command itself.
|
|
|
|
|
|
-**** Behind the scene ******
|
|
|
|
|
|
+repeatable: Either 0 or 1 to indicate if autorepeat is allowed.
|
|
|
|
+
|
|
|
|
+command: Pointer to the command function. This is the function that is
|
|
|
|
+ called when the command is issued.
|
|
|
|
+
|
|
|
|
+usage: Short description. This is a string.
|
|
|
|
+
|
|
|
|
+help: Long description. This is a string. The long description is
|
|
|
|
+ only available if CONFIG_SYS_LONGHELP is defined.
|
|
|
|
+
|
|
|
|
+comp: Pointer to the completion function. May be NULL.
|
|
|
|
+ This function is called if the user hits the TAB key while
|
|
|
|
+ entering the command arguments to complete the entry. Command
|
|
|
|
+ completion is only available if CONFIG_AUTO_COMPLETE is defined.
|
|
|
|
+
|
|
|
|
+Command function
|
|
|
|
+----------------
|
|
|
|
+
|
|
|
|
+The commmand function pointer has to be of type
|
|
|
|
+int (*cmd)(struct cmd_tbl_s *cmdtp, int flag, int argc, const char *argv[]);
|
|
|
|
+
|
|
|
|
+cmdtp: Table entry describing the command (see above).
|
|
|
|
+
|
|
|
|
+flag: A bitmap which may contain the following bit:
|
|
|
|
+ CMD_FLAG_REPEAT - The last command is repeated.
|
|
|
|
+ CMD_FLAG_BOOTD - The command is called by the bootd command.
|
|
|
|
+ CMD_FLAG_ENV - The command is called by the run command.
|
|
|
|
+
|
|
|
|
+argc: Number of arguments including the command.
|
|
|
|
+
|
|
|
|
+argv: Arguments.
|
|
|
|
+
|
|
|
|
+Allowable return value are:
|
|
|
|
+
|
|
|
|
+CMD_SUCCESS The command was successfully executed.
|
|
|
|
+
|
|
|
|
+CMD_FAILURE The command failed.
|
|
|
|
+
|
|
|
|
+CMD_RET_USAGE The command was called with invalid parameters. This value
|
|
|
|
+ leads to the display of the usage string.
|
|
|
|
+
|
|
|
|
+Completion function
|
|
|
|
+-------------------
|
|
|
|
+
|
|
|
|
+The completion function pointer has to be of type
|
|
|
|
+int (*complete)(int argc, char *const argv[], char last_char,
|
|
|
|
+ int maxv, char *cmdv[]);
|
|
|
|
+
|
|
|
|
+argc: Number of arguments including the command.
|
|
|
|
+
|
|
|
|
+argv: Arguments.
|
|
|
|
+
|
|
|
|
+last_char: The last character in the command line buffer.
|
|
|
|
+
|
|
|
|
+maxv: Maximum number of possible completions that may be returned by
|
|
|
|
+ the function.
|
|
|
|
+
|
|
|
|
+cmdv: Used to return possible values for the last argument. The last
|
|
|
|
+ possible completion must be followed by NULL.
|
|
|
|
+
|
|
|
|
+The function returns the number of possible completions (without the terminating
|
|
|
|
+NULL value).
|
|
|
|
+
|
|
|
|
+Behind the scene
|
|
|
|
+----------------
|
|
|
|
|
|
The structure created is named with a special prefix and placed by
|
|
The structure created is named with a special prefix and placed by
|
|
the linker in a special section using the linker lists mechanism
|
|
the linker in a special section using the linker lists mechanism
|