/*++ Copyright (c) 1999 Intel Corporation Module Name: date.c Abstract: Revision History --*/ #include "shell.h" EFI_STATUS InitializeDate ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ); EFI_DRIVER_ENTRY_POINT(InitializeDate) EFI_STATUS InitializeDate ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) /*+++ date [mm/dd/yyyy] --*/ { EFI_STATUS Status; EFI_TIME Time; CHAR16 *DateString; UINT32 i; InstallInternalShellCommand ( ImageHandle, SystemTable, InitializeDate, L"date", /* command */ L"date [mm/dd/yyyy]", /* command syntax */ L"Get or set date", /* 1 line descriptor */ NULL /* command help page */ ); InitializeShellApplication (ImageHandle, SystemTable); if (SI->Argc > 2) { Print(L"date [mm/dd/yyyy]\n"); return EFI_SUCCESS; } if (SI->Argc == 1) { Status = RT->GetTime(&Time,NULL); if (!EFI_ERROR(Status)) { Print(L"%02d/%02d/%04d\n",Time.Month,Time.Day,Time.Year); } return EFI_SUCCESS; } if (StrCmp(SI->Argv[1],L"/?") == 0) { Print(L"date [mm/dd/yyyy]\n"); return EFI_SUCCESS; } if (StrCmp(SI->Argv[1],L"/h") == 0) { Print(L"date [mm/dd/yyyy]\n"); return EFI_SUCCESS; } Status = RT->GetTime(&Time,NULL); if (EFI_ERROR(Status)) { Print(L"error : Clock not functional\n"); return Status; } DateString = SI->Argv[1]; Time.Month = (UINT8)Atoi(DateString); if (Time.Month<1 || Time.Month>12) { Print(L"error : invalid month\n"); return EFI_INVALID_PARAMETER; } for(i=0;i31) { Print(L"error : invalid day\n"); return EFI_INVALID_PARAMETER; } for(;iSetTime(&Time); if (EFI_ERROR(Status)) { Print(L"error : Clock not functional\n"); return Status; } return EFI_SUCCESS; } } Print(L"error : invalid date format\n"); return EFI_INVALID_PARAMETER; }