mirror of
https://github.com/acidanthera/audk.git
synced 2025-09-27 19:48:38 +02:00
89 lines
2.0 KiB
C
89 lines
2.0 KiB
C
/** @file
|
|
|
|
Copyright (c) 2024, Mikhail Krichanov. All rights reserved.
|
|
SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
**/
|
|
|
|
#include "DxeMain.h"
|
|
|
|
EFI_DRIVER_BINDING_SUPPORTED mUserDriverBindingSupported;
|
|
EFI_DRIVER_BINDING_START mUserDriverBindingStart;
|
|
EFI_DRIVER_BINDING_STOP mUserDriverBindingStop;
|
|
|
|
typedef enum {
|
|
UserDriverBindingSupported = 1,
|
|
UserDriverBindingStart = 2,
|
|
UserDriverBindingStop = 3,
|
|
UserCallMax
|
|
} USER_CALL_TYPE;
|
|
|
|
EFI_STATUS
|
|
EFIAPI
|
|
CallRing3 (
|
|
IN UINT8 Type,
|
|
IN UINT16 CodeSelector,
|
|
IN UINT16 DataSelector,
|
|
IN VOID *FunctionAddress,
|
|
...
|
|
);
|
|
|
|
EFI_STATUS
|
|
EFIAPI
|
|
CoreDriverBindingSupported (
|
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
IN EFI_HANDLE ControllerHandle,
|
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
|
|
)
|
|
{
|
|
return CallRing3 (
|
|
UserDriverBindingSupported,
|
|
(UINT16)RING3_CODE64_SEL,
|
|
(UINT16)RING3_DATA64_SEL,
|
|
(VOID *)mUserDriverBindingSupported,
|
|
This,
|
|
ControllerHandle,
|
|
RemainingDevicePath
|
|
);
|
|
}
|
|
|
|
EFI_STATUS
|
|
EFIAPI
|
|
CoreDriverBindingStart (
|
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
IN EFI_HANDLE ControllerHandle,
|
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
|
|
)
|
|
{
|
|
return CallRing3 (
|
|
UserDriverBindingStart,
|
|
(UINT16)RING3_CODE64_SEL,
|
|
(UINT16)RING3_DATA64_SEL,
|
|
(VOID *)mUserDriverBindingStart,
|
|
This,
|
|
ControllerHandle,
|
|
RemainingDevicePath
|
|
);
|
|
}
|
|
|
|
EFI_STATUS
|
|
EFIAPI
|
|
CoreDriverBindingStop (
|
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
|
IN EFI_HANDLE ControllerHandle,
|
|
IN UINTN NumberOfChildren,
|
|
IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
|
|
)
|
|
{
|
|
return CallRing3 (
|
|
UserDriverBindingStop,
|
|
(UINT16)RING3_CODE64_SEL,
|
|
(UINT16)RING3_DATA64_SEL,
|
|
(VOID *)mUserDriverBindingStop,
|
|
This,
|
|
ControllerHandle,
|
|
NumberOfChildren,
|
|
ChildHandleBuffer
|
|
);
|
|
}
|