BASE_LIST BaseListMarker;\r
CHAR8 *FormatString;\r
BOOLEAN Long;\r
- BOOLEAN Done;\r
\r
//\r
// If Format is NULL, then ASSERT().\r
// the following layout:\r
//\r
// Buffer->|------------------------|\r
- // | Pading | 4 bytes\r
+ // | Padding | 4 bytes\r
// DebugInfo->|------------------------|\r
// | EFI_DEBUG_INFO | sizeof(EFI_DEBUG_INFO)\r
// BaseListMarker->|------------------------|\r
// Here we skip the first 4 bytes of Buffer, because we must ensure BaseListMarker is\r
// 64-bit aligned, otherwise retrieving 64-bit parameter from BaseListMarker will cause\r
// exception on IPF. Buffer starts at 64-bit aligned address, so skipping 4 types (sizeof(EFI_DEBUG_INFO))\r
- // just makes addess of BaseListMarker, which follows DebugInfo, 64-bit aligned.\r
+ // just makes address of BaseListMarker, which follows DebugInfo, 64-bit aligned.\r
//\r
DebugInfo = (EFI_DEBUG_INFO *)(Buffer) + 1;\r
DebugInfo->ErrorLevel = (UINT32)ErrorLevel;\r
//\r
// Parse Flags and Width\r
//\r
- for (Done = FALSE; !Done; ) {\r
- Format++;\r
- switch (*Format) {\r
- case '.': \r
- case '-': \r
- case '+': \r
- case ' ': \r
- case ',': \r
- case '0':\r
- case '1':\r
- case '2':\r
- case '3':\r
- case '4':\r
- case '5':\r
- case '6':\r
- case '7':\r
- case '8':\r
- case '9':\r
+ for (Format++; TRUE; Format++) {\r
+ if (*Format == '.' || *Format == '-' || *Format == '+' || *Format == ' ') {\r
//\r
// These characters in format field are omitted.\r
//\r
- break;\r
- case 'L':\r
- case 'l': \r
+ continue;\r
+ }\r
+ if (*Format >= '0' && *Format <= '9') {\r
+ //\r
+ // These characters in format field are omitted.\r
+ //\r
+ continue;\r
+ }\r
+ if (*Format == 'L' || *Format == 'l') {\r
//\r
// 'L" or "l" in format field means the number being printed is a UINT64\r
//\r
Long = TRUE;\r
- break;\r
- case '*':\r
+ continue;\r
+ }\r
+ if (*Format == '*') {\r
//\r
// '*' in format field means the precision of the field is specified by\r
// a UINTN argument in the argument list.\r
//\r
BASE_ARG (BaseListMarker, UINTN) = VA_ARG (VaListMarker, UINTN);\r
- break;\r
- case '\0':\r
+ continue;\r
+ }\r
+ if (*Format == '\0') {\r
//\r
// Make no output if Format string terminates unexpectedly when\r
// looking up for flag, width, precision and type. \r
//\r
Format--;\r
- //\r
- // break skipped on purpose.\r
- //\r
- default:\r
- //\r
- // When valid argument type detected or format string terminates unexpectedly,\r
- // the inner loop is done.\r
- //\r
- Done = TRUE;\r
- break;\r
}\r
- } \r
- \r
+ //\r
+ // When valid argument type detected or format string terminates unexpectedly,\r
+ // the inner loop is done.\r
+ //\r
+ break;\r
+ }\r
+ \r
//\r
// Pack variable arguments into the storage area following EFI_DEBUG_INFO.\r
//\r
- switch (*Format) {\r
- case 'p':\r
- if (sizeof (VOID *) > 4) {\r
- Long = TRUE;\r
- }\r
- case 'X':\r
- case 'x':\r
- case 'd':\r
+ if ((*Format == 'p') && (sizeof (VOID *) > 4)) {\r
+ Long = TRUE;\r
+ }\r
+ if (*Format == 'p' || *Format == 'X' || *Format == 'x' || *Format == 'd') {\r
if (Long) {\r
BASE_ARG (BaseListMarker, INT64) = VA_ARG (VaListMarker, INT64);\r
} else {\r
BASE_ARG (BaseListMarker, int) = VA_ARG (VaListMarker, int);\r
}\r
- break;\r
- case 's':\r
- case 'S':\r
- case 'a':\r
- case 'g':\r
- case 't':\r
+ } else if (*Format == 's' || *Format == 'S' || *Format == 'a' || *Format == 'g' || *Format == 't') {\r
BASE_ARG (BaseListMarker, VOID *) = VA_ARG (VaListMarker, VOID *);\r
- break;\r
- case 'c':\r
+ } else if (*Format == 'c') {\r
BASE_ARG (BaseListMarker, UINTN) = VA_ARG (VaListMarker, UINTN);\r
- break;\r
- case 'r':\r
+ } else if (*Format == 'r') {\r
BASE_ARG (BaseListMarker, RETURN_STATUS) = VA_ARG (VaListMarker, RETURN_STATUS);\r
- break;\r
}\r
\r
//\r