?? netcmd.c
字號:
/* netcmd.c*/
#include "config.h"#include "machine.h"#include "command.h"#include <priv_data.h>#include "heap.h"#include "vivi_string.h"#include "vivi_lib.h"#include "printk.h"#include <string.h>#include <types.h>#include <io.h>
#include <net.h>//#include "asm/global_data.h"
static user_subcommand_t subcmd_net[];static const uchar macaddr[] = {0x00,0x01,0x5d,0x68,0x7a,0x0f};unsigned long load_addr;extern bd_t global_bd;extern net_config default_net_config;#ifdef CONFIG_NET_PINGXXstatic void net_ping(int argc, const char **argv){ if (argc == 2) { NetPingIP = string_to_ip(argv[1]); NetLoop(PING); } else { printk("param is invalid\n"); } return;}#endifulong string_to_num(const char* s){ char *e; return simple_strtoul(s, &e, 10);}void net_tftp(int argc, const char **argv){ //DECLARE_GLOBAL_DATA_PTR; bd_t *bd = &global_bd; memcpy(bd->bi_enetaddr, macaddr, 6); bd->ipaddr = 0xbe01a8c0; bd->gateway = 0x0a01a8c0; bd->netmask = 0x00ffffff; bd->serverip = 0x6501a8c0; if (argc == 4) { bd->serverip = string_to_ip(argv[1]); load_addr = string_to_num(argv[2]); sprintf(BootFile,"%s",argv[3]); NetLoop(TFTP); } else { printk("param is invalid\n"); }}static void net_ping(int argc, const char **argv){ //DECLARE_GLOBAL_DATA_PTR; bd_t *bd = &global_bd; memcpy(bd->bi_enetaddr, macaddr, 6); bd->ipaddr = 0xbe01a8c0; bd->gateway = 0x0a01a8c0; bd->netmask = 0x00ffffff; bd->serverip = 0x6501a8c0; if (argc == 2) { bd->serverip = string_to_ip(argv[1]); //load_addr = string_to_num(argv[2]); //sprintf(BootFile,"%s",argv[3]); NetLoop(PING); } else { NetLoop(PING); //printk("param is invalid\n"); }}static void subcmd_net_help(int argc, const char **argv){ print_usage("net", subcmd_net);}static user_subcommand_t subcmd_net[] = {{ "help", subcmd_net_help, "help"}, { "tftp", net_tftp, "tftp <server_ip> <addr> <filename>" }, { "ping", net_ping, "ping <target_ip>" }, { NULL, NULL, NULL }};void net_setenv(int argc, const char **argv)
{
int ret; int boot_delay = get_param_value("boot_delay", &ret); if (argc == 1) { printk("invalid 'net' command: too few arguments\n"); command_help(0, NULL); return; } execsubcmd(subcmd_net, argc-1, argv+1);
}
user_command_t netping_cmd = { "ping", net_ping, NULL, "ping <host> \t\t\t-- ping a host on the network"};
user_command_t nettftp_cmd = { "tftp", net_tftp, NULL, "tftp <sip> <addr> <file> \t\t-- Load a file to RAM/Flash by net" };/*user_command_t net_cmd = { "net", subcmd_net, NULL, "net [{subcmds}] \t\t\t-- Booting linux kernel"};*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -