* 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
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Implement the constructor and destructor for the EFI socket library
 | |
| 
 | |
|   Copyright (c) 2011, Intel Corporation
 | |
|   All rights reserved. This program and the accompanying materials
 | |
|   are licensed and made available under the terms and conditions of the BSD License
 | |
|   which accompanies this distribution.  The full text of the license may be found at
 | |
|   http://opensource.org/licenses/bsd-license.
 | |
| 
 | |
|   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
|   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include "Socket.h"
 | |
| 
 | |
| 
 | |
| /**
 | |
|   EFI Socket Library Constructor
 | |
| 
 | |
|   This routine supports an implementation dependent constructor
 | |
|   depending upon whether the library is linked to a socket
 | |
|   application or the SocketDxe driver.  The following modules
 | |
|   declare the redirection for the constructor in ::mpfnEslConstructor:
 | |
|   <ul>
 | |
|     <li>StdLib/EfiSocketLib/UseSocketLib.c - Application links against EfiSocketLib</li>
 | |
|     <li>StdLib/SocketDxe/EntryUnload.c - SocketDxe links against EfiSocketLib</li>
 | |
|   </ul>
 | |
| 
 | |
|   The EfiSocketLib.inf file lists ::EslConstructor as the CONSTRUCTOR
 | |
|   in the [Defines] section.  As a result, this routine is called by
 | |
|   the ProcessLibraryConstructorList routine of the AutoGen.c module
 | |
|   in the Build directory associated with the socket application or
 | |
|   the SocketDxe driver.
 | |
| 
 | |
|   @retval EFI_SUCCESS       The socket layer initialization was successful
 | |
| 
 | |
|  **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| EslConstructor (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS Status;
 | |
| 
 | |
|   DBG_ENTER ( );
 | |
| 
 | |
|   //
 | |
|   //  Assume success
 | |
|   //
 | |
|   Status = EFI_SUCCESS;
 | |
| 
 | |
|   //
 | |
|   //  Call the image dependent constructor if available
 | |
|   //
 | |
|   if ( NULL != mpfnEslConstructor ) {
 | |
|     Status = mpfnEslConstructor ( );
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   //  Return the constructor status
 | |
|   //
 | |
|   DBG_EXIT_STATUS ( Status );
 | |
|   return Status;
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|   EFI Socket Library Destructor
 | |
| 
 | |
|   This routine supports an implementation dependent destructor
 | |
|   depending upon whether the library is linked to a socket
 | |
|   application or the SocketDxe driver.  The following modules
 | |
|   declare the redirection for the destructor in ::mpfnEslDestructor:
 | |
|   <ul>
 | |
|     <li>StdLib/EfiSocketLib/UseSocketLib.c - Application links against EfiSocketLib</li>
 | |
|     <li>StdLib/SocketDxe/EntryUnload.c - SocketDxe links against EfiSocketLib</li>
 | |
|   </ul>
 | |
| 
 | |
|   The EfiSocketLib.inf file lists ::EslDestructor as the DESTRUCTOR
 | |
|   in the [Defines] section.  As a result, this routine is called by
 | |
|   the ProcessLibraryDestructorList routine of the AutoGen.c module
 | |
|   in the Build directory associated with the socket application or
 | |
|   the SocketDxe driver.
 | |
| 
 | |
|   @retval EFI_SUCCESS       The socket layer shutdown was successful
 | |
| 
 | |
|  **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| EslDestructor (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS Status;
 | |
| 
 | |
|   DBG_ENTER ( );
 | |
| 
 | |
|   //
 | |
|   //  Assume success
 | |
|   //
 | |
|   Status = EFI_SUCCESS;
 | |
| 
 | |
|   //
 | |
|   //  Call the image dependent destructor if available
 | |
|   //
 | |
|   if ( NULL != mpfnEslDestructor ) {
 | |
|     Status = mpfnEslDestructor ( );
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   //  Return the constructor status
 | |
|   //
 | |
|   DBG_EXIT_STATUS ( Status );
 | |
|   return Status;
 | |
| }
 |