Sfoglia il codice sorgente

Erkennt nun Tiva- oder Nicht-Tiva Targets, PC und VM

Rind 3 anni fa
parent
commit
a1d5036e8c
5 ha cambiato i file con 38 aggiunte e 8 eliminazioni
  1. 1 0
      .gitignore
  2. 3 0
      gfasysinfo.pro
  3. 24 8
      src/main.cpp
  4. 8 0
      src/stgdevinfo.cpp
  5. 2 0
      src/stgdevinfo.h

+ 1 - 0
.gitignore

@@ -1,5 +1,6 @@
 Debug/
 Release/
 Profile/
+cpuinfo*
 *.pro.user
 *.bak

+ 3 - 0
gfasysinfo.pro

@@ -6,6 +6,9 @@ QMAKE_LIBDIR += $$[QT_SYSROOT]/usr/lib/gfa
 QMAKE_RPATHDIR += /usr/lib/gfa
 QMAKE_LIBS += -ludev
 
+QMAKE_CXXFLAGS += -Wno-unused-result
+QMAKE_CFLAGS += -Wno-unused-result
+
 CONFIG(debug, debug|release) {
     QMAKE_CXXFLAGS -= -Os
     QMAKE_CFLAGS -= -Os

+ 24 - 8
src/main.cpp

@@ -137,6 +137,7 @@ int main(int argc, char *argv[])
 	CMySqlInfo mySqlInfo;
 	CStgDevInfo stgDevInfo;
 	CSpiInfo spiInfo;
+	bool bOsIsHypervised = stgDevInfo.IsSystemHypervised();
 	bool bTargetHasTiva = spiInfo.TargetHasTiva();
 	bool bStateTransition;
 
@@ -213,18 +214,25 @@ int main(int argc, char *argv[])
 		myep = {hAC, sDbUser, sDbPass};
 		mySqlInfo.Create(&myep);
 		
-		step = {hAC};
-		stgDevInfo.Create(&step);
+		if(!bOsIsHypervised)
+		{
+			step = {hAC};
+			stgDevInfo.Create(&step);
+		}
 		
-		spep = {hAC};
 		if(bTargetHasTiva)
+		{
+			spep = {hAC};
 			spiInfo.Create(&spep);
+		}
 
 		g_fZombie = false;
 		g_fRun = true;
 		::GfaIpcAppCtrlSetState(hAC, GIAS_Running);
 		mySqlInfo.Signal(CMySqlInfo::S_UpdateAll);
-		stgDevInfo.Signal(CStgDevInfo::S_Init);
+
+		if(!bOsIsHypervised)
+			stgDevInfo.Signal(CStgDevInfo::S_Init);
 
 		if(bTargetHasTiva)
 			spiInfo.Signal(CSpiInfo::S_Init);
@@ -262,7 +270,9 @@ int main(int argc, char *argv[])
 				if(g_fPause)
 				{
 					mySqlInfo.Signal(CMySqlInfo::S_Pause);
-					stgDevInfo.Signal(CStgDevInfo::S_Pause);
+
+					if(!bOsIsHypervised)
+						stgDevInfo.Signal(CStgDevInfo::S_Pause);
 
 					if(bTargetHasTiva)
 						spiInfo.Signal(CSpiInfo::S_Pause);
@@ -270,7 +280,9 @@ int main(int argc, char *argv[])
 				else
 				{
 					mySqlInfo.Signal(CMySqlInfo::S_Resume);
-					stgDevInfo.Signal(CStgDevInfo::S_Resume);
+
+					if(!bOsIsHypervised)
+						stgDevInfo.Signal(CStgDevInfo::S_Resume);
 
 					if(bTargetHasTiva)
 						spiInfo.Signal(CSpiInfo::S_Resume);
@@ -298,13 +310,17 @@ int main(int argc, char *argv[])
 	// terminate
 
 	mySqlInfo.Signal(CMySqlInfo::S_Terminate);
-	stgDevInfo.Signal(CStgDevInfo::S_Terminate);
+
+	if(!bOsIsHypervised)
+		stgDevInfo.Signal(CStgDevInfo::S_Terminate);
 
 	if(bTargetHasTiva)
 		spiInfo.Signal(CSpiInfo::S_Terminate);
 
 	mySqlInfo.Join(NULL);
-	stgDevInfo.Join(NULL);
+
+	if(!bOsIsHypervised)
+		stgDevInfo.Join(NULL);
 
 	if(bTargetHasTiva)
 		spiInfo.Join(NULL);

+ 8 - 0
src/stgdevinfo.cpp

@@ -639,6 +639,14 @@ static void _EnumStorageDevices(GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm, MountMap &m
 
 CStgDevInfo::CStgDevInfo(void) : m_bPaused(false), m_bStateTransition(false)
 {
+	m_bOsIsHypervised = ::GfAIpcSystemIsHypervised();
+}
+
+/////////////////////////////////////////////////////////////////////////////
+
+bool CStgDevInfo::IsSystemHypervised(void) const
+{
+	return m_bOsIsHypervised;
 }
 
 /////////////////////////////////////////////////////////////////////////////

+ 2 - 0
src/stgdevinfo.h

@@ -32,6 +32,7 @@ public:
 
 public:
 	CStgDevInfo(void);
+	bool IsSystemHypervised(void) const;
 
 protected:
 	virtual void* ThreadRoutine(void *pParam);
@@ -39,6 +40,7 @@ protected:
 private:
 	bool m_bPaused;
 	bool m_bStateTransition;
+	bool m_bOsIsHypervised;
 };
 
 /////////////////////////////////////////////////////////////////////////////