Beispiel #1
0
//执行LFS_INF_IDC_STATUS
int CMFPI::N_GetStatus()
{
    LPLFSRESULT lpResult = NULL;
    int ret = m_apiCtrl.LFSGetInfo(LFS_INF_IDC_STATUS, NULL, HM_MIDDLE_TIMEOUT, &lpResult);

    if(LFS_SUCCESS == ret)
	{
        LPLFSIDCSTATUS lpStatus = (LPLFSIDCSTATUS)((LPLFSRESULT)lpResult);
		if(lpStatus)
		{
            memcpy(&m_Status, lpStatus, sizeof(LFSIDCSTATUS));
            SetDeviceStatus(m_Status.device);
		}
		else
		{
			ret = -1;
			LOGERROR("%s, SP数据为空。", __FUNCTION__);
            Alarm("07000002");
		}
	}
	else
	{
		LOGERROR("%s, 获取状态失败错误码为:ret = %d", __FUNCTION__,ret);
        Alarm("07000001");
	}

    ::LFSFreeResult(lpResult);
	return ret;
}
Beispiel #2
0
// 收到系统事件后调用该函数
void CMFPI::WR_SystemEvent(DWORD dwEventID, HRESULT hResult, LPVOID lpBuffer)
{
	switch(dwEventID)
	{
    case LFS_SYSE_DEVICE_STATUS://设备状态改变
		{
            LPLFSDEVSTATUS lpDevStatus=(LPLFSDEVSTATUS)((LPLFSRESULT)lpBuffer);
			if(lpDevStatus == NULL)
			{
				LOGERROR("%s,SP数据为空。",__FUNCTION__);
                Alarm("07000002");
				return;
			}

            SetDeviceStatus(lpDevStatus->state);
			if(m_CurrDevStatus!=m_PreDevStatus)
			{
				
                emit this->StatusChanged(m_szLogicalName,m_PreDevStatus,m_CurrDevStatus);
                LOGINFO("%s,事件:StatusChanged(\"StDeviceStatus\",\"%s\",\"%s\")",__FUNCTION__,m_PreDevStatus.toStdString().c_str(),m_CurrDevStatus.toStdString().c_str());
			}
		}
		break;
	}
}
Beispiel #3
0
void CMFPI::N_InitStatus()
{
    m_Status.device=LFS_IDC_DEVNODEVICE;
    m_Status.media=LFS_IDC_MEDIANOTPRESENT;
    m_Status.cards=0;
    m_Status.retain_bin=LFS_IDC_RETAINNOTSUPP;
    m_Status.security=LFS_IDC_SECNOTREADY;
    m_Status.chip_power=LFS_IDC_CHIPUNKNOWN;
    SetDeviceStatus(m_Status.device);
}
STATIC
VOID
SetXgbeStatus (
  IN VOID       *Fdt
  )
{
#if DO_XGBE
  SetDeviceStatus (Fdt, "xgmac@e0700000", TRUE);
  SetDeviceStatus (Fdt, "phy@e1240800", TRUE);
  SetDeviceStatus (Fdt, "xgmac@e0900000", TRUE);
  SetDeviceStatus (Fdt, "phy@e1240c00", TRUE);

  SetMacAddress (Fdt, "xgmac@e0700000", PcdGet64 (PcdEthMacA));
  SetMacAddress (Fdt, "xgmac@e0900000", PcdGet64 (PcdEthMacB));
#else
  SetDeviceStatus (Fdt, "xgmac@e0700000", FALSE);
  SetDeviceStatus (Fdt, "phy@e1240800", FALSE);
  SetDeviceStatus (Fdt, "xgmac@e0900000", FALSE);
  SetDeviceStatus (Fdt, "phy@e1240c00", FALSE);
#endif
}
STATIC
VOID
SetSocIdStatus (
  IN VOID       *Fdt
  )
{
  UINT32        SocId;
  BOOLEAN       IsRevB1;
  BOOLEAN       DisableXgbeSmmus;

  SocId = PcdGet32 (PcdSocCpuId);
  IsRevB1 = (SocId & STYX_SOC_VERSION_MASK) >= STYX_SOC_VERSION_B1;

  SetDeviceStatus (Fdt, "sata@e0d00000",
    IsRevB1 && FixedPcdGet8 (PcdSata1PortCount) > 0);
  SetDeviceStatus (Fdt, "gpio@e0020000", IsRevB1);
  SetDeviceStatus (Fdt, "gpio@e0030000", IsRevB1);
  SetDeviceStatus (Fdt, "gwdt@e0bb0000", IsRevB1);
#if DO_KCS
  SetDeviceStatus (Fdt, "kcs@e0010000", IsRevB1);
#else
  SetDeviceStatus (Fdt, "kcs@e0010000", FALSE);
#endif

  if (!PcdGetBool (PcdEnableSmmus)) {
    DisableSmmu (Fdt, "iommu-map", "/smb/smmu@e0a00000", "/smb/pcie@f0000000");
    DisableSmmu (Fdt, "iommus", "/smb/smmu@e0200000", "/smb/sata@e0300000");
  }

  if (!PcdGetBool (PcdEnableSmmus) || !IsRevB1 || FixedPcdGet8 (PcdSata1PortCount) == 0) {
    DisableSmmu (Fdt, "iommus", "/smb/smmu@e0c00000", "/smb/sata@e0d00000");
  }

#if DO_XGBE
  DisableXgbeSmmus = !PcdGetBool (PcdEnableSmmus);
#else
  DisableXgbeSmmus = TRUE;
#endif

  if (DisableXgbeSmmus) {
    DisableSmmu (Fdt, "iommus", "/smb/smmu@e0600000", "/smb/xgmac@e0700000");
    DisableSmmu (Fdt, "iommus", "/smb/smmu@e0800000", "/smb/xgmac@e0900000");
  }
}