PageRenderTime 52ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/WindSLIC_EFI/include/efiDriverBinding.h

https://github.com/untermensch/WindSLIC
C Header | 131 lines | 40 code | 11 blank | 80 comment | 0 complexity | 13daecb9dd2236c3b297be7d148c08aa MD5 | raw file
  1. /*++
  2. Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved
  3. This software and associated documentation (if any) is furnished
  4. under a license and may only be used or copied in accordance
  5. with the terms of the license. Except as permitted by such
  6. license, no part of this software or documentation may be
  7. reproduced, stored in a retrieval system, or transmitted in any
  8. form or by any means without the express written consent of
  9. Intel Corporation.
  10. Module Name:
  11. DriverBinding.h
  12. Abstract:
  13. EFI ControllerHandle Driver Protocol
  14. Revision History
  15. --*/
  16. #ifndef _EFI_DRIVER_BINDING_H_
  17. #define _EFI_DRIVER_BINDING_H_
  18. //
  19. // Global ID for the ControllerHandle Driver Protocol
  20. //
  21. #define EFI_DRIVER_BINDING_PROTOCOL_GUID \
  22. { 0x18a031ab, 0xb443, 0x4d1a, 0xa5, 0xc0, 0xc, 0x9, 0x26, 0x1e, 0x9f, 0x71 }
  23. EFI_INTERFACE_DECL(_EFI_DRIVER_BINDING_PROTOCOL);
  24. typedef
  25. EFI_STATUS
  26. (EFIAPI *EFI_DRIVER_BINDING_SUPPORTED) (
  27. IN struct _EFI_DRIVER_BINDING_PROTOCOL *This,
  28. IN EFI_HANDLE ControllerHandle,
  29. IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
  30. )
  31. /*++
  32. Routine Description:
  33. Test to see if this driver supports ControllerHandle.
  34. Arguments:
  35. This - Protocol instance pointer.
  36. ControllerHandle - Handle of device to test
  37. RemainingDevicePath - Optional parameter use to pick a specific child
  38. device to start.
  39. Returns:
  40. EFI_SUCCES - This driver supports this device
  41. EFI_ALREADY_STARTED - This driver is already running on this device
  42. other - This driver does not support this device
  43. --*/
  44. ;
  45. typedef
  46. EFI_STATUS
  47. (EFIAPI *EFI_DRIVER_BINDING_START) (
  48. IN struct _EFI_DRIVER_BINDING_PROTOCOL *This,
  49. IN EFI_HANDLE ControllerHandle,
  50. IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
  51. )
  52. /*++
  53. Routine Description:
  54. Start this driver on ControllerHandle.
  55. Arguments:
  56. This - Protocol instance pointer.
  57. ControllerHandle - Handle of device to bind driver to
  58. RemainingDevicePath - Optional parameter use to pick a specific child
  59. device to start.
  60. Returns:
  61. EFI_SUCCES - This driver is added to ControllerHandle
  62. EFI_ALREADY_STARTED - This driver is already running on ControllerHandle
  63. other - This driver does not support this device
  64. --*/
  65. ;
  66. typedef
  67. EFI_STATUS
  68. (EFIAPI *EFI_DRIVER_BINDING_STOP) (
  69. IN struct _EFI_DRIVER_BINDING_PROTOCOL *This,
  70. IN EFI_HANDLE ControllerHandle,
  71. IN UINTN NumberOfChildren,
  72. IN EFI_HANDLE *ChildHandleBuffer
  73. )
  74. /*++
  75. Routine Description:
  76. Stop this driver on ControllerHandle.
  77. Arguments:
  78. This - Protocol instance pointer.
  79. ControllerHandle - Handle of device to stop driver on
  80. NumberOfChildren - Number of Handles in ChildHandleBuffer. If number of
  81. children is zero stop the entire bus driver.
  82. ChildHandleBuffer - List of Child Handles to Stop.
  83. Returns:
  84. EFI_SUCCES - This driver is removed ControllerHandle
  85. other - This driver was not removed from this device
  86. --*/
  87. ;
  88. //
  89. // Interface structure for the ControllerHandle Driver Protocol
  90. //
  91. typedef struct _EFI_DRIVER_BINDING_PROTOCOL {
  92. EFI_DRIVER_BINDING_SUPPORTED Supported;
  93. EFI_DRIVER_BINDING_START Start;
  94. EFI_DRIVER_BINDING_STOP Stop;
  95. UINT32 Version;
  96. EFI_HANDLE ImageHandle;
  97. EFI_HANDLE DriverBindingHandle;
  98. } EFI_DRIVER_BINDING_PROTOCOL;
  99. extern EFI_GUID DriverBindingProtocol;
  100. #endif