summaryrefslogtreecommitdiff
path: root/StdLib/SocketDxe/EntryUnload.c
diff options
context:
space:
mode:
authorlpleahy <lpleahy@6f19259b-4bc3-4df7-8a09-765794883524>2011-09-30 23:02:35 +0000
committerlpleahy <lpleahy@6f19259b-4bc3-4df7-8a09-765794883524>2011-09-30 23:02:35 +0000
commita88c31639bb24c73383a4528a5b77066e805148b (patch)
tree058801cd8687b0a0c6f82459b56b2ad3beb43bf4 /StdLib/SocketDxe/EntryUnload.c
parentdf7499fcc1fbd6c825cabf19bbed379688416125 (diff)
downloadedk2-platforms-a88c31639bb24c73383a4528a5b77066e805148b.tar.xz
Update the sockets library code
* Passes conformance and functional tests. * Builds with GCC 4.4 compiler. Signed-off by: lpleahy git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12497 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'StdLib/SocketDxe/EntryUnload.c')
-rw-r--r--StdLib/SocketDxe/EntryUnload.c63
1 files changed, 47 insertions, 16 deletions
diff --git a/StdLib/SocketDxe/EntryUnload.c b/StdLib/SocketDxe/EntryUnload.c
index 6afd8e6b48..1f550c95b3 100644
--- a/StdLib/SocketDxe/EntryUnload.c
+++ b/StdLib/SocketDxe/EntryUnload.c
@@ -15,14 +15,31 @@
#include "Socket.h"
-CONST EFI_GUID mEslRawServiceGuid = {
- 0xf9f5d280, 0x8a4b, 0x48e2, { 0x96, 0x28, 0xda, 0xfa, 0xa7, 0x70, 0x54, 0x5d }
+/**
+ The following GUID values are only used by the SocketDxe driver. An
+ alternative set of values exists in EfiSocketLib\UseEfiSocketLib.c
+ which an application uses when it links against EfiSocketLib. These
+ two sets of values allow the SocketDxe driver to coexist with socket
+ applications.
+
+ Tag GUID - IPv4 in use by SocketDxe
+**/
+CONST EFI_GUID mEslIp4ServiceGuid = {
+ 0x4e3a82e6, 0xe43f, 0x460a, { 0x86, 0x6e, 0x9b, 0x5a, 0xab, 0x80, 0x44, 0x48 }
};
+
+/**
+ Tag GUID - TCPv4 in use by SocketDxe
+**/
CONST EFI_GUID mEslTcp4ServiceGuid = {
0x4dcaab0a, 0x1990, 0x4352, { 0x8d, 0x2f, 0x2d, 0x8f, 0x13, 0x55, 0x98, 0xa5 }
};
+
+/**
+ Tag GUID - UDPv4 in use by SocketDxe
+**/
CONST EFI_GUID mEslUdp4ServiceGuid = {
0x43a110ce, 0x9ccd, 0x402b, { 0x8c, 0x29, 0x4a, 0x6d, 0x8a, 0xf7, 0x79, 0x90 }
};
@@ -98,7 +115,7 @@ DriverUnload (
//
Max = BufferSize / sizeof ( pHandle[ 0 ]);
for ( Index = 0; Max > Index; Index++ ) {
- Status = DriverStop ( &gDriverBinding,
+ Status = DriverStop ( &mDriverBinding,
pHandle[ Index ],
0,
NULL );
@@ -131,7 +148,7 @@ DriverUnload (
// Done with the socket layer
//
if ( !EFI_ERROR ( Status )) {
- Status = EslServiceUninstall ( ImageHandle );
+ Status = EslDxeUninstall ( ImageHandle );
if ( !EFI_ERROR ( Status )) {
//
// Remove the protocols installed by the EntryPoint routine.
@@ -139,11 +156,11 @@ DriverUnload (
Status = gBS->UninstallMultipleProtocolInterfaces (
ImageHandle,
&gEfiDriverBindingProtocolGuid,
- &gDriverBinding,
+ &mDriverBinding,
&gEfiComponentNameProtocolGuid,
- &gComponentName,
+ &mComponentName,
&gEfiComponentName2ProtocolGuid,
- &gComponentName2,
+ &mComponentName2,
NULL
);
if ( !EFI_ERROR ( Status )) {
@@ -225,10 +242,10 @@ EntryPoint (
Status = EfiLibInstallDriverBindingComponentName2 (
ImageHandle,
pSystemTable,
- &gDriverBinding,
+ &mDriverBinding,
ImageHandle,
- &gComponentName,
- &gComponentName2
+ &mComponentName,
+ &mComponentName2
);
if ( !EFI_ERROR ( Status )) {
DEBUG (( DEBUG_POOL | DEBUG_INIT | DEBUG_INFO,
@@ -250,7 +267,7 @@ EntryPoint (
// Make the socket serivces available to other drivers
// and applications
//
- Status = EslServiceInstall ( &ImageHandle );
+ Status = EslDxeInstall ( &ImageHandle );
if ( EFI_ERROR ( Status )) {
//
// Disconnect from the network
@@ -263,11 +280,11 @@ EntryPoint (
gBS->UninstallMultipleProtocolInterfaces (
ImageHandle,
&gEfiDriverBindingProtocolGuid,
- &gDriverBinding,
+ &mDriverBinding,
&gEfiComponentNameProtocolGuid,
- &gComponentName,
+ &mComponentName,
&gEfiComponentName2ProtocolGuid,
- &gComponentName2,
+ &mComponentName2,
NULL
);
DEBUG (( DEBUG_POOL | DEBUG_INIT | DEBUG_INFO,
@@ -292,5 +309,19 @@ EntryPoint (
}
-PFN_ESL_xSTRUCTOR mpfnEslConstructor = NULL;
-PFN_ESL_xSTRUCTOR mpfnEslDestructor = NULL;
+/**
+ Socket layer's service binding protocol delcaration.
+**/
+CONST EFI_SERVICE_BINDING_PROTOCOL mEfiServiceBinding = {
+ EslDxeCreateChild,
+ EslDxeDestroyChild
+};
+
+
+/**
+ The following entries disable the constructor and destructor
+ for the SocketDxe driver. Note that socket applications linking
+ against EfiSocketLib use different redirection.
+**/
+PFN_ESL_xSTRUCTOR mpfnEslConstructor = NULL; ///< No EfiSocketLib constructor needed for SocketDxe
+PFN_ESL_xSTRUCTOR mpfnEslDestructor = NULL; ///< No EfiSocketLib destructor needed for SocketDxe