Print(L"Parameter:\n");\r
Print(L" -NR: No reset will be triggered for the capsule\n");\r
Print(L" with CAPSULE_FLAGS_PERSIST_ACROSS_RESET and without CAPSULE_FLAGS_INITIATE_RESET.\n");\r
- Print(L" -OD: Delivery of Capsules via file on Mass Storage device.");\r
+ Print(L" -OD: Delivery of Capsules via file on Mass Storage device.\n");\r
Print(L" -S: Dump capsule report variable (EFI_CAPSULE_REPORT_GUID),\n");\r
Print(L" which is defined in UEFI specification.\n");\r
Print(L" -C: Clear capsule report variable (EFI_CAPSULE_REPORT_GUID),\n");\r
}\r
}\r
\r
- if (ParaOdIndex != 0) {\r
- if (ParaOdIndex == Argc - 1) {\r
+ if (ParaOdIndex > ParaNrIndex) {\r
+ if (ParaNrIndex != 0) {\r
+ CapsuleLastIndex = ParaNrIndex - 1;\r
+ } else {\r
+ CapsuleLastIndex = ParaOdIndex - 1;\r
+ }\r
+\r
+ if (ParaOdIndex == Argc -1) {\r
MapFsStr = NULL;\r
} else if (ParaOdIndex == Argc - 2) {\r
MapFsStr = Argv[Argc-1];\r
} else {\r
- Print (L"CapsuleApp: Invalid Position for -OD Options\n");\r
+ Print (L"CapsuleApp: Cannot specify more than one FS mapping!\n");\r
Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
-\r
- if (ParaNrIndex != 0) {\r
- if (ParaNrIndex + 1 == ParaOdIndex) {\r
- CapsuleLastIndex = ParaNrIndex - 1;\r
- } else {\r
- Print (L"CapsuleApp: Invalid Position for -NR Options\n");\r
- Status = EFI_INVALID_PARAMETER;\r
- goto Done;\r
- }\r
- } else {\r
+ } else if (ParaOdIndex < ParaNrIndex) {\r
+ if (ParaOdIndex != 0) {\r
CapsuleLastIndex = ParaOdIndex - 1;\r
- }\r
- } else {\r
- if (ParaNrIndex != 0) {\r
- if (ParaNrIndex == Argc -1) {\r
- CapsuleLastIndex = ParaNrIndex - 1;\r
+ if (ParaOdIndex == ParaNrIndex - 1) {\r
+ MapFsStr = NULL;\r
+ } else if (ParaOdIndex == ParaNrIndex - 2) {\r
+ MapFsStr = Argv[ParaOdIndex + 1];\r
} else {\r
- Print (L"CapsuleApp: Invalid Position for -NR Options\n");\r
+ Print (L"CapsuleApp: Cannot specify more than one FS mapping!\n");\r
Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
} else {\r
- CapsuleLastIndex = Argc - 1;\r
+ CapsuleLastIndex = ParaNrIndex - 1;\r
}\r
+ } else {\r
+ CapsuleLastIndex = Argc - 1;\r
}\r
\r
CapsuleNum = CapsuleLastIndex - CapsuleFirstIndex + 1;\r