summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Nt32Pkg/SnpNt32Dxe/SnpNt32.c927
-rw-r--r--Nt32Pkg/SnpNt32Dxe/SnpNt32.h93
2 files changed, 752 insertions, 268 deletions
diff --git a/Nt32Pkg/SnpNt32Dxe/SnpNt32.c b/Nt32Pkg/SnpNt32Dxe/SnpNt32.c
index 965452660e..d995a6eece 100644
--- a/Nt32Pkg/SnpNt32Dxe/SnpNt32.c
+++ b/Nt32Pkg/SnpNt32Dxe/SnpNt32.c
@@ -52,17 +52,417 @@ SNPNT32_GLOBAL_DATA gSnpNt32GlobalData = {
SnpNt32CloseInstance // CloseInstance
};
+/**
+ Changes the state of a network interface from "stopped" to "started".
+
+ @param This Protocol instance pointer.
+
+ @retval EFI_SUCCESS Always succeeds.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Start (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This
+ );
+
+/**
+ Changes the state of a network interface from "started" to "stopped".
+
+ @param This Protocol instance pointer.
+
+ @retval EFI_SUCCESS Always succeeds.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Stop (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This
+ );
+
+/**
+ Resets a network adapter and allocates the transmit and receive buffers
+ required by the network interface; optionally, also requests allocation
+ of additional transmit and receive buffers.
+
+ @param This Protocol instance pointer.
+ @param ExtraRxBufferSize The size, in bytes, of the extra receive buffer space
+ that the driver should allocate for the network interface.
+ Some network interfaces will not be able to use the extra
+ buffer, and the caller will not know if it is actually
+ being used.
+ @param ExtraTxBufferSize The size, in bytes, of the extra transmit buffer space
+ that the driver should allocate for the network interface.
+ Some network interfaces will not be able to use the extra
+ buffer, and the caller will not know if it is actually
+ being used.
+
+ @retval EFI_SUCCESS Always succeeds.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Initialize (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ IN UINTN ExtraRxBufferSize OPTIONAL,
+ IN UINTN ExtraTxBufferSize OPTIONAL
+ );
+
+/**
+ Resets a network adapter and re-initializes it with the parameters that were
+ provided in the previous call to Initialize().
+
+ @param This Protocol instance pointer.
+ @param ExtendedVerification Indicates that the driver may perform a more
+ exhaustive verification operation of the device
+ during reset.
+
+ @retval EFI_SUCCESS Always succeeds.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Reset (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ IN BOOLEAN ExtendedVerification
+ );
+
+/**
+ Resets a network adapter and leaves it in a state that is safe for
+ another driver to initialize.
+
+ @param This Protocol instance pointer.
+
+ @retval EFI_SUCCESS Always succeeds.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Shutdown (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This
+ );
+
+/**
+ Manages the multicast receive filters of a network interface.
+
+ @param This Protocol instance pointer.
+ @param EnableBits A bit mask of receive filters to enable on the network interface.
+ @param DisableBits A bit mask of receive filters to disable on the network interface.
+ @param ResetMcastFilter Set to TRUE to reset the contents of the multicast receive
+ filters on the network interface to their default values.
+ @param McastFilterCount Number of multicast HW MAC addresses in the new
+ MCastFilter list. This value must be less than or equal to
+ the MCastFilterCnt field of EFI_SIMPLE_NETWORK_MODE. This
+ field is optional if ResetMCastFilter is TRUE.
+ @param McastFilter A pointer to a list of new multicast receive filter HW MAC
+ addresses. This list will replace any existing multicast
+ HW MAC address list. This field is optional if
+ ResetMCastFilter is TRUE.
+
+ @retval EFI_SUCCESS The multicast receive filter list was updated.
+ @retval EFI_DEVICE_ERROR The command could not be sent to the network interface.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32ReceiveFilters (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ IN UINT32 EnableBits,
+ IN UINT32 DisableBits,
+ IN BOOLEAN ResetMcastFilter,
+ IN UINTN McastFilterCount OPTIONAL,
+ IN EFI_MAC_ADDRESS *McastFilter OPTIONAL
+ );
+
+/**
+ Modifies or resets the current station address, if supported.
+
+ @param This Protocol instance pointer.
+ @param Reset Flag used to reset the station address to the network interfaces
+ permanent address.
+ @param NewMacAddr New station address to be used for the network interface.
+
+ @retval EFI_UNSUPPORTED Not supported yet.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32StationAddress (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ IN BOOLEAN Reset,
+ IN EFI_MAC_ADDRESS *NewMacAddr OPTIONAL
+ );
+
+/**
+ Resets or collects the statistics on a network interface.
+
+ @param This Protocol instance pointer.
+ @param Reset Set to TRUE to reset the statistics for the network interface.
+ @param StatisticsSize On input the size, in bytes, of StatisticsTable. On
+ output the size, in bytes, of the resulting table of
+ statistics.
+ @param StatisticsTable A pointer to the EFI_NETWORK_STATISTICS structure that
+ contains the statistics.
+
+ @retval EFI_SUCCESS The statistics were collected from the network interface.
+ @retval EFI_NOT_STARTED The network interface has not been started.
+ @retval EFI_BUFFER_TOO_SMALL The Statistics buffer was too small. The current buffer
+ size needed to hold the statistics is returned in
+ StatisticsSize.
+ @retval EFI_UNSUPPORTED Not supported yet.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Statistics (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL * This,
+ IN BOOLEAN Reset,
+ IN OUT UINTN *StatisticsSize OPTIONAL,
+ OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
+ );
+
+/**
+ Converts a multicast IP address to a multicast HW MAC address.
+
+ @param This Protocol instance pointer.
+ @param Ipv6 Set to TRUE if the multicast IP address is IPv6 [RFC 2460]. Set
+ to FALSE if the multicast IP address is IPv4 [RFC 791].
+ @param Ip The multicast IP address that is to be converted to a multicast
+ HW MAC address.
+ @param Mac The multicast HW MAC address that is to be generated from IP.
+
+ @retval EFI_SUCCESS The multicast IP address was mapped to the multicast
+ HW MAC address.
+ @retval EFI_NOT_STARTED The network interface has not been started.
+ @retval EFI_BUFFER_TOO_SMALL The Statistics buffer was too small. The current buffer
+ size needed to hold the statistics is returned in
+ StatisticsSize.
+ @retval EFI_UNSUPPORTED Not supported yet.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32McastIptoMac (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ IN BOOLEAN Ipv6,
+ IN EFI_IP_ADDRESS *Ip,
+ OUT EFI_MAC_ADDRESS *Mac
+ );
+
+/**
+ Performs read and write operations on the NVRAM device attached to a
+ network interface.
+
+ @param This Protocol instance pointer.
+ @param ReadOrWrite TRUE for read operations, FALSE for write operations.
+ @param Offset Byte offset in the NVRAM device at which to start the read or
+ write operation. This must be a multiple of NvRamAccessSize and
+ less than NvRamSize.
+ @param BufferSize The number of bytes to read or write from the NVRAM device.
+ This must also be a multiple of NvramAccessSize.
+ @param Buffer A pointer to the data buffer.
+
+ @retval EFI_UNSUPPORTED Not supported yet.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Nvdata (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ IN BOOLEAN ReadOrWrite,
+ IN UINTN Offset,
+ IN UINTN BufferSize,
+ IN OUT VOID *Buffer
+ );
+
+/**
+ Reads the current interrupt status and recycled transmit buffer status from
+ a network interface.
+
+ @param This Protocol instance pointer.
+ @param InterruptStatus A pointer to the bit mask of the currently active interrupts
+ If this is NULL, the interrupt status will not be read from
+ the device. If this is not NULL, the interrupt status will
+ be read from the device. When the interrupt status is read,
+ it will also be cleared. Clearing the transmit interrupt
+ does not empty the recycled transmit buffer array.
+ @param TxBuffer Recycled transmit buffer address. The network interface will
+ not transmit if its internal recycled transmit buffer array
+ is full. Reading the transmit buffer does not clear the
+ transmit interrupt. If this is NULL, then the transmit buffer
+ status will not be read. If there are no transmit buffers to
+ recycle and TxBuf is not NULL, * TxBuf will be set to NULL.
+
+ @retval EFI_SUCCESS Always succeeds.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32GetStatus (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ OUT UINT32 *InterruptStatus,
+ OUT VOID **TxBuffer
+ );
+
+/**
+ Places a packet in the transmit queue of a network interface.
+
+ @param This Protocol instance pointer.
+ @param HeaderSize The size, in bytes, of the media header to be filled in by
+ the Transmit() function. If HeaderSize is non-zero, then it
+ must be equal to This->Mode->MediaHeaderSize and the DestAddr
+ and Protocol parameters must not be NULL.
+ @param BufferSize The size, in bytes, of the entire packet (media header and
+ data) to be transmitted through the network interface.
+ @param Buffer A pointer to the packet (media header followed by data) to be
+ transmitted. This parameter cannot be NULL. If HeaderSize is zero,
+ then the media header in Buffer must already be filled in by the
+ caller. If HeaderSize is non-zero, then the media header will be
+ filled in by the Transmit() function.
+ @param SrcAddr The source HW MAC address. If HeaderSize is zero, then this parameter
+ is ignored. If HeaderSize is non-zero and SrcAddr is NULL, then
+ This->Mode->CurrentAddress is used for the source HW MAC address.
+ @param DestAddr The destination HW MAC address. If HeaderSize is zero, then this
+ parameter is ignored.
+ @param Protocol The type of header to build. If HeaderSize is zero, then this
+ parameter is ignored. See RFC 1700, section "Ether Types", for
+ examples.
+
+ @retval EFI_SUCCESS The packet was placed on the transmit queue.
+ @retval EFI_DEVICE_ERROR The command could not be sent to the network interface.
+ @retval EFI_ACCESS_DENIED Error acquire global lock for operation.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Transmit (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ IN UINTN HeaderSize,
+ IN UINTN BufferSize,
+ IN VOID *Buffer,
+ IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,
+ IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,
+ IN UINT16 *Protocol OPTIONAL
+ );
+
+/**
+ Receives a packet from a network interface.
+
+ @param This Protocol instance pointer.
+ @param HeaderSize The size, in bytes, of the media header received on the network
+ interface. If this parameter is NULL, then the media header size
+ will not be returned.
+ @param BuffSize On entry, the size, in bytes, of Buffer. On exit, the size, in
+ bytes, of the packet that was received on the network interface.
+ @param Buffer A pointer to the data buffer to receive both the media header and
+ the data.
+ @param SourceAddr The source HW MAC address. If this parameter is NULL, the
+ HW MAC source address will not be extracted from the media
+ header.
+ @param DestinationAddr The destination HW MAC address. If this parameter is NULL,
+ the HW MAC destination address will not be extracted from the
+ media header.
+ @param Protocol The media header type. If this parameter is NULL, then the
+ protocol will not be extracted from the media header. See
+ RFC 1700 section "Ether Types" for examples.
+
+ @retval EFI_SUCCESS The received data was stored in Buffer, and BufferSize has
+ been updated to the number of bytes received.
+ @retval EFI_NOT_READY The network interface is too busy to accept this transmit
+ request.
+ @retval EFI_BUFFER_TOO_SMALL The BufferSize parameter is too small.
+ @retval EFI_DEVICE_ERROR The command could not be sent to the network interface.
+ @retval EFI_ACCESS_DENIED Error acquire global lock for operation.
+
+**/
+EFI_STATUS
+EFIAPI
+SnpNt32Receive (
+ IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
+ OUT UINTN *HeaderSize,
+ IN OUT UINTN *BuffSize,
+ OUT VOID *Buffer,
+ OUT EFI_MAC_ADDRESS *SourceAddr,
+ OUT EFI_MAC_ADDRESS *DestinationAddr,
+ OUT UINT16 *Protocol
+ );
+
+SNPNT32_INSTANCE_DATA gSnpNt32InstanceTemplate = {
+ SNP_NT32_INSTANCE_SIGNATURE, // Signature
+ {
+ NULL,
+ NULL
+ }, // Entry
+ NULL, // GlobalData
+ NULL, // DeviceHandle
+ NULL, // DevicePath
+ { // Snp
+ EFI_SIMPLE_NETWORK_PROTOCOL_REVISION, // Revision
+ SnpNt32Start, // Start
+ SnpNt32Stop, // Stop
+ SnpNt32Initialize, // Initialize
+ SnpNt32Reset, // Reset
+ SnpNt32Shutdown, // Shutdown
+ SnpNt32ReceiveFilters, // ReceiveFilters
+ SnpNt32StationAddress, // StationAddress
+ SnpNt32Statistics, // Statistics
+ SnpNt32McastIptoMac, // MCastIpToMac
+ SnpNt32Nvdata, // NvData
+ SnpNt32GetStatus, // GetStatus
+ SnpNt32Transmit, // Transmit
+ SnpNt32Receive, // Receive
+ NULL, // WaitForPacket
+ NULL // Mode
+ },
+ { // Mode
+ EfiSimpleNetworkInitialized, // State
+ NET_ETHER_ADDR_LEN, // HwAddressSize
+ NET_ETHER_HEADER_SIZE, // MediaHeaderSize
+ 1500, // MaxPacketSize
+ 0, // NvRamSize
+ 0, // NvRamAccessSize
+ 0, // ReceiveFilterMask
+ 0, // ReceiveFilterSetting
+ MAX_MCAST_FILTER_CNT, // MaxMCastFilterCount
+ 0, // MCastFilterCount
+ {
+ 0
+ }, // MCastFilter
+ {
+ 0
+ }, // CurrentAddress
+ {
+ 0
+ }, // BroadcastAddress
+ {
+ 0
+ }, // PermanentAddress
+ NET_IFTYPE_ETHERNET, // IfType
+ FALSE, // MacAddressChangeable
+ FALSE, // MultipleTxSupported
+ FALSE, // MediaPresentSupported
+ TRUE // MediaPresent
+ },
+ {
+ 0
+ } // InterfaceInfo
+};
/**
- Test to see if this driver supports ControllerHandle.
+ Test to see if this driver supports ControllerHandle. This service
+ is called by the EFI boot service ConnectController(). In
+ order to make drivers as small as possible, there are a few calling
+ restrictions for this service. ConnectController() must
+ follow these calling restrictions. If any other agent wishes to call
+ Supported() it must also follow these calling restrictions.
- @param This Protocol instance pointer.
- @param ControllerHandle Handle of device to test.
- @param RemainingDevicePath Optional parameter use to pick a specific child
- device to start.
+ @param This Protocol instance pointer.
+ @param ControllerHandle Handle of device to test
+ @param RemainingDevicePath Optional parameter use to pick a specific child
+ device to start.
- @retval EFI_SUCCES This driver supports this device.
- @retval other This driver does not support this device.
+ @retval EFI_SUCCESS This driver supports this device
+ @retval EFI_UNSUPPORTED This driver does not support this device
**/
EFI_STATUS
@@ -95,14 +495,19 @@ SnpNt32DriverBindingSupported (
/**
- Start this driver on ControllerHandle.
+ Start this driver on ControllerHandle. This service is called by the
+ EFI boot service ConnectController(). In order to make
+ drivers as small as possible, there are a few calling restrictions for
+ this service. ConnectController() must follow these
+ calling restrictions. If any other agent wishes to call Start() it
+ must also follow these calling restrictions.
- @param This Protocol instance pointer.
- @param ControllerHandle Handle of device to bind driver to.
- @param RemainingDevicePath Optional parameter use to pick a specific child
- device to start.
+ @param This Protocol instance pointer.
+ @param ControllerHandle Handle of device to bind driver to
+ @param RemainingDevicePath Optional parameter use to pick a specific child
+ device to start.
- @retval EFI_SUCCES This driver is added to ControllerHandle.
+ @retval EFI_SUCCESS Always succeeds.
**/
EFI_STATUS
@@ -116,17 +521,21 @@ SnpNt32DriverBindingStart (
return EFI_SUCCESS;
}
-
/**
- Stop this driver on ControllerHandle.
-
- @param This Protocol instance pointer.
- @param ControllerHandle Handle of device to stop driver on.
- @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number
- of children is zero stop the entire bus driver.
- @param ChildHandleBuffer List of Child Handles to Stop.
-
- @retval EFI_SUCCES This driver is removed ControllerHandle.
+ Stop this driver on ControllerHandle. This service is called by the
+ EFI boot service DisconnectController(). In order to
+ make drivers as small as possible, there are a few calling
+ restrictions for this service. DisconnectController()
+ must follow these calling restrictions. If any other agent wishes
+ to call Stop() it must also follow these calling restrictions.
+
+ @param This Protocol instance pointer.
+ @param ControllerHandle Handle of device to stop driver on
+ @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of
+ children is zero stop the entire bus driver.
+ @param ChildHandleBuffer List of Child Handles to Stop.
+
+ @retval EFI_SUCCESS Always succeeds.
**/
EFI_STATUS
@@ -138,20 +547,20 @@ SnpNt32DriverBindingStop (
IN EFI_HANDLE *ChildHandleBuffer
)
{
-
return EFI_SUCCESS;
}
/**
- Start the SnpNt32 interface.
+ Changes the state of a network interface from "stopped" to "started".
- @param This Context pointer.
+ @param This Protocol instance pointer.
- @retval EFI_SUCCESS The interface is started.
+ @retval EFI_SUCCESS Always succeeds.
**/
EFI_STATUS
+EFIAPI
SnpNt32Start (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This
)
@@ -161,14 +570,15 @@ SnpNt32Start (
/**
- Stop the SnpNt32 interface.
+ Changes the state of a network interface from "started" to "stopped".
- @param This Context pointer.
+ @param This Protocol instance pointer.
- @retval EFI_SUCCESS The interface is stopped.
+ @retval EFI_SUCCESS Always succeeds.
**/
EFI_STATUS
+EFIAPI
SnpNt32Stop (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This
)
@@ -176,18 +586,28 @@ SnpNt32Stop (
return EFI_SUCCESS;
}
-
/**
- Initialize the SnpNt32 interface.
-
- @param This Context pointer.
- @param ExtraRxBufferSize Number of extra receive buffer.
- @param ExtraTxBufferSize Number of extra transmit buffer.
-
- @retval EFI_SUCCESS The interface is initialized.
+ Resets a network adapter and allocates the transmit and receive buffers
+ required by the network interface; optionally, also requests allocation
+ of additional transmit and receive buffers.
+
+ @param This Protocol instance pointer.
+ @param ExtraRxBufferSize The size, in bytes, of the extra receive buffer space
+ that the driver should allocate for the network interface.
+ Some network interfaces will not be able to use the extra
+ buffer, and the caller will not know if it is actually
+ being used.
+ @param ExtraTxBufferSize The size, in bytes, of the extra transmit buffer space
+ that the driver should allocate for the network interface.
+ Some network interfaces will not be able to use the extra
+ buffer, and the caller will not know if it is actually
+ being used.
+
+ @retval EFI_SUCCESS Always succeeds.
**/
EFI_STATUS
+EFIAPI
SnpNt32Initialize (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
IN UINTN ExtraRxBufferSize OPTIONAL,
@@ -197,17 +617,20 @@ SnpNt32Initialize (
return EFI_SUCCESS;
}
-
/**
- Reset the snpnt32 interface.
+ Resets a network adapter and re-initializes it with the parameters that were
+ provided in the previous call to Initialize().
- @param This Context pointer.
- @param ExtendedVerification Not implemented.
+ @param This Protocol instance pointer.
+ @param ExtendedVerification Indicates that the driver may perform a more
+ exhaustive verification operation of the device
+ during reset.
- @retval EFI_SUCCESS The interface is reseted.
+ @retval EFI_SUCCESS Always succeeds.
**/
EFI_STATUS
+EFIAPI
SnpNt32Reset (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
@@ -216,16 +639,17 @@ SnpNt32Reset (
return EFI_SUCCESS;
}
-
/**
- Shut down the snpnt32 interface.
+ Resets a network adapter and leaves it in a state that is safe for
+ another driver to initialize.
- @param This Context pointer.
+ @param This Protocol instance pointer.
- @retval EFI_SUCCESS The interface is shut down.
+ @retval EFI_SUCCESS Always succeeds.
**/
EFI_STATUS
+EFIAPI
SnpNt32Shutdown (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This
)
@@ -233,31 +657,36 @@ SnpNt32Shutdown (
return EFI_SUCCESS;
}
-
/**
- Change the interface's receive filter setting.
-
- @param This Context pointer.
- @param EnableBits The receive filters to enable.
- @param DisableBits The receive filters to disable
- @param ResetMcastFilter Reset the multicast filters or not.
- @param McastFilterCount The count of multicast filter to set.
- @param McastFilter Pointer to the arrya of multicast addresses to set.
-
- @retval EFI_SUCCESS The receive filter is updated.
- @retval EFI_ACCESS_DENIED The snpnt32 lock is already owned by another
- routine.
- @retval EFI_DEVICE_ERROR Failed to update the receive filter.
+ Manages the multicast receive filters of a network interface.
+
+ @param This Protocol instance pointer.
+ @param EnableBits A bit mask of receive filters to enable on the network interface.
+ @param DisableBits A bit mask of receive filters to disable on the network interface.
+ @param ResetMcastFilter Set to TRUE to reset the contents of the multicast receive
+ filters on the network interface to their default values.
+ @param McastFilterCount Number of multicast HW MAC addresses in the new
+ MCastFilter list. This value must be less than or equal to
+ the MCastFilterCnt field of EFI_SIMPLE_NETWORK_MODE. This
+ field is optional if ResetMCastFilter is TRUE.
+ @param McastFilter A pointer to a list of new multicast receive filter HW MAC
+ addresses. This list will replace any existing multicast
+ HW MAC address list. This field is optional if
+ ResetMCastFilter is TRUE.
+
+ @retval EFI_SUCCESS The multicast receive filter list was updated.
+ @retval EFI_DEVICE_ERROR The command could not be sent to the network interface.
**/
EFI_STATUS
+EFIAPI
SnpNt32ReceiveFilters (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
IN UINT32 EnableBits,
IN UINT32 DisableBits,
IN BOOLEAN ResetMcastFilter,
IN UINTN McastFilterCount OPTIONAL,
- IN EFI_MAC_ADDRESS *McastFilter OPTIONAL
+ IN EFI_MAC_ADDRESS *McastFilter OPTIONAL
)
{
SNPNT32_INSTANCE_DATA *Instance;
@@ -288,18 +717,19 @@ SnpNt32ReceiveFilters (
return EFI_SUCCESS;
}
-
/**
- Change or reset the mac address of the interface.
+ Modifies or resets the current station address, if supported.
- @param This Context pointer.
- @param reset Reset the mac address to the original one or not.
- @param NewMacAddr Pointer to the new mac address to set.
+ @param This Protocol instance pointer.
+ @param Reset Flag used to reset the station address to the network interfaces
+ permanent address.
+ @param NewMacAddr New station address to be used for the network interface.
@retval EFI_UNSUPPORTED Not supported yet.
**/
EFI_STATUS
+EFIAPI
SnpNt32StationAddress (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
IN BOOLEAN Reset,
@@ -309,45 +739,58 @@ SnpNt32StationAddress (
return EFI_UNSUPPORTED;
}
-
/**
- Get or reset the statistics data.
-
- @param This Context pointer.
- @param Reset Reset the statistics or not.
- @param StatisticsSize The size of the buffer used to receive the
- statistics data.
- @param StatisticsTable Pointer to the table used to receive the statistics
- data.
-
+ Resets or collects the statistics on a network interface.
+
+ @param This Protocol instance pointer.
+ @param Reset Set to TRUE to reset the statistics for the network interface.
+ @param StatisticsSize On input the size, in bytes, of StatisticsTable. On
+ output the size, in bytes, of the resulting table of
+ statistics.
+ @param StatisticsTable A pointer to the EFI_NETWORK_STATISTICS structure that
+ contains the statistics.
+
+ @retval EFI_SUCCESS The statistics were collected from the network interface.
+ @retval EFI_NOT_STARTED The network interface has not been started.
+ @retval EFI_BUFFER_TOO_SMALL The Statistics buffer was too small. The current buffer
+ size needed to hold the statistics is returned in
+ StatisticsSize.
@retval EFI_UNSUPPORTED Not supported yet.
**/
EFI_STATUS
+EFIAPI
SnpNt32Statistics (
IN EFI_SIMPLE_NETWORK_PROTOCOL * This,
IN BOOLEAN Reset,
IN OUT UINTN *StatisticsSize OPTIONAL,
- IN OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
+ OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL
)
{
return EFI_UNSUPPORTED;
}
-
/**
- Convert a multicast ip address to the multicast mac address.
-
- @param This Context pointer.
- @param Ipv6 The Ip is an Ipv6 address or not.
- @param Ip Pointer to the Ip address to convert.
- @param Mac Pointer to the buffer used to hold the converted
- mac address.
-
+ Converts a multicast IP address to a multicast HW MAC address.
+
+ @param This Protocol instance pointer.
+ @param Ipv6 Set to TRUE if the multicast IP address is IPv6 [RFC 2460]. Set
+ to FALSE if the multicast IP address is IPv4 [RFC 791].
+ @param Ip The multicast IP address that is to be converted to a multicast
+ HW MAC address.
+ @param Mac The multicast HW MAC address that is to be generated from IP.
+
+ @retval EFI_SUCCESS The multicast IP address was mapped to the multicast
+ HW MAC address.
+ @retval EFI_NOT_STARTED The network interface has not been started.
+ @retval EFI_BUFFER_TOO_SMALL The Statistics buffer was too small. The current buffer
+ size needed to hold the statistics is returned in
+ StatisticsSize.
@retval EFI_UNSUPPORTED Not supported yet.
**/
EFI_STATUS
+EFIAPI
SnpNt32McastIptoMac (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
IN BOOLEAN Ipv6,
@@ -360,19 +803,23 @@ SnpNt32McastIptoMac (
/**
- Read or write the nv data.
-
- @param This Context pinter.
- @param ReadOrWrite Read or write the nv data.
- @param Offset The offset to the start of the nv data.
- @param BufferSize Size of the buffer.
- @param Buffer Pointer to the buffer containing the data to write
- or used to receive the data read.
+ Performs read and write operations on the NVRAM device attached to a
+ network interface.
+
+ @param This Protocol instance pointer.
+ @param ReadOrWrite TRUE for read operations, FALSE for write operations.
+ @param Offset Byte offset in the NVRAM device at which to start the read or
+ write operation. This must be a multiple of NvRamAccessSize and
+ less than NvRamSize.
+ @param BufferSize The number of bytes to read or write from the NVRAM device.
+ This must also be a multiple of NvramAccessSize.
+ @param Buffer A pointer to the data buffer.
@retval EFI_UNSUPPORTED Not supported yet.
**/
EFI_STATUS
+EFIAPI
SnpNt32Nvdata (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
IN BOOLEAN ReadOrWrite,
@@ -386,18 +833,28 @@ SnpNt32Nvdata (
/**
- Get the status information of the interface.
-
- @param This Context pointer.
- @param InterruptStatus The storage to hold the interrupt status.
- @param TxBuffer Pointer to get the list of pointers of previously
- transmitted buffers whose transmission was
- completed asynchrnously.
-
- @retval EFI_SUCCESS The status is got.
+ Reads the current interrupt status and recycled transmit buffer status from
+ a network interface.
+
+ @param This Protocol instance pointer.
+ @param InterruptStatus A pointer to the bit mask of the currently active interrupts
+ If this is NULL, the interrupt status will not be read from
+ the device. If this is not NULL, the interrupt status will
+ be read from the device. When the interrupt status is read,
+ it will also be cleared. Clearing the transmit interrupt
+ does not empty the recycled transmit buffer array.
+ @param TxBuffer Recycled transmit buffer address. The network interface will
+ not transmit if its internal recycled transmit buffer array
+ is full. Reading the transmit buffer does not clear the
+ transmit interrupt. If this is NULL, then the transmit buffer
+ status will not be read. If there are no transmit buffers to
+ recycle and TxBuf is not NULL, * TxBuf will be set to NULL.
+
+ @retval EFI_SUCCESS Always succeeds.
**/
EFI_STATUS
+EFIAPI
SnpNt32GetStatus (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
OUT UINT32 *InterruptStatus,
@@ -418,25 +875,36 @@ SnpNt32GetStatus (
/**
- Transmit a packet.
-
- @param This Context pointer.
- @param HeaderSize The media header size contained in the packet
- buffer.
- @param BufferSize The size of the packet buffer.
- @param Buffer Pointer to the buffer containing the packet data.
- @param SrcAddr If non null, points to the source address of this
- packet.
- @param DestAddr If non null, points to the destination address of
- this packet.
- @param Protocol The protocol type of this packet.
-
- @retval EFI_SUCCESS The packet is transmitted or put into the transmit
- queue.
- @retval other Some error occurs.
+ Places a packet in the transmit queue of a network interface.
+
+ @param This Protocol instance pointer.
+ @param HeaderSize The size, in bytes, of the media header to be filled in by
+ the Transmit() function. If HeaderSize is non-zero, then it
+ must be equal to This->Mode->MediaHeaderSize and the DestAddr
+ and Protocol parameters must not be NULL.
+ @param BufferSize The size, in bytes, of the entire packet (media header and
+ data) to be transmitted through the network interface.
+ @param Buffer A pointer to the packet (media header followed by data) to be
+ transmitted. This parameter cannot be NULL. If HeaderSize is zero,
+ then the media header in Buffer must already be filled in by the
+ caller. If HeaderSize is non-zero, then the media header will be
+ filled in by the Transmit() function.
+ @param SrcAddr The source HW MAC address. If HeaderSize is zero, then this parameter
+ is ignored. If HeaderSize is non-zero and SrcAddr is NULL, then
+ This->Mode->CurrentAddress is used for the source HW MAC address.
+ @param DestAddr The destination HW MAC address. If HeaderSize is zero, then this
+ parameter is ignored.
+ @param Protocol The type of header to build. If HeaderSize is zero, then this
+ parameter is ignored. See RFC 1700, section "Ether Types", for
+ examples.
+
+ @retval EFI_SUCCESS The packet was placed on the transmit queue.
+ @retval EFI_DEVICE_ERROR The command could not be sent to the network interface.
+ @retval EFI_ACCESS_DENIED Error acquire global lock for operation.
**/
EFI_STATUS
+EFIAPI
SnpNt32Transmit (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
IN UINTN HeaderSize,
@@ -482,30 +950,38 @@ SnpNt32Transmit (
return EFI_SUCCESS;
}
-
/**
- Receive network data.
-
- @param This Context pointer.
- @param HeaderSize Optional parameter and is a pointer to the header
- portion of the data received.
- @param BuffSize Pointer to the length of the Buffer on entry and
- contains the length of the received data on return
- @param Buffer Pointer to the memory for the received data
- @param SourceAddr Optional parameter, is a pointer to contain the
- source ethernet address on return
- @param DestinationAddr Optional parameter, is a pointer to contain the
- destination ethernet address on return.
- @param Protocol Optional parameter, is a pointer to contain the
- Protocol type from the ethernet header on return.
-
- @retval EFI_SUCCESS A packet is received and put into the buffer.
- @retval EFI_BUFFER_TOO_SMALL The provided buffer is too small to receive the
- packet.
- @retval EFI_NOT_READY There is no packet received.
+ Receives a packet from a network interface.
+
+ @param This Protocol instance pointer.
+ @param HeaderSize The size, in bytes, of the media header received on the network
+ interface. If this parameter is NULL, then the media header size
+ will not be returned.
+ @param BuffSize On entry, the size, in bytes, of Buffer. On exit, the size, in
+ bytes, of the packet that was received on the network interface.
+ @param Buffer A pointer to the data buffer to receive both the media header and
+ the data.
+ @param SourceAddr The source HW MAC address. If this parameter is NULL, the
+ HW MAC source address will not be extracted from the media
+ header.
+ @param DestinationAddr The destination HW MAC address. If this parameter is NULL,
+ the HW MAC destination address will not be extracted from the
+ media header.
+ @param Protocol The media header type. If this parameter is NULL, then the
+ protocol will not be extracted from the media header. See
+ RFC 1700 section "Ether Types" for examples.
+
+ @retval EFI_SUCCESS The received data was stored in Buffer, and BufferSize has
+ been updated to the number of bytes received.
+ @retval EFI_NOT_READY The network interface is too busy to accept this transmit
+ request.
+ @retval EFI_BUFFER_TOO_SMALL The BufferSize parameter is too small.
+ @retval EFI_DEVICE_ERROR The command could not be sent to the network interface.
+ @retval EFI_ACCESS_DENIED Error acquire global lock for operation.
**/
EFI_STATUS
+EFIAPI
SnpNt32Receive (
IN EFI_SIMPLE_NETWORK_PROTOCOL *This,
OUT UINTN *HeaderSize,
@@ -569,68 +1045,6 @@ SnpNt32Receive (
return EFI_SUCCESS;
}
-SNPNT32_INSTANCE_DATA gSnpNt32InstanceTemplate = {
- SNP_NT32_INSTANCE_SIGNATURE, // Signature
- {
- NULL,
- NULL
- }, // Entry
- NULL, // GlobalData
- NULL, // DeviceHandle
- NULL, // DevicePath
- { // Snp
- EFI_SIMPLE_NETWORK_PROTOCOL_REVISION, // Revision
- SnpNt32Start, // Start
- SnpNt32Stop, // Stop
- SnpNt32Initialize, // Initialize
- SnpNt32Reset, // Reset
- SnpNt32Shutdown, // Shutdown
- SnpNt32ReceiveFilters, // ReceiveFilters
- SnpNt32StationAddress, // StationAddress
- SnpNt32Statistics, // Statistics
- SnpNt32McastIptoMac, // MCastIpToMac
- SnpNt32Nvdata, // NvData
- SnpNt32GetStatus, // GetStatus
- SnpNt32Transmit, // Transmit
- SnpNt32Receive, // Receive
- NULL, // WaitForPacket
- NULL // Mode
- },
- { // Mode
- EfiSimpleNetworkInitialized, // State
- NET_ETHER_ADDR_LEN, // HwAddressSize
- NET_ETHER_HEADER_SIZE, // MediaHeaderSize
- 1500, // MaxPacketSize
- 0, // NvRamSize
- 0, // NvRamAccessSize
- 0, // ReceiveFilterMask
- 0, // ReceiveFilterSetting
- MAX_MCAST_FILTER_CNT, // MaxMCastFilterCount
- 0, // MCastFilterCount
- {
- 0
- }, // MCastFilter
- {
- 0
- }, // CurrentAddress
- {
- 0
- }, // BroadcastAddress
- {
- 0
- }, // PermanentAddress
- NET_IFTYPE_ETHERNET, // IfType
- FALSE, // MacAddressChangeable
- FALSE, // MultipleTxSupported
- FALSE, // MediaPresentSupported
- TRUE // MediaPresent
- },
- {
- 0
- } // InterfaceInfo
-};
-
-
/**
Initialize the driver's global data.
@@ -638,11 +1052,14 @@ SNPNT32_INSTANCE_DATA gSnpNt32InstanceTemplate = {
@retval EFI_SUCCESS The global data is initialized.
@retval EFI_NOT_FOUND The required DLL is not found.
+ @retval EFI_DEVICE_ERROR Error initialize network utility library.
+ @retval EFI_OUT_OF_RESOURCES Out of resource.
+ @retval other Other errors.
**/
EFI_STATUS
SnpNt32InitializeGlobalData (
- IN SNPNT32_GLOBAL_DATA *This
+ IN OUT SNPNT32_GLOBAL_DATA *This
)
{
EFI_STATUS Status;
@@ -686,9 +1103,9 @@ SnpNt32InitializeGlobalData (
}
This->NtNetUtilityTable.Initialize = (NT_NET_INITIALIZE) This->WinNtThunk->GetProcAddress (
- This->NetworkLibraryHandle,
- NETWORK_LIBRARY_INITIALIZE
- );
+ This->NetworkLibraryHandle,
+ NETWORK_LIBRARY_INITIALIZE
+ );
if (NULL == This->NtNetUtilityTable.Initialize) {
Status = EFI_NOT_FOUND;
@@ -696,9 +1113,9 @@ SnpNt32InitializeGlobalData (
}
This->NtNetUtilityTable.Finalize = (NT_NET_FINALIZE) This->WinNtThunk->GetProcAddress (
- This->NetworkLibraryHandle,
- NETWORK_LIBRARY_FINALIZE
- );
+ This->NetworkLibraryHandle,
+ NETWORK_LIBRARY_FINALIZE
+ );
if (NULL == This->NtNetUtilityTable.Finalize) {
Status = EFI_NOT_FOUND;
@@ -706,9 +1123,9 @@ SnpNt32InitializeGlobalData (
}
This->NtNetUtilityTable.SetReceiveFilter = (NT_NET_SET_RECEIVE_FILTER) This->WinNtThunk->GetProcAddress (
- This->NetworkLibraryHandle,
- NETWORK_LIBRARY_SET_RCV_FILTER
- );
+ This->NetworkLibraryHandle,
+ NETWORK_LIBRARY_SET_RCV_FILTER
+ );
if (NULL == This->NtNetUtilityTable.SetReceiveFilter) {
Status = EFI_NOT_FOUND;
@@ -716,9 +1133,9 @@ SnpNt32InitializeGlobalData (
}
This->NtNetUtilityTable.Receive = (NT_NET_RECEIVE) This->WinNtThunk->GetProcAddress (
- This->NetworkLibraryHandle,
- NETWORK_LIBRARY_RECEIVE
- );
+ This->NetworkLibraryHandle,
+ NETWORK_LIBRARY_RECEIVE
+ );
if (NULL == This->NtNetUtilityTable.Receive) {
Status = EFI_NOT_FOUND;
@@ -726,9 +1143,9 @@ SnpNt32InitializeGlobalData (
}
This->NtNetUtilityTable.Transmit = (NT_NET_TRANSMIT) This->WinNtThunk->GetProcAddress (
- This->NetworkLibraryHandle,
- NETWORK_LIBRARY_TRANSMIT
- );
+ This->NetworkLibraryHandle,
+ NETWORK_LIBRARY_TRANSMIT
+ );
if (NULL == This->NtNetUtilityTable.Transmit) {
Status = EFI_NOT_FOUND;
@@ -822,12 +1239,13 @@ ErrorReturn:
@param Instance Pointer to the instance context data.
@retval EFI_SUCCESS The driver instance is initialized.
+ @retval other Initialization errors.
**/
EFI_STATUS
SnpNt32InitializeInstanceData (
- IN SNPNT32_GLOBAL_DATA *This,
- IN SNPNT32_INSTANCE_DATA *Instance
+ IN SNPNT32_GLOBAL_DATA *This,
+ IN OUT SNPNT32_INSTANCE_DATA *Instance
)
{
EFI_STATUS Status;
@@ -874,9 +1292,9 @@ SnpNt32InitializeInstanceData (
SetDevicePathEndNode (&EndNode.DevPath);
Instance->DevicePath = AppendDevicePathNode (
- &EndNode.DevPath,
- &Node.DevPath
- );
+ &EndNode.DevPath,
+ &Node.DevPath
+ );
//
// Create a fake device handle for the fake SNP
@@ -889,13 +1307,6 @@ SnpNt32InitializeInstanceData (
Instance->DevicePath,
NULL
);
- if (EFI_ERROR (Status)) {
- goto ErrorReturn;
- }
-
- return EFI_SUCCESS;
-
-ErrorReturn:
return Status;
}
@@ -911,21 +1322,21 @@ ErrorReturn:
**/
EFI_STATUS
SnpNt32CloseInstance (
- IN SNPNT32_GLOBAL_DATA *This,
- IN SNPNT32_INSTANCE_DATA *Instance
+ IN SNPNT32_GLOBAL_DATA *This,
+ IN OUT SNPNT32_INSTANCE_DATA *Instance
)
{
ASSERT (This != NULL);
ASSERT (Instance != NULL);
gBS->UninstallMultipleProtocolInterfaces (
- Instance->DeviceHandle,
- &gEfiSimpleNetworkProtocolGuid,
- &Instance->Snp,
- &gEfiDevicePathProtocolGuid,
- Instance->DevicePath,
- NULL
- );
+ Instance->DeviceHandle,
+ &gEfiSimpleNetworkProtocolGuid,
+ &Instance->Snp,
+ &gEfiDevicePathProtocolGuid,
+ Instance->DevicePath,
+ NULL
+ );
if (Instance->DevicePath != NULL) {
gBS->FreePool (Instance->DevicePath);
@@ -934,14 +1345,13 @@ SnpNt32CloseInstance (
return EFI_SUCCESS;
}
-
/**
- Unload the SnpNt32 driver.
+ Unloads an image.
- @param ImageHandle The handle of the driver image.
+ @param ImageHandle Handle that identifies the image to be unloaded.
- @retval EFI_SUCCESS The driver is unloaded.
- @retval other Some error occurs.
+ @retval EFI_SUCCESS The image has been unloaded.
+ @return Exit code from the image's unload handler
**/
EFI_STATUS
@@ -986,30 +1396,23 @@ SnpNt32Unload (
return EFI_SUCCESS;
}
+/**
+ This is the declaration of an EFI image entry point. This entry point is
+ the same for UEFI Applications, UEFI OS Loaders, and UEFI Drivers including
+ both device drivers and bus drivers.
+
+ @param ImageHandle The firmware allocated handle for the UEFI image.
+ @param SystemTable A pointer to the EFI System Table.
+
+ @retval EFI_SUCCESS The operation completed successfully.
+ @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
+**/
EFI_STATUS
InitializeSnpNt32river (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
-/*++
-
-Routine Description:
-
- Install DriverBinding Protocol for the Win NT Bus driver on the drivers
- image handle.
-
-Arguments:
-
- ImageHandle - The handle of this image.
- SystemTable - Pointer to the EFI system table.
-
-Returns:
-
- EFI_SUCEESS - The protocols are installed and the SnpNt32 is initialized.
- other - Some error occurs.
-
---*/
{
EFI_STATUS Status;
diff --git a/Nt32Pkg/SnpNt32Dxe/SnpNt32.h b/Nt32Pkg/SnpNt32Dxe/SnpNt32.h
index 0c13562138..6e9dafd2b7 100644
--- a/Nt32Pkg/SnpNt32Dxe/SnpNt32.h
+++ b/Nt32Pkg/SnpNt32Dxe/SnpNt32.h
@@ -198,10 +198,27 @@ typedef struct _SNPNT32_INSTANCE_DATA {
SNP_NT32_INSTANCE_SIGNATURE \
)
-extern EFI_DRIVER_BINDING_PROTOCOL gSnpNt32DriverBinding;
+extern EFI_DRIVER_BINDING_PROTOCOL gSnpNt32DriverBinding;
extern EFI_COMPONENT_NAME_PROTOCOL gSnpNt32DriverComponentName;
extern EFI_COMPONENT_NAME2_PROTOCOL gSnpNt32DriverComponentName2;
+/**
+ Test to see if this driver supports ControllerHandle. This service
+ is called by the EFI boot service ConnectController(). In
+ order to make drivers as small as possible, there are a few calling
+ restrictions for this service. ConnectController() must
+ follow these calling restrictions. If any other agent wishes to call
+ Supported() it must also follow these calling restrictions.
+
+ @param This Protocol instance pointer.
+ @param ControllerHandle Handle of device to test
+ @param RemainingDevicePath Optional parameter use to pick a specific child
+ device to start.
+
+ @retval EFI_SUCCESS This driver supports this device
+ @retval EFI_UNSUPPORTED This driver does not support this device
+
+**/
EFI_STATUS
EFIAPI
SnpNt32DriverBindingSupported (
@@ -210,6 +227,22 @@ SnpNt32DriverBindingSupported (
IN EFI_DEVICE_PATH_PROTOCOL * RemainingDevicePath OPTIONAL
);
+/**
+ Start this driver on ControllerHandle. This service is called by the
+ EFI boot service ConnectController(). In order to make
+ drivers as small as possible, there are a few calling restrictions for
+ this service. ConnectController() must follow these
+ calling restrictions. If any other agent wishes to call Start() it
+ must also follow these calling restrictions.
+
+ @param This Protocol instance pointer.
+ @param ControllerHandle Handle of device to bind driver to
+ @param RemainingDevicePath Optional parameter use to pick a specific child
+ device to start.
+
+ @retval EFI_SUCCESS Always succeeds.
+
+**/
EFI_STATUS
EFIAPI
SnpNt32DriverBindingStart (
@@ -218,6 +251,23 @@ SnpNt32DriverBindingStart (
IN EFI_DEVICE_PATH_PROTOCOL * RemainingDevicePath OPTIONAL
);
+/**
+ Stop this driver on ControllerHandle. This service is called by the
+ EFI boot service DisconnectController(). In order to
+ make drivers as small as possible, there are a few calling
+ restrictions for this service. DisconnectController()
+ must follow these calling restrictions. If any other agent wishes
+ to call Stop() it must also follow these calling restrictions.
+
+ @param This Protocol instance pointer.
+ @param ControllerHandle Handle of device to stop driver on
+ @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of
+ children is zero stop the entire bus driver.
+ @param ChildHandleBuffer List of Child Handles to Stop.
+
+ @retval EFI_SUCCESS Always succeeds.
+
+**/
EFI_STATUS
EFIAPI
SnpNt32DriverBindingStop (
@@ -227,21 +277,52 @@ SnpNt32DriverBindingStop (
IN EFI_HANDLE *ChildHandleBuffer
);
+/**
+ Initialize the driver's global data.
+
+ @param This Pointer to the global context data.
+
+ @retval EFI_SUCCESS The global data is initialized.
+ @retval EFI_NOT_FOUND The required DLL is not found.
+ @retval EFI_DEVICE_ERROR Error initialize network utility library.
+ @retval EFI_OUT_OF_RESOURCES Out of resource.
+ @retval other Other errors.
+
+**/
EFI_STATUS
SnpNt32InitializeGlobalData (
- IN SNPNT32_GLOBAL_DATA *This
+ IN OUT SNPNT32_GLOBAL_DATA *This
);
+/**
+ Initialize the snpnt32 driver instance.
+
+ @param This Pointer to the SnpNt32 global data.
+ @param Instance Pointer to the instance context data.
+
+ @retval EFI_SUCCESS The driver instance is initialized.
+ @retval other Initialization errors.
+
+**/
EFI_STATUS
SnpNt32InitializeInstanceData (
- IN SNPNT32_GLOBAL_DATA *This,
- IN SNPNT32_INSTANCE_DATA *Instance
+ IN SNPNT32_GLOBAL_DATA *This,
+ IN OUT SNPNT32_INSTANCE_DATA *Instance
);
+/**
+ Close the SnpNt32 driver instance.
+
+ @param This Pointer to the SnpNt32 global data.
+ @param Instance Pointer to the instance context data.
+
+ @retval EFI_SUCCESS The instance is closed.
+
+**/
EFI_STATUS
SnpNt32CloseInstance (
- IN SNPNT32_GLOBAL_DATA *This,
- IN SNPNT32_INSTANCE_DATA *Instance
+ IN SNPNT32_GLOBAL_DATA *This,
+ IN OUT SNPNT32_INSTANCE_DATA *Instance
);
#endif