|
@@ -292,7 +292,7 @@ LPAPP_CTRL_INFO CAppCtrl::AppInfoUpdate(clock64_t nCurWorkingTime)
|
|
|
|
|
|
m_ai.nStateEvtPending = proc.nStateEvtPending;
|
|
m_ai.nStateEvtPending = proc.nStateEvtPending;
|
|
m_ai.nCtrlMsgPending = proc.nCtrlMsgPending;
|
|
m_ai.nCtrlMsgPending = proc.nCtrlMsgPending;
|
|
- m_ai.nSysEvtPending = proc.nSysEvtPending & ~GFA_APPCTRL_SYSEVENT_ALL_STG_DEV;
|
|
|
|
|
|
+ m_ai.nSysEvtPending = proc.nSysEvtPending & ~(GFA_APPCTRL_SYSEVENT_DISK_EVT | GFA_APPCTRL_SYSEVENT_PART_EVT | GFA_APPCTRL_SYSEVENT_MOUNT_EVT); // not GFA_APPCTRL_SYSEVENT_STG_DEV_UPDT_EVT!!!
|
|
proc.nStateEvtPending = 0;
|
|
proc.nStateEvtPending = 0;
|
|
proc.nCtrlMsgPending = 0;
|
|
proc.nCtrlMsgPending = 0;
|
|
proc.nSysEvtPending = 0;
|
|
proc.nSysEvtPending = 0;
|
|
@@ -323,7 +323,6 @@ LPAPP_CTRL_INFO CAppCtrl::AppInfoUpdate(clock64_t nCurWorkingTime)
|
|
m_ai.nSysEvtPending |= GFA_APPCTRL_SYSEVENT_MOUNT_EVT;
|
|
m_ai.nSysEvtPending |= GFA_APPCTRL_SYSEVENT_MOUNT_EVT;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
proc.nDiskMask = sys.nDiskMask;
|
|
proc.nDiskMask = sys.nDiskMask;
|
|
proc.nPartMask = sys.nPartMask;
|
|
proc.nPartMask = sys.nPartMask;
|
|
proc.nMountMask = sys.nMountMask;
|
|
proc.nMountMask = sys.nMountMask;
|
|
@@ -997,7 +996,7 @@ bool CAppCtrl::UpdateSysInfo(void)
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
-bool CAppCtrl::UpdateStorageDeviceMap(const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm, bool bReset)
|
|
|
|
|
|
+bool CAppCtrl::UpdateStorageDeviceMap(const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm, bool bReset, bool bUpdateOnly)
|
|
{
|
|
{
|
|
APP_CTRL_SYSTEM &sys = m_pAppCtrl->sys;
|
|
APP_CTRL_SYSTEM &sys = m_pAppCtrl->sys;
|
|
unsigned int nPartChangeMask = sdm.nPartChangeMask;
|
|
unsigned int nPartChangeMask = sdm.nPartChangeMask;
|
|
@@ -1022,6 +1021,23 @@ bool CAppCtrl::UpdateStorageDeviceMap(const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm,
|
|
sys.nPartMask = 0;
|
|
sys.nPartMask = 0;
|
|
sys.nMountMask = 0;
|
|
sys.nMountMask = 0;
|
|
}
|
|
}
|
|
|
|
+ else if(bUpdateOnly)
|
|
|
|
+ {
|
|
|
|
+ memcpy(&sys.sdm, &sdm, sizeof(sdm));
|
|
|
|
+
|
|
|
|
+ for(int i = 0; i < (int)_countof(m_pAppCtrl->proc); ++i)
|
|
|
|
+ {
|
|
|
|
+ APP_CTRL_PROCESS &proc = m_pAppCtrl->proc[i];
|
|
|
|
+
|
|
|
|
+ if((proc.pid > 0) && getpgid(proc.pid) > 0)
|
|
|
|
+ {
|
|
|
|
+ if(proc.nSysEvtRegistered & GFA_APPCTRL_SYSEVENT_STG_DEV_UPDT_EVT)
|
|
|
|
+ {
|
|
|
|
+ proc.nSysEvtPending |= GFA_APPCTRL_SYSEVENT_STG_DEV_UPDT_EVT;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
else
|
|
else
|
|
{
|
|
{
|
|
while(nPartChangeMask)
|
|
while(nPartChangeMask)
|
|
@@ -1255,6 +1271,19 @@ int CAppCtrl::GetNextMountRemoved(LPGFA_SYSINFO_PARTITION pPart)
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+bool CAppCtrl::GetStgDevMap(LPGFA_SYSINFO_STORAGE_DEVICE_MAP pStgDevMap)
|
|
|
|
+{
|
|
|
|
+ if(pStgDevMap)
|
|
|
|
+ {
|
|
|
|
+ const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm = m_pAppCtrl->sys.sdm;
|
|
|
|
+ CAppCtrlShmLocker locker(*this);
|
|
|
|
+ memcpy(pStgDevMap, &sdm, sizeof(sdm));
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return false;
|
|
|
|
+}
|
|
|
|
+
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
bool CAppCtrl::UpdateDbInfo(const GFA_SYSINFO_DATABASE &sdb)
|
|
bool CAppCtrl::UpdateDbInfo(const GFA_SYSINFO_DATABASE &sdb)
|
|
@@ -1661,11 +1690,11 @@ extern "C" bool GfaIpcAppCtrlUpdateSysInfo(HAPPCTRL hAC)
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
-extern "C" bool GfaIpcAppCtrlUpdateStorageDeviceMap(HAPPCTRL hAC, const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm, bool bReset)
|
|
|
|
|
|
+extern "C" bool GfaIpcAppCtrlUpdateStorageDeviceMap(HAPPCTRL hAC, const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm, bool bReset, bool bUpdateOnly)
|
|
{
|
|
{
|
|
CAppCtrl *p = reinterpret_cast<CAppCtrl*>(hAC);
|
|
CAppCtrl *p = reinterpret_cast<CAppCtrl*>(hAC);
|
|
if(p)
|
|
if(p)
|
|
- return p->UpdateStorageDeviceMap(sdm, bReset);
|
|
|
|
|
|
+ return p->UpdateStorageDeviceMap(sdm, bReset, bUpdateOnly);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1748,6 +1777,14 @@ int GfaIpcAppCtrlGetNextMountRemoved(HAPPCTRL hAC, LPGFA_SYSINFO_PARTITION pPart
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+bool GfaIpcAppCtrlGetStgDevMap(HAPPCTRL hAC, LPGFA_SYSINFO_STORAGE_DEVICE_MAP pStgDevMap)
|
|
|
|
+{
|
|
|
|
+ CAppCtrl *p = reinterpret_cast<CAppCtrl*>(hAC);
|
|
|
|
+ if(p)
|
|
|
|
+ return p->GetStgDevMap(pStgDevMap);
|
|
|
|
+ return false;
|
|
|
|
+}
|
|
|
|
+
|
|
bool GfaIpcAppCtrlGetSysMem(HAPPCTRL hAC, LPGFA_APPCTRL_SYSMEM psm)
|
|
bool GfaIpcAppCtrlGetSysMem(HAPPCTRL hAC, LPGFA_APPCTRL_SYSMEM psm)
|
|
{
|
|
{
|
|
CAppCtrl *p = reinterpret_cast<CAppCtrl*>(hAC);
|
|
CAppCtrl *p = reinterpret_cast<CAppCtrl*>(hAC);
|
|
@@ -1851,3 +1888,10 @@ sysevt_t GfaIpcAppCtrlGetNextSysEvt(HAPPINFO hAI)
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+/////////////////////////////////////////////////////////////////////////////
|
|
|
|
+
|
|
|
|
+bool GfaIpcAppCtrlSysInfoUpdateStgDevInfo(HAPPCTRL hAC)
|
|
|
|
+{
|
|
|
|
+ return GfaIpcAppCtrlSendCtrlMsg(hAC, GFA_APPCTRL_APPID_SYSINFO, GFA_APPCTRL_CTRLMSG_SYSINFO_UPDATE_STGDEV);
|
|
|
|
+}
|