Setwatchdogtimer() – Intel Extensible Firmware Interface User Manual
Page 185

Services — Boot Services
Version 1.10
12/01/02
5-87
SetWatchdogTimer()
Summary
Sets the system’s watchdog timer.
Prototype
EFI_STATUS
SetWatchdogTimer (
IN UINTN
Timeout,
IN UINT64
WatchdogCode,
IN UINTN
DataSize,
IN CHAR16
*WatchdogData
OPTIONAL
);
Parameters
Timeout
The number of seconds to set the watchdog timer to. A value of zero
disables the timer.
WatchdogCode
The numeric code to log on a watchdog timer timeout event. The
firmware reserves codes 0x0000 to 0xFFFF. Loaders and operating
systems may use other timeout codes.
DataSize
The size, in bytes, of
WatchdogData
.
WatchdogData
A data buffer that includes a Null-terminated Unicode string, optionally
followed by additional binary data. The string is a description that the
call may use to further indicate the reason to be logged with a watchdog
event.
Description
The
SetWatchdogTimer()
function sets the system’s watchdog timer.
If the watchdog timer expires, the event is logged by the firmware. The system may then either
reset with the Runtime Service
, or perform a platform specific action that must
eventually cause the platform to be reset. The watchdog timer is armed before the firmware's boot
manager invokes an EFI boot option. The watchdog must be set to a period of 5 minutes. The EFI
Image may reset or disable the watchdog timer as needed. If control is returned to the firmware's
boot manager, the watchdog timer must be disabled.
The watchdog timer is only used during boot services. On successful completion of
the watchdog timer is disabled.
The accuracy of the watchdog timer is +/- 1 second from the requested
Timeout
.
Status Codes Returned
EFI_SUCCESS
The timeout has been set.
EFI_INVALID_PARAMETER
The supplied
WatchdogCode
is invalid.
EFI_UNSUPPORTED
The system does not have a watchdog timer.
EFI_DEVICE_ERROR
The watch dog timer could not be programmed due to a hardware
error.