secureswitools/swisistools/source/interpretsislib/configmanager.cpp
branchRCL_3
changeset 73 79647526f98c
parent 62 5cc91383ab1e
child 81 42552535c1ac
--- a/secureswitools/swisistools/source/interpretsislib/configmanager.cpp	Tue Sep 14 21:31:28 2010 +0300
+++ b/secureswitools/swisistools/source/interpretsislib/configmanager.cpp	Wed Sep 15 12:20:42 2010 +0300
@@ -203,12 +203,27 @@
 		CheckAndAddDrive(aParamList.SystemDriveLetter(), aParamList.SystemDrivePath());
 		}
 
-	if ( !IsTargetDrivePresent(aParamList.SystemDriveLetter()) )
+	if ((!IsTargetDrivePresent(aParamList.SystemDriveLetter())) && (!aParamList.IsFlagSet(CParameterList::EFlagsRomInstallSet)))
 		{
 		std::stringstream err;
 		err << "The directory representing the system drive is not defined";
 		throw ConfigManagerException( ConfigManagerException::ETypeDriveError, err.str());
 		}
+
+	if (!((aParamList.IsFlagSet(CParameterList::EFlagsCDriveSet)) ^ (aParamList.IsFlagSet(CParameterList::EFlagsRomInstallSet)))) 
+		{
+		std::stringstream err;
+		err << "The System Drive should not be defined for Installation to Rom Drive";
+		throw ConfigManagerException( ConfigManagerException::ETypeDriveError, err.str());
+		}
+	
+	if ((!aParamList.IsFlagSet(CParameterList::EFlagsCDriveSet)) && (aParamList.IsFlagSet(CParameterList::EFlagsExtDriveSet)))
+		{
+		std::stringstream err;
+		err << "The Extended Drive cannot be specified without -c (System drive) option.";
+		throw ConfigManagerException( ConfigManagerException::ETypeDriveError, err.str());
+		}
+
 	}