]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg: Add WiFi device path definition and its node/text conversion
authorHao Wu <hao.a.wu@intel.com>
Wed, 20 May 2015 05:21:19 +0000 (05:21 +0000)
committerhwu1225 <hwu1225@Edk2>
Wed, 20 May 2015 05:21:19 +0000 (05:21 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17476 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Protocol/DevicePath.h
MdePkg/Library/UefiDevicePathLib/DevicePathFromText.c
MdePkg/Library/UefiDevicePathLib/DevicePathToText.c

index 1dbb1a1ff489c4206e2672a402cf1d610178ecac..7b9a4e552056c86f8073b059889d228f0d57dad5 100644 (file)
@@ -895,6 +895,18 @@ typedef struct {
   BLUETOOTH_ADDRESS               BD_ADDR;\r
 } BLUETOOTH_DEVICE_PATH;\r
 \r
+///\r
+/// Wi-Fi Device Path SubType.\r
+///\r
+#define MSG_WIFI_DP               0x1C\r
+typedef struct {\r
+  EFI_DEVICE_PATH_PROTOCOL        Header;\r
+  ///\r
+  /// Service set identifier. A 32-byte octets string.\r
+  ///\r
+  UINT8                           SSId[32];\r
+} WIFI_DEVICE_PATH;\r
+\r
 //\r
 // Media Device Path\r
 //\r
@@ -1145,6 +1157,7 @@ typedef union {
   NVME_NAMESPACE_DEVICE_PATH                 NvmeNamespace;\r
   URI_DEVICE_PATH                            Uri;\r
   BLUETOOTH_DEVICE_PATH                      Bluetooth;\r
+  WIFI_DEVICE_PATH                           WiFi;\r
   UFS_DEVICE_PATH                            Ufs;\r
   SD_DEVICE_PATH                             Sd;\r
   HARDDRIVE_DEVICE_PATH                      HardDrive;\r
@@ -1199,6 +1212,7 @@ typedef union {
   NVME_NAMESPACE_DEVICE_PATH                 *NvmeNamespace;\r
   URI_DEVICE_PATH                            *Uri;\r
   BLUETOOTH_DEVICE_PATH                      *Bluetooth;\r
+  WIFI_DEVICE_PATH                           *WiFi;\r
   UFS_DEVICE_PATH                            *Ufs;\r
   SD_DEVICE_PATH                             *Sd;\r
   HARDDRIVE_DEVICE_PATH                      *HardDrive;\r
index 3bccad99099d58ded1943af8f4a5a385752f7843..c2aa93cedc5ef972cde85250c034a819abb5502e 100644 (file)
@@ -2769,6 +2769,36 @@ DevPathFromTextBluetooth (
   return (EFI_DEVICE_PATH_PROTOCOL *) BluetoothDp;\r
 }\r
 \r
+/**\r
+  Converts a text device path node to Wi-Fi device path structure.\r
+\r
+  @param TextDeviceNode  The input Text device path node.\r
+\r
+  @return A pointer to the newly-created Wi-Fi device path structure.\r
+\r
+**/\r
+EFI_DEVICE_PATH_PROTOCOL *\r
+DevPathFromTextWiFi (\r
+  IN CHAR16 *TextDeviceNode\r
+  )\r
+{\r
+  CHAR16                *SSIdStr;\r
+  CHAR8                 *AsciiStr;\r
+  WIFI_DEVICE_PATH      *WiFiDp;\r
+\r
+  SSIdStr = GetNextParamStr (&TextDeviceNode);\r
+  WiFiDp  = (WIFI_DEVICE_PATH *) CreateDeviceNode (\r
+                                   MESSAGING_DEVICE_PATH,\r
+                                   MSG_WIFI_DP,\r
+                                   (UINT16) sizeof (WIFI_DEVICE_PATH)\r
+                                   );\r
+\r
+  AsciiStr = WiFiDp->SSId;\r
+  StrToAscii (SSIdStr, &AsciiStr);\r
+\r
+  return (EFI_DEVICE_PATH_PROTOCOL *) WiFiDp;\r
+}\r
+\r
 /**\r
   Converts a text device path node to URI device path structure.\r
 \r
@@ -3244,6 +3274,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED DEVICE_PATH_FROM_TEXT_TABLE mUefiDevicePathLibDevP
   {L"Vlan",                    DevPathFromTextVlan                    },\r
   {L"Uri",                     DevPathFromTextUri                     },\r
   {L"Bluetooth",               DevPathFromTextBluetooth               },\r
+  {L"WiFi",                    DevPathFromTextWiFi                    },\r
   {L"MediaPath",               DevPathFromTextMediaPath               },\r
   {L"HD",                      DevPathFromTextHD                      },\r
   {L"CDROM",                   DevPathFromTextCDROM                   },\r
index a4a665b31622b87e8363e041af3d4d6316663721..68b937293eb8aad749741dcb92768fe9aabc912b 100644 (file)
@@ -1561,6 +1561,33 @@ DevPathToTextBluetooth (
     );\r
 }\r
 \r
+/**\r
+  Converts a Wi-Fi device path structure to its string representative.\r
+\r
+  @param Str             The string representative of input device.\r
+  @param DevPath         The input device path structure.\r
+  @param DisplayOnly     If DisplayOnly is TRUE, then the shorter text representation\r
+                         of the display node is used, where applicable. If DisplayOnly\r
+                         is FALSE, then the longer text representation of the display node\r
+                         is used.\r
+  @param AllowShortcuts  If AllowShortcuts is TRUE, then the shortcut forms of text\r
+                         representation for a device node can be used, where applicable.\r
+\r
+**/\r
+VOID\r
+DevPathToTextWiFi (\r
+  IN OUT POOL_PRINT  *Str,\r
+  IN VOID            *DevPath,\r
+  IN BOOLEAN         DisplayOnly,\r
+  IN BOOLEAN         AllowShortcuts\r
+  )\r
+{\r
+  WIFI_DEVICE_PATH      *WiFi;\r
+\r
+  WiFi = DevPath;\r
+  UefiDevicePathLibCatPrint (Str, L"WiFi(%a)", WiFi->SSId);\r
+}\r
+\r
 /**\r
   Converts a URI device path structure to its string representative.\r
 \r
@@ -2021,6 +2048,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED const DEVICE_PATH_TO_TEXT_TABLE mUefiDevicePathLib
   {MESSAGING_DEVICE_PATH, MSG_VLAN_DP,                      DevPathToTextVlan           },\r
   {MESSAGING_DEVICE_PATH, MSG_URI_DP,                       DevPathToTextUri            },\r
   {MESSAGING_DEVICE_PATH, MSG_BLUETOOTH_DP,                 DevPathToTextBluetooth      },\r
+  {MESSAGING_DEVICE_PATH, MSG_WIFI_DP,                      DevPathToTextWiFi           },\r
   {MEDIA_DEVICE_PATH,     MEDIA_HARDDRIVE_DP,               DevPathToTextHardDrive      },\r
   {MEDIA_DEVICE_PATH,     MEDIA_CDROM_DP,                   DevPathToTextCDROM          },\r
   {MEDIA_DEVICE_PATH,     MEDIA_VENDOR_DP,                  DevPathToTextVendor         },\r