Fix component name bugs when input Controller Name is invalid

Fix the driver binding version for platform/OEM specific drivers 




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2275 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2007-01-19 09:46:44 +00:00
parent 61fb1657e5
commit caea5554ab
10 changed files with 326 additions and 263 deletions

View File

@ -160,7 +160,17 @@ UnixBlockIoComponentNameGetControllerName (
if (ChildHandle != NULL) { if (ChildHandle != NULL) {
return EFI_UNSUPPORTED; return EFI_UNSUPPORTED;
} }
//
// Make sure this driver is currently managing ControllerHandle
//
Status = EfiTestManagedDevice (
ControllerHandle,
gUnixBlockIoDriverBinding.DriverBindingHandle,
&gEfiUnixIoProtocolGuid
);
if (EFI_ERROR (Status)) {
return EFI_UNSUPPORTED;
}
// //
// Get our context back // Get our context back
// //

View File

@ -318,7 +318,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUnixBlockIoDriverBinding = {
UnixBlockIoDriverBindingSupported, UnixBlockIoDriverBindingSupported,
UnixBlockIoDriverBindingStart, UnixBlockIoDriverBindingStart,
UnixBlockIoDriverBindingStop, UnixBlockIoDriverBindingStop,
0x10, 0xa,
NULL, NULL,
NULL NULL
}; };

View File

@ -160,7 +160,17 @@ UnixConsoleComponentNameGetControllerName (
if (ChildHandle != NULL) { if (ChildHandle != NULL) {
return EFI_UNSUPPORTED; return EFI_UNSUPPORTED;
} }
//
// Make sure this driver is currently managing ControllerHandle
//
Status = EfiTestManagedDevice (
ControllerHandle,
gUnixConsoleDriverBinding.DriverBindingHandle,
&gEfiUnixIoProtocolGuid
);
if (EFI_ERROR (Status)) {
return EFI_UNSUPPORTED;
}
// //
// Get out context back // Get out context back
// //

View File

@ -50,7 +50,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUnixConsoleDriverBinding = {
UnixConsoleDriverBindingSupported, UnixConsoleDriverBindingSupported,
UnixConsoleDriverBindingStart, UnixConsoleDriverBindingStart,
UnixConsoleDriverBindingStop, UnixConsoleDriverBindingStop,
0x10, 0xa,
NULL, NULL,
NULL NULL
}; };

View File

@ -167,6 +167,17 @@ UnixSimpleFileSystemComponentNameGetControllerName (
return EFI_UNSUPPORTED; return EFI_UNSUPPORTED;
} }
//
// Make sure this driver is currently managing ControllerHandle
//
Status = EfiTestManagedDevice (
ControllerHandle,
gUnixSimpleFileSystemDriverBinding.DriverBindingHandle,
&gEfiUnixIoProtocolGuid
);
if (EFI_ERROR (Status)) {
return EFI_UNSUPPORTED;
}
// //
// Get our context back // Get our context back
// //

View File

@ -30,7 +30,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUnixSimpleFileSystemDriverBinding = {
UnixSimpleFileSystemDriverBindingSupported, UnixSimpleFileSystemDriverBindingSupported,
UnixSimpleFileSystemDriverBindingStart, UnixSimpleFileSystemDriverBindingStart,
UnixSimpleFileSystemDriverBindingStop, UnixSimpleFileSystemDriverBindingStop,
0x10, 0xa,
NULL, NULL,
NULL NULL
}; };

View File

@ -161,6 +161,17 @@ UnixUgaComponentNameGetControllerName (
return EFI_UNSUPPORTED; return EFI_UNSUPPORTED;
} }
//
// Make sure this driver is currently managing ControllerHandle
//
Status = EfiTestManagedDevice (
ControllerHandle,
gUnixUgaDriverBinding.DriverBindingHandle,
&gEfiUnixIoProtocolGuid
);
if (EFI_ERROR (Status)) {
return EFI_UNSUPPORTED;
}
// //
// Get our context back // Get our context back
// //

View File

@ -31,7 +31,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUnixUgaDriverBinding = {
UnixUgaDriverBindingSupported, UnixUgaDriverBindingSupported,
UnixUgaDriverBindingStart, UnixUgaDriverBindingStart,
UnixUgaDriverBindingStop, UnixUgaDriverBindingStop,
0x10, 0xa,
NULL, NULL,
NULL NULL
}; };

View File

@ -154,6 +154,18 @@ UnixBusDriverComponentNameGetControllerName (
EFI_UNIX_IO_PROTOCOL *UnixIo; EFI_UNIX_IO_PROTOCOL *UnixIo;
UNIX_IO_DEVICE *Private; UNIX_IO_DEVICE *Private;
//
// Make sure this driver is currently managing ControllHandle
//
Status = EfiTestManagedDevice (
ControllerHandle,
gUnixBusDriverBinding.DriverBindingHandle,
&gEfiUnixThunkProtocolGuid
);
if (EFI_ERROR (Status)) {
return Status;
}
// //
// This is a bus driver, so ChildHandle can not be NULL. // This is a bus driver, so ChildHandle can not be NULL.
// //
@ -161,6 +173,15 @@ UnixBusDriverComponentNameGetControllerName (
return EFI_UNSUPPORTED; return EFI_UNSUPPORTED;
} }
Status = EfiTestChildHandle (
ControllerHandle,
ChildHandle,
&gEfiUnixThunkProtocolGuid
);
if (EFI_ERROR (Status)) {
return Status;
}
// //
// Get our context back // Get our context back
// //

View File

@ -107,7 +107,7 @@ EFI_DRIVER_BINDING_PROTOCOL gUnixBusDriverBinding = {
UnixBusDriverBindingSupported, UnixBusDriverBindingSupported,
UnixBusDriverBindingStart, UnixBusDriverBindingStart,
UnixBusDriverBindingStop, UnixBusDriverBindingStop,
0x10, 0xa,
NULL, NULL,
NULL NULL
}; };