diff options
| author | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
|---|---|---|
| committer | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
| commit | 7e2ccccace24636f29ddc210b94606abd4c7e42b (patch) | |
| tree | 545d43ea12671048956cafeb12303e84d601e571 /BaseTools/Source/C/DevicePath/DevicePath.c | |
| parent | 27b044605cd5f6b33a3d231576003850b3fe305b (diff) | |
| download | edk2-trunk.tar.xz | |
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'BaseTools/Source/C/DevicePath/DevicePath.c')
| -rw-r--r-- | BaseTools/Source/C/DevicePath/DevicePath.c | 388 |
1 files changed, 194 insertions, 194 deletions
diff --git a/BaseTools/Source/C/DevicePath/DevicePath.c b/BaseTools/Source/C/DevicePath/DevicePath.c index ed19eb52f6..5f74614bc4 100644 --- a/BaseTools/Source/C/DevicePath/DevicePath.c +++ b/BaseTools/Source/C/DevicePath/DevicePath.c @@ -1,194 +1,194 @@ -/** @file
- Definition for Device Path Tool.
-
-Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include "UefiDevicePathLib.h"
-
-//
-// Utility Name
-//
-#define UTILITY_NAME "DevicePath"
-
-//
-// Utility version information
-//
-#define UTILITY_MAJOR_VERSION 0
-#define UTILITY_MINOR_VERSION 1
-
-EFI_GUID gEfiDebugPortProtocolGuid = DEVICE_PATH_MESSAGING_DEBUGPORT;
-EFI_GUID gEfiPcAnsiGuid = EFI_PC_ANSI_GUID;
-EFI_GUID gEfiVT100Guid = EFI_VT_100_GUID;
-EFI_GUID gEfiVT100PlusGuid = EFI_VT_100_PLUS_GUID;
-EFI_GUID gEfiVTUTF8Guid = EFI_VT_UTF8_GUID;
-EFI_GUID gEfiUartDevicePathGuid = EFI_UART_DEVICE_PATH_GUID;
-EFI_GUID gEfiSasDevicePathGuid = EFI_SAS_DEVICE_PATH_GUID;
-EFI_GUID gEfiVirtualDiskGuid = EFI_VIRTUAL_DISK_GUID;
-EFI_GUID gEfiVirtualCdGuid = EFI_VIRTUAL_CD_GUID;
-EFI_GUID gEfiPersistentVirtualDiskGuid = EFI_PERSISTENT_VIRTUAL_DISK_GUID;
-EFI_GUID gEfiPersistentVirtualCdGuid = EFI_PERSISTENT_VIRTUAL_CD_GUID;
-
-STATIC
-VOID
-Version (
- VOID
-)
-/*++
-
-Routine Description:
-
- Displays the standard utility information to SDTOUT
-
-Arguments:
-
- None
-
-Returns:
-
- None
-
---*/
-{
- fprintf (stdout, "%s Version %d.%d %s \n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION);
-}
-
-STATIC
-VOID
-Usage (
- VOID
- )
-/*++
-
-Routine Description:
-
- Displays the utility usage syntax to STDOUT
-
-Arguments:
-
- None
-
-Returns:
-
- None
-
---*/
-{
- //
- // Summary usage
- //
- fprintf (stdout, "\nUsage: %s [options]\n\n", UTILITY_NAME);
-
- //
- // Copyright declaration
- //
- fprintf (stdout, "Copyright (c) 2017, Intel Corporation. All rights reserved.\n\n");
- //
- // Details Option
- //
- fprintf (stdout, "Options:\n");
- fprintf (stdout, " DevicePathString Device Path string is specified, no space character.\n"
- " Example: \"PciRoot(0)/Pci(0,0)\"\n");
-
- fprintf (stdout, " --version Show program's version number and exit.\n");
- fprintf (stdout, " -h, --help Show this help message and exit.\n");
-}
-
-
-STATIC
-VOID
-PrintMem (
- CONST VOID *Buffer,
- UINTN Count
- )
-{
- CONST UINT8 *Bytes;
- UINTN Idx;
-
- Bytes = Buffer;
- for (Idx = 0; Idx < Count; Idx++) {
- printf("0x%02x ", Bytes[Idx]);
- }
-}
-
-VOID
-Ascii2UnicodeString (
- CHAR8 *String,
- CHAR16 *UniString
- )
-/*++
-
-Routine Description:
-
- Write ascii string as unicode string format to FILE
-
-Arguments:
-
- String - Pointer to string that is written to FILE.
- UniString - Pointer to unicode string
-
-Returns:
-
- NULL
-
---*/
-{
- while (*String != '\0') {
- *(UniString++) = (CHAR16) *(String++);
- }
- //
- // End the UniString with a NULL.
- //
- *UniString = '\0';
-}
-
-int main(int argc, CHAR8 *argv[])
-{
- CHAR8 * Str;
- CHAR16* Str16;
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
-
- if (argc == 1) {
- Error (NULL, 0, 1001, "Missing options", "No input options specified.");
- Usage ();
- return STATUS_ERROR;
- }
- if ((stricmp (argv[1], "-h") == 0) || (stricmp (argv[1], "--help") == 0)) {
- Version ();
- Usage ();
- return STATUS_SUCCESS;
- }
-
- if (stricmp (argv[1], "--version") == 0) {
- Version ();
- return STATUS_SUCCESS;
- }
- Str = argv[1];
- if (Str == NULL) {
- fprintf(stderr, "Invalid option value, Device Path can't be NULL");
- return STATUS_ERROR;
- }
- Str16 = (CHAR16 *)malloc((strlen (Str) + 1) * sizeof (CHAR16));
- if (Str16 == NULL) {
- fprintf(stderr, "Resource, memory cannot be allocated");
- return STATUS_ERROR;
- }
- Ascii2UnicodeString(Str, Str16);
- DevicePath = UefiDevicePathLibConvertTextToDevicePath(Str16);
- if (DevicePath == NULL) {
- fprintf(stderr, "Convert fail, Cannot convert text to a device path");
- free(Str16);
- return STATUS_ERROR;
- }
- while (!((DevicePath->Type == END_DEVICE_PATH_TYPE) && (DevicePath->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE)) )
- {
- PrintMem (DevicePath, DevicePath->Length[0] | DevicePath->Length[1] << 8);
- DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)((UINT8 *)DevicePath + (DevicePath->Length[0] | DevicePath->Length[1] << 8));
- }
- PrintMem (DevicePath, DevicePath->Length[0] | DevicePath->Length[1] << 8);
- putchar('\n');
- free(Str16);
- return STATUS_SUCCESS;
-}
+/** @file + Definition for Device Path Tool. + +Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR> +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include "UefiDevicePathLib.h" + +// +// Utility Name +// +#define UTILITY_NAME "DevicePath" + +// +// Utility version information +// +#define UTILITY_MAJOR_VERSION 0 +#define UTILITY_MINOR_VERSION 1 + +EFI_GUID gEfiDebugPortProtocolGuid = DEVICE_PATH_MESSAGING_DEBUGPORT; +EFI_GUID gEfiPcAnsiGuid = EFI_PC_ANSI_GUID; +EFI_GUID gEfiVT100Guid = EFI_VT_100_GUID; +EFI_GUID gEfiVT100PlusGuid = EFI_VT_100_PLUS_GUID; +EFI_GUID gEfiVTUTF8Guid = EFI_VT_UTF8_GUID; +EFI_GUID gEfiUartDevicePathGuid = EFI_UART_DEVICE_PATH_GUID; +EFI_GUID gEfiSasDevicePathGuid = EFI_SAS_DEVICE_PATH_GUID; +EFI_GUID gEfiVirtualDiskGuid = EFI_VIRTUAL_DISK_GUID; +EFI_GUID gEfiVirtualCdGuid = EFI_VIRTUAL_CD_GUID; +EFI_GUID gEfiPersistentVirtualDiskGuid = EFI_PERSISTENT_VIRTUAL_DISK_GUID; +EFI_GUID gEfiPersistentVirtualCdGuid = EFI_PERSISTENT_VIRTUAL_CD_GUID; + +STATIC +VOID +Version ( + VOID +) +/*++ + +Routine Description: + + Displays the standard utility information to SDTOUT + +Arguments: + + None + +Returns: + + None + +--*/ +{ + fprintf (stdout, "%s Version %d.%d %s \n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION, __BUILD_VERSION); +} + +STATIC +VOID +Usage ( + VOID + ) +/*++ + +Routine Description: + + Displays the utility usage syntax to STDOUT + +Arguments: + + None + +Returns: + + None + +--*/ +{ + // + // Summary usage + // + fprintf (stdout, "\nUsage: %s [options]\n\n", UTILITY_NAME); + + // + // Copyright declaration + // + fprintf (stdout, "Copyright (c) 2017, Intel Corporation. All rights reserved.\n\n"); + // + // Details Option + // + fprintf (stdout, "Options:\n"); + fprintf (stdout, " DevicePathString Device Path string is specified, no space character.\n" + " Example: \"PciRoot(0)/Pci(0,0)\"\n"); + + fprintf (stdout, " --version Show program's version number and exit.\n"); + fprintf (stdout, " -h, --help Show this help message and exit.\n"); +} + + +STATIC +VOID +PrintMem ( + CONST VOID *Buffer, + UINTN Count + ) +{ + CONST UINT8 *Bytes; + UINTN Idx; + + Bytes = Buffer; + for (Idx = 0; Idx < Count; Idx++) { + printf("0x%02x ", Bytes[Idx]); + } +} + +VOID +Ascii2UnicodeString ( + CHAR8 *String, + CHAR16 *UniString + ) +/*++ + +Routine Description: + + Write ascii string as unicode string format to FILE + +Arguments: + + String - Pointer to string that is written to FILE. + UniString - Pointer to unicode string + +Returns: + + NULL + +--*/ +{ + while (*String != '\0') { + *(UniString++) = (CHAR16) *(String++); + } + // + // End the UniString with a NULL. + // + *UniString = '\0'; +} + +int main(int argc, CHAR8 *argv[]) +{ + CHAR8 * Str; + CHAR16* Str16; + EFI_DEVICE_PATH_PROTOCOL *DevicePath; + + if (argc == 1) { + Error (NULL, 0, 1001, "Missing options", "No input options specified."); + Usage (); + return STATUS_ERROR; + } + if ((stricmp (argv[1], "-h") == 0) || (stricmp (argv[1], "--help") == 0)) { + Version (); + Usage (); + return STATUS_SUCCESS; + } + + if (stricmp (argv[1], "--version") == 0) { + Version (); + return STATUS_SUCCESS; + } + Str = argv[1]; + if (Str == NULL) { + fprintf(stderr, "Invalid option value, Device Path can't be NULL"); + return STATUS_ERROR; + } + Str16 = (CHAR16 *)malloc((strlen (Str) + 1) * sizeof (CHAR16)); + if (Str16 == NULL) { + fprintf(stderr, "Resource, memory cannot be allocated"); + return STATUS_ERROR; + } + Ascii2UnicodeString(Str, Str16); + DevicePath = UefiDevicePathLibConvertTextToDevicePath(Str16); + if (DevicePath == NULL) { + fprintf(stderr, "Convert fail, Cannot convert text to a device path"); + free(Str16); + return STATUS_ERROR; + } + while (!((DevicePath->Type == END_DEVICE_PATH_TYPE) && (DevicePath->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE)) ) + { + PrintMem (DevicePath, DevicePath->Length[0] | DevicePath->Length[1] << 8); + DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)((UINT8 *)DevicePath + (DevicePath->Length[0] | DevicePath->Length[1] << 8)); + } + PrintMem (DevicePath, DevicePath->Length[0] | DevicePath->Length[1] << 8); + putchar('\n'); + free(Str16); + return STATUS_SUCCESS; +} |
