]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/SnpDxe/Snp.h
MdeModulePkg: Refine SNP driver's media status check logic.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / SnpDxe / Snp.h
index 67f65ffc422f0997dfc69d1d05304b2fdc909e27..9d5ae98e51bd7cb31ef1694537bd262fc1817491 100644 (file)
@@ -130,10 +130,18 @@ typedef struct {
 \r
   //\r
   // Whether UNDI support reporting media status from GET_STATUS command,\r
-  // i.e. PXE_STATFLAGS_GET_STATUS_NO_MEDIA_SUPPORTED\r
+  // i.e. PXE_STATFLAGS_GET_STATUS_NO_MEDIA_SUPPORTED or\r
+  //      PXE_STATFLAGS_GET_STATUS_NO_MEDIA_NOT_SUPPORTED\r
   //\r
   BOOLEAN                MediaStatusSupported;\r
 \r
+  //\r
+  // Whether UNDI support cable detect for INITIALIZE command,\r
+  // i.e. PXE_STATFLAGS_CABLE_DETECT_SUPPORTED or\r
+  //      PXE_STATFLAGS_CABLE_DETECT_NOT_SUPPORTED\r
+  //\r
+  BOOLEAN                CableDetectSupported;\r
+\r
   //\r
   // Array of the recycled transmit buffer address from UNDI.\r
   //\r
@@ -233,6 +241,30 @@ PxeGetStnAddr (
   SNP_DRIVER *Snp\r
   );\r
 \r
+/**\r
+  Call undi to get the status of the interrupts, get the list of recycled transmit\r
+  buffers that completed transmitting. The recycled transmit buffer address will\r
+  be saved into Snp->RecycledTxBuf. This function will also update the MediaPresent\r
+  field of EFI_SIMPLE_NETWORK_MODE if UNDI support it.\r
+\r
+  @param[in]   Snp                     Pointer to snp driver structure.\r
+  @param[out]  InterruptStatusPtr      A non null pointer to contain the interrupt\r
+                                       status.\r
+  @param[in]   GetTransmittedBuf       Set to TRUE to retrieve the recycled transmit\r
+                                       buffer address.\r
+\r
+  @retval      EFI_SUCCESS             The status of the network interface was retrieved.\r
+  @retval      EFI_DEVICE_ERROR        The command could not be sent to the network\r
+                                       interface.\r
+\r
+**/\r
+EFI_STATUS\r
+PxeGetStatus (\r
+  IN     SNP_DRIVER *Snp,\r
+     OUT UINT32     *InterruptStatusPtr,\r
+  IN     BOOLEAN    GetTransmittedBuf\r
+  );\r
+\r
 /**\r
   This is a callback routine supplied to UNDI3.1 at undi_start time.\r
   UNDI call this routine when it wants to have exclusive access to a critical\r