]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Usb/UsbBus/Dxe/usbutil.c
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / EdkModulePkg / Bus / Usb / UsbBus / Dxe / usbutil.c
diff --git a/EdkModulePkg/Bus/Usb/UsbBus/Dxe/usbutil.c b/EdkModulePkg/Bus/Usb/UsbBus/Dxe/usbutil.c
deleted file mode 100644 (file)
index e338085..0000000
+++ /dev/null
@@ -1,554 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2006, 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
-\r
-  Module Name:\r
-    usbutil.c\r
-\r
-  Abstract:\r
-\r
-    Helper functions for USB\r
-\r
-  Revision History\r
-\r
---*/\r
-\r
-#include "usbbus.h"\r
-\r
-//\r
-// Following APIs are used to query Port Status\r
-//\r
-BOOLEAN\r
-IsPortConnect (\r
-  IN UINT16  PortStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if there is a device connected to that port according to\r
-    the Port Status.\r
-\r
-  Arguments:\r
-    PortStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 0 value of PortStatus\r
-  //\r
-  if ((PortStatus & USB_PORT_STAT_CONNECTION) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-IsPortEnable (\r
-  IN UINT16  PortStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if Port is enabled.\r
-\r
-  Arguments:\r
-    PortStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE  - Port is enable\r
-    FALSE - Port is disable\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 1 value of PortStatus\r
-  //\r
-  if ((PortStatus & USB_PORT_STAT_ENABLE) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-IsPortInReset (\r
-  IN UINT16  PortStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if the port is being reset.\r
-\r
-  Arguments:\r
-    PortStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 4 value of PortStatus\r
-  //\r
-  if ((PortStatus & USB_PORT_STAT_RESET) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-IsPortPowerApplied (\r
-  IN UINT16  PortStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if there is power applied to that port.\r
-\r
-  Arguments:\r
-    PortStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 8 value of PortStatus\r
-  //\r
-  if ((PortStatus & USB_PORT_STAT_POWER) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-IsPortLowSpeedDeviceAttached (\r
-  IN UINT16  PortStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if the connected device is a low device.\r
-\r
-  Arguments:\r
-    PortStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 9 value of PortStatus\r
-  //\r
-  if ((PortStatus & USB_PORT_STAT_LOW_SPEED) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-IsPortSuspend (\r
-  IN UINT16  PortStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if the port is suspend.\r
-\r
-  Arguments:\r
-    PortStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 2 value of PortStatus\r
-  //\r
-  if ((PortStatus & USB_PORT_STAT_SUSPEND) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-//\r
-// Following APIs are used to query Port Change Status\r
-//\r
-BOOLEAN\r
-IsPortConnectChange (\r
-  IN UINT16  PortChangeStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if there is a Connect Change status in that port.\r
-\r
-  Arguments:\r
-    PortChangeStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 0 value of PortChangeStatus\r
-  //\r
-  if ((PortChangeStatus & USB_PORT_STAT_C_CONNECTION) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-IsPortEnableDisableChange (\r
-  IN UINT16  PortChangeStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if there is a Enable/Disable change in that port.\r
-\r
-  Arguments:\r
-    PortChangeStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 1 value of PortChangeStatus\r
-  //\r
-  if ((PortChangeStatus & USB_PORT_STAT_C_ENABLE) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-IsPortResetChange (\r
-  IN UINT16  PortChangeStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if there is a Port Reset Change status in that port.\r
-\r
-  Arguments:\r
-    PortChangeStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 4 value of PortChangeStatus\r
-  //\r
-  if ((PortChangeStatus & USB_PORT_STAT_C_RESET) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-IsPortSuspendChange (\r
-  IN UINT16  PortChangeStatus\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Tell if there is a Suspend Change Status in that port.\r
-\r
-  Arguments:\r
-    PortChangeStatus  -   The status value of that port.\r
-\r
-  Returns:\r
-    TRUE\r
-    FALSE\r
-\r
---*/\r
-{\r
-  //\r
-  // return the bit 2 value of PortChangeStatus\r
-  //\r
-  if ((PortChangeStatus & USB_PORT_STAT_C_SUSPEND) != 0) {\r
-    return TRUE;\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-INTERFACE_DESC_LIST_ENTRY *\r
-FindInterfaceListEntry (\r
-  IN EFI_USB_IO_PROTOCOL    *This\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Find Interface ListEntry.\r
-\r
-  Arguments:\r
-    This         -  EFI_USB_IO_PROTOCOL   \r
-  \r
-  Returns:\r
-    INTERFACE_DESC_LIST_ENTRY pointer\r
-\r
---*/\r
-{\r
-  USB_IO_CONTROLLER_DEVICE  *UsbIoController;\r
-  USB_IO_DEVICE             *UsbIoDev;\r
-  LIST_ENTRY                *InterfaceListHead;\r
-  INTERFACE_DESC_LIST_ENTRY *InterfaceListEntry;\r
-\r
-  UsbIoController = USB_IO_CONTROLLER_DEVICE_FROM_USB_IO_THIS (This);\r
-  UsbIoDev        = UsbIoController->UsbDevice;\r
-\r
-  if (!UsbIoDev->IsConfigured) {\r
-    return NULL;\r
-  }\r
-\r
-  InterfaceListHead   = &UsbIoDev->ActiveConfig->InterfaceDescListHead;\r
-  InterfaceListEntry  = (INTERFACE_DESC_LIST_ENTRY *) (InterfaceListHead->ForwardLink);\r
-\r
-  //\r
-  // Loop all interface descriptor to get match one.\r
-  //\r
-  while (InterfaceListEntry != (INTERFACE_DESC_LIST_ENTRY *) InterfaceListHead) {\r
-    if (InterfaceListEntry->InterfaceDescriptor.InterfaceNumber == UsbIoController->InterfaceNumber) {\r
-      return InterfaceListEntry;\r
-    }\r
-\r
-    InterfaceListEntry = (INTERFACE_DESC_LIST_ENTRY *) InterfaceListEntry->Link.ForwardLink;\r
-  }\r
-\r
-  return NULL;\r
-}\r
-\r
-ENDPOINT_DESC_LIST_ENTRY* \r
-FindEndPointListEntry (\r
-  IN EFI_USB_IO_PROTOCOL    *This,\r
-  IN UINT8                  EndPointAddress\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Find EndPoint ListEntry.\r
-\r
-  Arguments:\r
-    This            -  EFI_USB_IO_PROTOCOL   \r
-    EndPointAddress -  Endpoint address.\r
\r
-  Returns:\r
-    ENDPOINT_DESC_LIST_ENTRY pointer\r
-\r
---*/\r
-{\r
-  INTERFACE_DESC_LIST_ENTRY *InterfaceListEntry;\r
-  LIST_ENTRY                *EndpointDescListHead;\r
-  ENDPOINT_DESC_LIST_ENTRY  *EndPointListEntry;\r
-\r
-  InterfaceListEntry = FindInterfaceListEntry (This);\r
-  if (InterfaceListEntry != NULL) {\r
-    EndpointDescListHead  = &InterfaceListEntry->EndpointDescListHead;\r
-    EndPointListEntry     = (ENDPOINT_DESC_LIST_ENTRY *) (EndpointDescListHead->ForwardLink);\r
-\r
-    //\r
-    // Loop all interface descriptor to get match one.\r
-    //\r
-    while (EndPointListEntry != (ENDPOINT_DESC_LIST_ENTRY *) EndpointDescListHead) {\r
-      if (EndPointListEntry->EndpointDescriptor.EndpointAddress == EndPointAddress) {\r
-        return EndPointListEntry;\r
-      }\r
-\r
-      EndPointListEntry = (ENDPOINT_DESC_LIST_ENTRY *) EndPointListEntry->Link.ForwardLink;\r
-    }\r
-  }\r
-\r
-  return NULL;\r
-}\r
-\r
-VOID\r
-GetDataToggleBit (\r
-  IN EFI_USB_IO_PROTOCOL    *UsbIo,\r
-  IN  UINT8                 EndpointAddr,\r
-  OUT UINT8                 *DataToggle\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Get the datatoggle of a specified endpoint.\r
-\r
-  Arguments:\r
-    UsbIo         -     Given Usb Controller device.\r
-    EndpointAddr  -     Given Endpoint address.\r
-    DataToggle    -     The current data toggle of that endpoint\r
-\r
-  Returns:\r
-    N/A\r
-\r
---*/\r
-{\r
-\r
-  ENDPOINT_DESC_LIST_ENTRY  *EndpointListEntry;\r
-\r
-  *DataToggle       = 0;\r
-\r
-  EndpointListEntry = FindEndPointListEntry (UsbIo, EndpointAddr);\r
-  if (EndpointListEntry == NULL) {\r
-    return ;\r
-  }\r
-\r
-  *DataToggle = (UINT8) (EndpointListEntry->Toggle);\r
-  return ;\r
-}\r
-\r
-VOID\r
-SetDataToggleBit (\r
-  IN EFI_USB_IO_PROTOCOL    *UsbIo,\r
-  IN UINT8                  EndpointAddr,\r
-  IN UINT8                  DataToggle\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Set the datatoggle of a specified endpoint\r
-\r
-  Arguments:\r
-    UsbIo         -     Given Usb Controller device.\r
-    EndpointAddr  -     Given Endpoint address.\r
-    DataToggle    -     The current data toggle of that endpoint to be set\r
-\r
-  Returns:\r
-    N/A\r
-\r
---*/\r
-{\r
-\r
-  ENDPOINT_DESC_LIST_ENTRY  *EndpointListEntry;\r
-\r
-  EndpointListEntry = FindEndPointListEntry (UsbIo, EndpointAddr);\r
-  if (EndpointListEntry == NULL) {\r
-    return ;\r
-  }\r
-\r
-  EndpointListEntry->Toggle = DataToggle;\r
-  return ;\r
-}\r
-\r
-VOID\r
-GetDeviceEndPointMaxPacketLength (\r
-  IN  EFI_USB_IO_PROTOCOL    *UsbIo,\r
-  IN  UINT8                  EndpointAddr,\r
-  OUT UINTN                  *MaxPacketLength\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Get the Max Packet Length of the speified Endpoint.\r
-\r
-  Arguments:\r
-    UsbIo           -     Given Usb Controller device.\r
-    EndpointAddr    -     Given Endpoint address.\r
-    MaxPacketLength -     The max packet length of that endpoint\r
-\r
-  Returns:\r
-    N/A\r
-\r
---*/\r
-{\r
-\r
-  ENDPOINT_DESC_LIST_ENTRY  *EndpointListEntry;\r
-\r
-  *MaxPacketLength  = 0;\r
-\r
-  EndpointListEntry = FindEndPointListEntry (UsbIo, EndpointAddr);\r
-  if (EndpointListEntry == NULL) {\r
-    return ;\r
-  }\r
-\r
-  *MaxPacketLength = (UINTN) (EndpointListEntry->EndpointDescriptor.MaxPacketSize);\r
-\r
-  return ;\r
-}\r
-\r
-\r
-EFI_STATUS\r
-UsbSetDeviceAddress (\r
-  IN  EFI_USB_IO_PROTOCOL     *UsbIo,\r
-  IN  UINT16                  AddressValue,\r
-  OUT UINT32                  *Status\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Usb Set Device Address\r
-\r
-Arguments:\r
-\r
-  UsbIo         - EFI_USB_IO_PROTOCOL\r
-  AddressValue  - Device address \r
-  Status        - Transfer status\r
-\r
-Returns:\r
-\r
-  EFI_INVALID_PARAMETER - Parameter is error\r
-  EFI_SUCCESS           - Success\r
-  EFI_TIMEOUT           - Device has no response \r
-\r
-\r
---*/\r
-{\r
-  EFI_USB_DEVICE_REQUEST  DevReq;\r
-\r
-  if (UsbIo == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  ZeroMem (&DevReq, sizeof (EFI_USB_DEVICE_REQUEST));\r
-\r
-  DevReq.RequestType  = USB_DEV_SET_ADDRESS_REQ_TYPE;\r
-  DevReq.Request      = USB_DEV_SET_ADDRESS;\r
-  DevReq.Value        = AddressValue;\r
\r
-  return UsbIo->UsbControlTransfer (\r
-                  UsbIo,\r
-                  &DevReq,\r
-                  EfiUsbNoData,\r
-                  TIMEOUT_VALUE,\r
-                  NULL,\r
-                  0,\r
-                  Status\r
-                  );\r
-}\r
-\r