#endif
#if defined(CONFIG_CMD_DHCP)
-static int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc,
- char *const argv[])
+int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
{
return netboot_common(DHCP, cmdtp, argc, argv);
}
"boot image via network using DHCP/TFTP protocol",
"[loadAddress] [[hostIPaddr:]bootfilename]"
);
-
-int dhcp_run(ulong addr, const char *fname, bool autoload)
-{
- char *dhcp_argv[] = {"dhcp", NULL, (char *)fname, NULL};
- struct cmd_tbl cmdtp = {}; /* dummy */
- char file_addr[17];
- int old_autoload;
- int ret, result;
-
- log_debug("addr=%lx, fname=%s, autoload=%d\n", addr, fname, autoload);
- old_autoload = env_get_yesno("autoload");
- ret = env_set("autoload", autoload ? "y" : "n");
- if (ret)
- return log_msg_ret("en1", -EINVAL);
-
- if (autoload) {
- sprintf(file_addr, "%lx", addr);
- dhcp_argv[1] = file_addr;
- }
-
- result = do_dhcp(&cmdtp, 0, !autoload ? 1 : fname ? 3 : 2, dhcp_argv);
-
- ret = env_set("autoload", old_autoload == -1 ? NULL :
- old_autoload ? "y" : "n");
- if (ret)
- return log_msg_ret("en2", -EINVAL);
-
- if (result)
- return log_msg_ret("res", -ENOENT);
-
- return 0;
-}
#endif
#if defined(CONFIG_CMD_NFS)
*/
int dhcp_run(ulong addr, const char *fname, bool autoload);
+/**
+ * do_dhcp - Run the dhcp command
+ *
+ * @cmdtp: Unused
+ * @flag: Command flags (CMD_FLAG_...)
+ * @argc: Number of arguments
+ * @argv: List of arguments
+ * Return: result (see enum command_ret_t)
+ */
+int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]);
/**
* do_ping - Run the ping command
*/
bool wget_validate_uri(char *uri);
-int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]);
int do_dns(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]);
int do_wget(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[]);
return CMD_RET_SUCCESS;
}
-
-int dhcp_run(ulong addr, const char *fname, bool autoload)
-{
- char *dhcp_argv[] = {"dhcp", NULL, };
-#ifdef CONFIG_CMD_TFTPBOOT
- char *tftp_argv[] = {"tftpboot", boot_file_name, NULL, };
-#endif
- struct cmd_tbl cmdtp = {}; /* dummy */
-
- if (autoload) {
-#ifdef CONFIG_CMD_TFTPBOOT
- /* Assume DHCP was already performed */
- if (boot_file_name[0])
- return do_tftpb(&cmdtp, 0, 2, tftp_argv);
- return 0;
-#else
- return -EOPNOTSUPP;
-#endif
- }
-
- return do_dhcp(&cmdtp, 0, 1, dhcp_argv);
-}
// SPDX-License-Identifier: GPL-2.0
#include <dm/uclass.h>
+#include <env.h>
#include <net-common.h>
#include <linux/time.h>
#include <rtc.h>
tm.tm_year, tm.tm_mon, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec);
}
+
+#if defined(CONFIG_CMD_DHCP)
+int dhcp_run(ulong addr, const char *fname, bool autoload)
+{
+ char *dhcp_argv[] = {"dhcp", NULL, (char *)fname, NULL};
+ struct cmd_tbl cmdtp = {}; /* dummy */
+ char file_addr[17];
+ int old_autoload;
+ int ret, result;
+
+ log_debug("addr=%lx, fname=%s, autoload=%d\n", addr, fname, autoload);
+ old_autoload = env_get_yesno("autoload");
+ ret = env_set("autoload", autoload ? "y" : "n");
+ if (ret)
+ return log_msg_ret("en1", -EINVAL);
+
+ if (autoload) {
+ sprintf(file_addr, "%lx", addr);
+ dhcp_argv[1] = file_addr;
+ }
+
+ result = do_dhcp(&cmdtp, 0, !autoload ? 1 : fname ? 3 : 2, dhcp_argv);
+
+ ret = env_set("autoload", old_autoload == -1 ? NULL :
+ old_autoload ? "y" : "n");
+ if (ret)
+ return log_msg_ret("en2", -EINVAL);
+
+ if (result)
+ return log_msg_ret("res", -ENOENT);
+
+ return 0;
+}
+#endif