/** @file\r
\r
-Copyright (c) 2006 - 2007, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
Module Name:\r
\r
#define MAX_INTERFACE_INFO_NUMBER 16\r
#define MAX_FILE_NAME_LENGTH 280\r
\r
+#define SNP_MAX_TX_BUFFER_NUM 65536\r
+#define SNP_TX_BUFFER_INCREASEMENT 32\r
+\r
+\r
+\r
+\r
//\r
// Functions in Net Library\r
//\r
//\r
#define SNP_NT32_DRIVER_SIGNATURE SIGNATURE_32 ('W', 'S', 'N', 'P')\r
\r
-typedef struct _SNPNT32_GLOBAL_DATA {\r
+struct _SNPNT32_GLOBAL_DATA {\r
UINT32 Signature;\r
\r
//\r
SNPNT32_INITIALIZE_GLOBAL_DATA InitializeGlobalData;\r
SNPNT32_INITIALIZE_INSTANCE_DATA InitializeInstanceData;\r
SNPNT32_CLOSE_INSTANCE CloseInstance;\r
-} SNPNT32_GLOBAL_DATA;\r
+};\r
\r
//\r
// Instance data for each fake SNP instance\r
//\r
#define SNP_NT32_INSTANCE_SIGNATURE SIGNATURE_32 ('w', 'S', 'N', 'P')\r
\r
-typedef struct _SNPNT32_INSTANCE_DATA {\r
+struct _SNPNT32_INSTANCE_DATA {\r
UINT32 Signature;\r
\r
//\r
//\r
LIST_ENTRY Entry;\r
\r
+ //\r
+ // Array of the recycled transmit buffer address.\r
+ //\r
+ UINT64 *RecycledTxBuf;\r
+\r
+ //\r
+ // Current number of recycled buffer pointers in RecycledTxBuf.\r
+ //\r
+ UINT32 RecycledTxBufCount;\r
+\r
+ //\r
+ // The maximum number of recycled buffer pointers in RecycledTxBuf.\r
+ //\r
+ UINT32 MaxRecycledTxBuf;\r
+\r
SNPNT32_GLOBAL_DATA *GlobalData;\r
\r
EFI_HANDLE DeviceHandle;\r
//\r
// Private functions\r
//\r
-} SNPNT32_INSTANCE_DATA;\r
+};\r
\r
#define SNP_NT32_INSTANCE_DATA_FROM_SNP_THIS(a) \\r
CR ( \\r