📄 skyeye_options.c
字号:
}
else if (!strncmp ("size", name, strlen (name)))
{
if (value[0] == '0' && value[1] == 'x')
mb[num].len = strtoul (value, NULL, 16);
else
mb[num].len = strtoul (value, NULL, 10);
}
else if (!strncmp ("file", name, strlen (name)))
{
strncpy (mb[num].filename, value, strlen (value) + 1);
}
else if (!strncmp ("boot", name, strlen (name)))
{
/*this must be the last parameter. */
if (!strncmp ("yes", value, strlen (value)))
skyeye_config.start_address = mb[num].addr;
}
else
{
SKYEYE_ERR
("Error: mem_bank %d has unknow parameter \"%s\".\n", num, name);
}
}
return 0;
}
int
do_net_option (skyeye_option_t * this_option, int num_params,
const char *params[])
{
char name[MAX_PARAM_NAME], value[MAX_PARAM_NAME];
int i;
struct net_option net_opt;
unsigned char mac_addr[6];
unsigned char hip[4];
unsigned char *maddr, *ip;
for (i = 0; i < num_params; i++)
{
if (split_param (params[i], name, value) < 0)
{
SKYEYE_ERR ("Error: %s has wrong parameter \"%s\".\n",
this_option->name, name);
return -1;
}
if (!strncmp ("mac", name, strlen (name)))
{
sscanf (value, "%x:%x:%x:%x:%x:%x", &mac_addr[0],
&mac_addr[1], &mac_addr[2], &mac_addr[3],
&mac_addr[4], &mac_addr[5]);
memcpy (net_opt.macaddr, mac_addr, 6);
}
else if (!strncmp ("hostip", name, strlen (name)))
{
/* FIXME: security problem, don't use sscanf later */
sscanf (value, "%d.%d.%d.%d", &hip[0], &hip[1], &hip[2], &hip[3]);
memcpy (net_opt.hostip, hip, 4);
}
else if (!strncmp ("ethmod", name, strlen (name)))
{
if (!strncmp ("linux", value, strlen (value)))
{
net_opt.ethmod = NET_MOD_LINUX;
}
else if (!strncmp ("tuntap", value, strlen (value)))
{
net_opt.ethmod = NET_MOD_TUNTAP;
}
else if (!strncmp ("win", value, strlen (value)))
{
net_opt.ethmod = NET_MOD_WIN;
}
else if (!strncmp ("vnet", value, strlen (value)))
{
net_opt.ethmod = NET_MOD_VNET;
}
}
}
maddr = net_opt.macaddr;
ip = net_opt.hostip;
printf ("ethmod num=%d, mac addr=%x:%x:%x:%x:%x:%x, hostip=%d.%d.%d.%d\n",
net_opt.ethmod, maddr[0], maddr[1], maddr[2], maddr[3], maddr[4],
maddr[5], ip[0], ip[1], ip[2], ip[3]);
setup_device_option (this_option->name, (void *) &net_opt, num_params,
params);
return 0;
}
/*added by ksh in 2004-11-26 ,energy option*/
int
do_energy_option (skyeye_option_t * this_option, int num_params,
const char *params[])
{
char name[MAX_PARAM_NAME], value[MAX_PARAM_NAME];
int i, fd;
for (i = 0; i < num_params; i++)
{
if (split_param (params[i], name, value) < 0)
SKYEYE_ERR ("Error: energy has wrong parameter \"%s\".\n", name);
if (!strncmp ("state", name, strlen (name)))
{
if (!strncmp ("on", value, strlen (value)))
{
skyeye_config.energy.energy_prof = 1;
SKYEYE_INFO ("energy info: turn on energy!\n");
}
else
{
skyeye_config.energy.energy_prof = 0;
SKYEYE_INFO ("energy info: turn off energy!\n");
}
}
else if (!strncmp ("filename", name, strlen (name)))
{
strcpy (skyeye_config.energy.filename, value);
skyeye_config.energy.filename[strlen (value)] = '\0';
}
else if (!strncmp ("logfile", name, strlen (name)))
{
strcpy (skyeye_config.energy.logfile, value);
skyeye_config.energy.logfile[strlen (value)] = '\0';
}
}
return 0;
}
/*uart option*/
int
do_uart_option (skyeye_option_t * this_option, int num_params,
const char *params[])
{
char name[MAX_PARAM_NAME], value[MAX_PARAM_NAME];
int i, fd;
//chy 2004-12-05 for eclipse
#ifdef SKYEYE4ECLIPSE
if (nouart)
return 0;
#endif
//----------------------------
for (i = 0; i < num_params; i++)
{
if (split_param (params[i], name, value) < 0)
SKYEYE_ERR ("Error: uart has wrong parameter \"%s\".\n", name);
if (!strncmp ("fd_in", name, strlen (name)))
{
if ((fd = open (value, O_RDWR)) == -1)
SKYEYE_DBG ("Error when open device %s", value);
skyeye_config.uart.fd_in = fd;
SKYEYE_INFO
("uart info: input device is %s, fd is %d.\n", value, fd);
}
else if (!strncmp ("fd_out", name, strlen (name)))
{
if ((fd = open (value, O_RDWR)) == -1)
SKYEYE_DBG ("Error when open device %s", value);
skyeye_config.uart.fd_out = fd;
SKYEYE_INFO
("uart info: output device is %s, fd is %d.\n", value, fd);
}
}
return 0;
}
/*chy 2004-03-11 lcd option*/
int
do_lcd_option (skyeye_option_t * this_option, int num_params,
const char *params[])
{
char name[MAX_PARAM_NAME], value[MAX_PARAM_NAME];
struct lcd_option lcd_opt;
int i, fd;
for (i = 0; i < num_params; i++)
{
if (split_param (params[i], name, value) < 0)
SKYEYE_ERR ("Error: lcd has wrong parameter \"%s\".\n", name);
if (!strncmp ("mod", name, strlen (name)))
{
if (!strncmp ("gtk", value, strlen (value)))
{
lcd_opt.mod = LCD_MOD_GTK;
}
else if (!strncmp ("qt", value, strlen (value)))
{
lcd_opt.mod = LCD_MOD_QT;
}
else if (!strncmp ("x", value, strlen (value)))
{
lcd_opt.mod = LCD_MOD_X;
}
else if (!strncmp ("sdl", value, strlen (value)))
{
lcd_opt.mod = LCD_MOD_SDL;
}
}
}
setup_device_option (this_option->name, (void *) &lcd_opt, num_params,
params);
}
/*ywc 2005-04-01 dbct option*/
int
do_dbct_option (skyeye_option_t * this_option, int num_params,
const char *params[])
{
char name[MAX_PARAM_NAME], value[MAX_PARAM_NAME];
int i, fd;
for (i = 0; i < num_params; i++)
{
if (split_param (params[i], name, value) < 0)
SKYEYE_ERR ("Error: dbct has wrong parameter \"%s\".\n", name);
if (!strncmp ("state", name, strlen (name)))
{
if (!strncmp ("on", value, strlen (value)))
{
skyeye_config.no_dbct = 0;
#ifndef NO_DBCT
SKYEYE_INFO ("dbct info: turn on dbct!\n");
#else
SKYEYE_INFO ("dbct info: Note: DBCT not compiled in. This option will be ignored\n");
#endif
}
else
{
skyeye_config.no_dbct = 1;
SKYEYE_INFO ("dbct info: turn off dbct!\n");
}
}
//teawater add for new tb manage function 2005.07.10----------------------------
if (!strncmp ("tbt", name, strlen (name)))
{
skyeye_config.tb_tbt_size = strtoul (value, NULL, 0);
}
if (!strncmp ("tbp", name, strlen (name)))
{
skyeye_config.tb_tbp_size = strtoul (value, NULL, 0);
}
}
}
//chy:2003-08-20 do_log option
int
do_log_option (skyeye_option_t * this_option, int num_params,
const char *params[])
{
char name[MAX_PARAM_NAME], value[MAX_PARAM_NAME];
int i, fd, logon;
unsigned long long start, end, length;
/*2004-08-09 chy init skyeye_config.log */
skyeye_config.log.log_fd = 0;
skyeye_config.log.logon = 0;
skyeye_config.log.start = 0;
skyeye_config.log.end = 0;
skyeye_config.log.length = 0;
for (i = 0; i < num_params; i++)
{
if (split_param (params[i], name, value) < 0)
SKYEYE_ERR
("log_info: Error: log has wrong parameter \"%s\".\n", name);
if (!strncmp ("logon", name, strlen (name)))
{
sscanf (value, "%d", &logon);
if (logon != 0 && logon != 1)
SKYEYE_ERR ("log_info: Error logon value %d\n", logon);
if (logon == 1)
{
SKYEYE_INFO ("log_info: log is on.\n");
}
else
{
SKYEYE_INFO ("log_info: log is off.\n");
}
skyeye_config.log.logon = logon;
}
else if (!strncmp ("logfile", name, strlen (name)))
{
if ((skyeye_logfd = fopen (value, "w+")) == NULL)
{
//SKYEYE_DBG("SkyEye Error when open log file %s\n", value);
perror ("SkyEye: Error when open log file: ");
exit (-1);
}
skyeye_config.log.log_fd = skyeye_logfd;
SKYEYE_INFO ("log_info:log file is %s, fd is 0x%x\n",
value, skyeye_logfd);
}
else if (!strncmp ("start", name, strlen (name)))
{
start = strtoul (value, NULL, 0);
skyeye_config.log.start = start;
SKYEYE_INFO ("log_info: log start clock %llu\n", start);
}
else if (!strncmp ("end", name, strlen (name)))
{
end = strtoul (value, NULL, 0);
skyeye_config.log.end = end;
SKYEYE_INFO ("log_info: log end clock %llu\n", end);
}
else if (!strncmp ("length", name, strlen (name)))
{
sscanf (value, "%llu", &length);
skyeye_config.log.length = length;
SKYEYE_INFO ("log_info: log instr length %llu\n", length);
}
}
return 0;
}
/*
* we can add this option using:
* step_disassemble:on[ON|1] for open this option
* step_disassemble:off[OFF|0] for disable this option
* oyangjian add here
*/
int
do_step_disassemble_option (skyeye_option_t * this_option, int num_params,
const char *params[])
{
int i;
for (i = 0; i < num_params; i++)
{
printf ("step_disassemble state:%s\n", params[0]);
if (!params[0])
{
SKYEYE_ERR ("Error :usage: step_disassemble:on[off]");
return -1;
}
if (!strncmp (params[0], "on", 2) || !strncmp (params[0], "ON", 2))
{
skyeye_config.can_step_disassemble = 1;
return 0;
}
else if (!strncmp (params[0], "off", 3)
|| !strncmp (params[0], "OFF", 3))
{
skyeye_config.can_step_disassemble = 0;
return 0;
}
}
SKYEYE_ERR ("Error: Unkonw cpu name \"%s\"\n", params[0]);
return -1;
}
int
do_flash_option (skyeye_option_t * this_option, int num_params,
const char *params[])
{
char name[MAX_PARAM_NAME], value[MAX_PARAM_NAME];
struct flash_option flash_opt;
int i, fd;
for (i = 0; i < num_params; i++)
{
if (split_param (params[i], name, value) < 0)
SKYEYE_ERR ("Error: flash has wrong parameter \"%s\".\n", name);
/*
if (!strncmp ("mod", name, strlen (name)))
{
if (!strncmp ("gtk", value, strlen (value)))
{
lcd_opt.mod = LCD_MOD_GTK;
}
else if (!strncmp ("qt", value, strlen (value)))
{
lcd_opt.mod = LCD_MOD_QT;
}
else if (!strncmp ("x", value, strlen (value)))
{
lcd_opt.mod = LCD_MOD_X;
}
else if (!strncmp ("sdl", value, strlen (value)))
{
lcd_opt.mod = LCD_MOD_SDL;
}
}
*/
}
setup_device_option (this_option->name, (void *) &flash_opt, num_params,
params);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -