]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.h
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Universal / WatchdogTimerDxe / WatchdogTimer.h
index ec6deec47abd05eeef28e4740d301ad759342834..58396255b5ae2ff4ddaab0991e23c6fea5c90efb 100644 (file)
@@ -1,44 +1,48 @@
-/*++\r
+/** @file\r
+  The internal include file for WatchDogTimer module.\r
 \r
-Copyright (c) 2006, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
-Module Name:\r
-\r
-  WatchdogTimer.h\r
-\r
-Abstract:\r
-\r
- Generic watchdog timer implemenetation using EFI APIs\r
-\r
-Revision History\r
-\r
---*/\r
+**/\r
 \r
 #ifndef _WATCHDOG_TIMER_H_\r
 #define _WATCHDOG_TIMER_H_\r
 \r
 \r
 \r
-#include <PiDxe.h>\r
+#include <Uefi.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/UefiDriverEntryPoint.h>\r
 #include <Library/ReportStatusCodeLib.h>\r
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/UefiRuntimeServicesTableLib.h>\r
-#include <Library/PcdLib.h>\r
 #include <Protocol/WatchdogTimer.h>\r
 \r
 \r
-//\r
-// Function Prototypes\r
-//\r
+/**\r
+  Registers a handler that is to be invoked when the watchdog timer fires.\r
+\r
+  This function registers a handler that is to be invoked when the watchdog\r
+  timer fires.  By default, the EFI_WATCHDOG_TIMER protocol will call the\r
+  Runtime Service ResetSystem() when the watchdog timer fires.  If a\r
+  NotifyFunction is registered, then the NotifyFunction will be called before\r
+  the Runtime Service ResetSystem() is called.  If NotifyFunction is NULL, then\r
+  the watchdog handler is unregistered.  If a watchdog handler is registered,\r
+  then EFI_SUCCESS is returned.  If an attempt is made to register a handler\r
+  when a handler is already registered, then EFI_ALREADY_STARTED is returned.\r
+  If an attempt is made to uninstall a handler when a handler is not installed,\r
+  then return EFI_INVALID_PARAMETER.\r
+\r
+  @param  This                  The EFI_WATCHDOG_TIMER_ARCH_PROTOCOL instance.\r
+  @param  NotifyFunction        The function to call when the watchdog timer fires.  If this\r
+                                is NULL, then the handler will be unregistered.\r
+\r
+  @retval EFI_SUCCESS           The watchdog timer handler was registered or unregistered.\r
+  @retval EFI_ALREADY_STARTED   NotifyFunction is not NULL, and a handler is already registered.\r
+  @retval EFI_INVALID_PARAMETER NotifyFunction is NULL, and a handler was not previously registered.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 WatchdogTimerDriverRegisterHandler (\r
@@ -46,6 +50,24 @@ WatchdogTimerDriverRegisterHandler (
   IN EFI_WATCHDOG_TIMER_NOTIFY         NotifyFunction\r
   );\r
 \r
+/**\r
+  Sets the amount of time in the future to fire the watchdog timer.\r
+\r
+  This function sets the amount of time to wait before firing the watchdog\r
+  timer to TimerPeriod 100 ns units.  If TimerPeriod is 0, then the watchdog\r
+  timer is disabled.\r
+\r
+  @param  This              The EFI_WATCHDOG_TIMER_ARCH_PROTOCOL instance.\r
+  @param  TimerPeriod       The amount of time in 100 ns units to wait before the watchdog\r
+                            timer is fired.  If TimerPeriod is zero, then the watchdog\r
+                            timer is disabled.\r
+\r
+  @retval EFI_SUCCESS       The watchdog timer has been programmed to fire in Time\r
+                            100 ns units.\r
+  @retval EFI_DEVICE_ERROR  A watchdog timer could not be programmed due to a device\r
+                            error.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 WatchdogTimerDriverSetTimerPeriod (\r
@@ -53,6 +75,23 @@ WatchdogTimerDriverSetTimerPeriod (
   IN UINT64                            TimerPeriod\r
   );\r
 \r
+/**\r
+  Retrieves the amount of time in 100 ns units that the system will wait before firing the watchdog timer.\r
+\r
+  This function retrieves the amount of time the system will wait before firing\r
+  the watchdog timer.  This period is returned in TimerPeriod, and EFI_SUCCESS\r
+  is returned.  If TimerPeriod is NULL, then EFI_INVALID_PARAMETER is returned.\r
+\r
+  @param  This                    The EFI_WATCHDOG_TIMER_ARCH_PROTOCOL instance.\r
+  @param  TimerPeriod             A pointer to the amount of time in 100 ns units that the system\r
+                                  will wait before the watchdog timer is fired.  If TimerPeriod of\r
+                                  zero is returned, then the watchdog timer is disabled.\r
+\r
+  @retval EFI_SUCCESS             The amount of time that the system will wait before\r
+                                  firing the watchdog timer was returned in TimerPeriod.\r
+  @retval EFI_INVALID_PARAMETER   TimerPeriod is NULL.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 WatchdogTimerDriverGetTimerPeriod (\r
@@ -60,11 +99,4 @@ WatchdogTimerDriverGetTimerPeriod (
   IN UINT64                            *TimerPeriod\r
   );\r
 \r
-EFI_STATUS\r
-EFIAPI\r
-WatchdogTimerDriverInitialize (\r
-  IN EFI_HANDLE        ImageHandle,\r
-  IN EFI_SYSTEM_TABLE  *SystemTable\r
-  );\r
-\r
 #endif\r