grub中的date命令
来源:互联网 发布:虚空掠夺者数据库 编辑:程序博客网 时间:2024/06/07 01:46
grub的date命令实现在grub-core/commands/date.c 中
GRUB_MOD_INIT(date)
{
cmd =
grub_register_command ("date", grub_cmd_date,
N_("[[year-]month-day] [hour:minute[:second]]"),
N_("Display/set current datetime."));
}
可见回调函数是grub_cmd_date
static grub_err_t
grub_cmd_date (grub_command_t cmd __attribute__ ((unused)),
int argc, char **args)
{
struct grub_datetime datetime;
int limit[6][2] = {{1980, 2079}, {1, 12}, {1, 31}, {0, 23}, {0, 59}, {0, 59}};
int value[6], mask;
if (argc == 0)
{
if (grub_get_datetime (&datetime))
return grub_errno;
grub_printf ("%d-%02d-%02d %02d:%02d:%02d %s\n",
datetime.year, datetime.month, datetime.day,
datetime.hour, datetime.minute, datetime.second,
grub_get_weekday_name (&datetime));
return 0;
}
}
我们常常直接在grub的命令行中直接输入date命令,因此这种情况下argc是0,直接调用grub_get_datetime
grub_err_t
grub_get_datetime (struct grub_datetime *datetime)
{
grub_efi_status_t status;
struct grub_efi_time efi_time;
status = efi_call_2 (grub_efi_system_table->runtime_services->get_time,
&efi_time, 0);
if (status)
return grub_error (GRUB_ERR_INVALID_COMMAND,
"can\'t get datetime using efi");
else
{
datetime->year = efi_time.year;
datetime->month = efi_time.month;
datetime->day = efi_time.day;
datetime->hour = efi_time.hour;
datetime->minute = efi_time.minute;
datetime->second = efi_time.second;
}
return 0;
}
最终在grub_get_datetime 中直接调用bios的runtime_service 来获取时间,同理kernel中也是通过bios的runtime_service来获取时间,如果怀疑kernel的bios提供的runtime_service 有问题,可以在grub中试试看。方便定位问题。
GRUB_MOD_INIT(date)
{
cmd =
grub_register_command ("date", grub_cmd_date,
N_("[[year-]month-day] [hour:minute[:second]]"),
N_("Display/set current datetime."));
}
可见回调函数是grub_cmd_date
static grub_err_t
grub_cmd_date (grub_command_t cmd __attribute__ ((unused)),
int argc, char **args)
{
struct grub_datetime datetime;
int limit[6][2] = {{1980, 2079}, {1, 12}, {1, 31}, {0, 23}, {0, 59}, {0, 59}};
int value[6], mask;
if (argc == 0)
{
if (grub_get_datetime (&datetime))
return grub_errno;
grub_printf ("%d-%02d-%02d %02d:%02d:%02d %s\n",
datetime.year, datetime.month, datetime.day,
datetime.hour, datetime.minute, datetime.second,
grub_get_weekday_name (&datetime));
return 0;
}
}
我们常常直接在grub的命令行中直接输入date命令,因此这种情况下argc是0,直接调用grub_get_datetime
grub_err_t
grub_get_datetime (struct grub_datetime *datetime)
{
grub_efi_status_t status;
struct grub_efi_time efi_time;
status = efi_call_2 (grub_efi_system_table->runtime_services->get_time,
&efi_time, 0);
if (status)
return grub_error (GRUB_ERR_INVALID_COMMAND,
"can\'t get datetime using efi");
else
{
datetime->year = efi_time.year;
datetime->month = efi_time.month;
datetime->day = efi_time.day;
datetime->hour = efi_time.hour;
datetime->minute = efi_time.minute;
datetime->second = efi_time.second;
}
return 0;
}
最终在grub_get_datetime 中直接调用bios的runtime_service 来获取时间,同理kernel中也是通过bios的runtime_service来获取时间,如果怀疑kernel的bios提供的runtime_service 有问题,可以在grub中试试看。方便定位问题。
阅读全文
0 0
- grub中的date命令
- 使用objdump grub中的命令
- u-boot中的date命令
- u-boot中的date命令
- grub命令grub
- grub命令
- Grub命令
- grub命令
- 用blkid命令解读grub.cfg文件中的块设备
- date 命令
- date命令
- date命令
- date命令
- date命令
- Date命令
- date命令
- date命令
- date命令
- c#中配置文件的使用(二)
- 创建和使用动态库 使用def文件
- Java基础-----集合 List
- 使用反向代理(Nginx)和隧道转发(SSH)实现内网端口映射
- xxx is not a function
- grub中的date命令
- poj 2955 Brackets(区间DP)
- Hadoop-No.4之列式存储格式
- tomcat部署项目后,war包可删不?
- cookie和session的区别!
- 将char *类型数据转变成oc数据
- unity中几个系统自带的函数的执行顺序
- mysql创建自增字段
- B