// gfaipc.h : // #if !defined(AGD_GFAIPC_H__6126047E_C1B1_4ACE_BD49_8780C7E5E068__INCLUDED_) #define AGD_GFAIPC_H__6126047E_C1B1_4ACE_BD49_8780C7E5E068__INCLUDED_ #include #include #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // gfaipc.h - Declarations: typedef void *HSHM; typedef void (*PFN_GFA_IPC_LOCK_SHM) (HSHM); typedef void (*PFN_GFA_IPC_UNLOCK_SHM) (HSHM); HSHM GfaIpcAcquireSHM (const char *pszUuid, size_t nSizeElement, size_t nCntElements, const char *pszDescName); void GfaIpcReleaseSHM (HSHM hShm); void* GfaIpcAcquirePointer(HSHM hShm); void GfaIpcReleasePointer(HSHM hShm, const void *p); void GfaIpcLockSHM (HSHM hShm); void GfaIpcUnlockSHM (HSHM hShm); int GfaIpcLockSHMAndSigBlock (HSHM hShm, sigset_t *pss); int GfaIpcUnlockSHMAndSigUnblock(HSHM hShm, sigset_t *pss); void GfaIpcDumpSHMROT (void); long GfaIpcInterlockedIncrement(HSHM hShm, volatile long *pl); long GfaIpcInterlockedDecrement(HSHM hShm, volatile long *pl); long GfaIpcInterlockedCompare(HSHM hShm, volatile long *pl, long comparand); long GfaIpcInterlockedSet(HSHM hShm, volatile long *pl, long val); long GfaIpcInterlockedClear(HSHM hShm, volatile long *pl); typedef enum { GTT_NoGfATarget, GTT_GfATargetNoTiva, GTT_GfATargetWithTiva }GfATargetTypes; GfATargetTypes GfAIpcGetTargetType(char *pszTargetType, size_t nCChTargetType); bool GfAIpcSystemIsHypervised(void); ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// typedef void *HAPPCTRL; typedef void *HAPPINFO; typedef unsigned long long appid_t; typedef unsigned long long ctrlmsg_t; typedef long long clock64_t; typedef unsigned long long sysevt_t; ///////////////////////////////////////////////////////////////////////////// #define GFA_APPCTRL_MAKE_APPID(i) (1ULL << (i)) #define GFA_APPCTRL_MAKE_CTRLMSG(m) (1ULL << (m)) #define GFA_APPCTRL_MAKE_SYSEVENT(e) (1ULL << (e)) #define GFA_MYSQL_MAX_DB_NAME_LENGTH 64 #define GFA_MYSQL_MAX_DB_USER_LENGTH 64 #define GFA_MYSQL_MAX_DB_PASS_LENGTH 64 #define GFA_MYSQL_MAX_TABLE_NAME_LENGTH 64 #define GFA_MYSQL_MAX_ENGINE_NAME_LENGTH 32 #define GFA_MYSQL_MAX_ROW_FORMAT_LENGTH 32 #define GFA_MYSQL_MAX_COLLATION_LENGTH 32 #define GFA_MYSQL_MAX_SVR_VERSION_LENGTH 32 #define GFA_MYSQL_MAX_DATADIR_LENGTH 64 #define GFA_MYSQL_MAX_DATABASES 8 #define GFA_MYSQL_MAX_TABLES_PER_DATABASE 12 ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // GfA typedef enum { GAI_Remanent, GAI_Datalogger, GAI_Summarist, GAI_Rest, GAI_Mqttcl, GAI_SysInfo, GAI_Geb, GAI_Last }GfaAppIndex; #define GFA_APPCTRL_APPID_REMANENT GFA_APPCTRL_MAKE_APPID(GAI_Remanent) #define GFA_APPCTRL_APPID_DATALOGGER GFA_APPCTRL_MAKE_APPID(GAI_Datalogger) #define GFA_APPCTRL_APPID_SUMMARIST GFA_APPCTRL_MAKE_APPID(GAI_Summarist) #define GFA_APPCTRL_APPID_REST GFA_APPCTRL_MAKE_APPID(GAI_Rest) #define GFA_APPCTRL_APPID_MQTTCL GFA_APPCTRL_MAKE_APPID(GAI_Mqttcl) #define GFA_APPCTRL_APPID_SYSINFO GFA_APPCTRL_MAKE_APPID(GAI_SysInfo) #define GFA_APPCTRL_APPID_GEB GFA_APPCTRL_MAKE_APPID(GAI_Geb) #define GFA_APPCTRL_APPID_ALL_GFA (GFA_APPCTRL_APPID_REMANENT | \ GFA_APPCTRL_APPID_DATALOGGER | \ GFA_APPCTRL_APPID_SUMMARIST | \ GFA_APPCTRL_APPID_REST | \ GFA_APPCTRL_APPID_MQTTCL | \ GFA_APPCTRL_APPID_SYSINFO | \ GFA_APPCTRL_APPID_GEB) ///////////////////////////////////////////////////////////////////////////// #define GFA_APPCTRL_CTRLMSG_STOP GFA_APPCTRL_MAKE_CTRLMSG(0) #define GFA_APPCTRL_CTRLMSG_PAUSE GFA_APPCTRL_MAKE_CTRLMSG(1) #define GFA_APPCTRL_CTRLMSG_RESUME GFA_APPCTRL_MAKE_CTRLMSG(2) #define GFA_APPCTRL_CTRLMSG_SYSINFO_UPDATE_STGDEV GFA_APPCTRL_MAKE_CTRLMSG(10) ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // User #define GFA_APPCTRL_APPID_USER_01 GFA_APPCTRL_MAKE_APPID(32) #define GFA_APPCTRL_APPID_USER_02 GFA_APPCTRL_MAKE_APPID(33) #define GFA_APPCTRL_APPID_USER_03 GFA_APPCTRL_MAKE_APPID(34) #define GFA_APPCTRL_APPID_USER_04 GFA_APPCTRL_MAKE_APPID(35) #define GFA_APPCTRL_APPID_USER_05 GFA_APPCTRL_MAKE_APPID(36) #define GFA_APPCTRL_APPID_USER_06 GFA_APPCTRL_MAKE_APPID(37) #define GFA_APPCTRL_APPID_USER_07 GFA_APPCTRL_MAKE_APPID(38) #define GFA_APPCTRL_APPID_USER_08 GFA_APPCTRL_MAKE_APPID(39) #define GFA_APPCTRL_APPID_USER_09 GFA_APPCTRL_MAKE_APPID(40) #define GFA_APPCTRL_APPID_USER_10 GFA_APPCTRL_MAKE_APPID(41) #define GFA_APPCTRL_APPID_USER_11 GFA_APPCTRL_MAKE_APPID(42) #define GFA_APPCTRL_APPID_USER_12 GFA_APPCTRL_MAKE_APPID(43) #define GFA_APPCTRL_APPID_USER_13 GFA_APPCTRL_MAKE_APPID(44) #define GFA_APPCTRL_APPID_USER_14 GFA_APPCTRL_MAKE_APPID(45) #define GFA_APPCTRL_APPID_USER_15 GFA_APPCTRL_MAKE_APPID(46) #define GFA_APPCTRL_APPID_USER_16 GFA_APPCTRL_MAKE_APPID(47) #define GFA_APPCTRL_APPID_USER_17 GFA_APPCTRL_MAKE_APPID(48) #define GFA_APPCTRL_APPID_USER_18 GFA_APPCTRL_MAKE_APPID(49) #define GFA_APPCTRL_APPID_USER_19 GFA_APPCTRL_MAKE_APPID(50) #define GFA_APPCTRL_APPID_USER_20 GFA_APPCTRL_MAKE_APPID(51) #define GFA_APPCTRL_APPID_USER_21 GFA_APPCTRL_MAKE_APPID(52) #define GFA_APPCTRL_APPID_USER_22 GFA_APPCTRL_MAKE_APPID(53) #define GFA_APPCTRL_APPID_USER_23 GFA_APPCTRL_MAKE_APPID(54) #define GFA_APPCTRL_APPID_USER_24 GFA_APPCTRL_MAKE_APPID(55) #define GFA_APPCTRL_APPID_USER_25 GFA_APPCTRL_MAKE_APPID(56) #define GFA_APPCTRL_APPID_USER_26 GFA_APPCTRL_MAKE_APPID(57) #define GFA_APPCTRL_APPID_USER_27 GFA_APPCTRL_MAKE_APPID(58) #define GFA_APPCTRL_APPID_USER_28 GFA_APPCTRL_MAKE_APPID(59) #define GFA_APPCTRL_APPID_USER_29 GFA_APPCTRL_MAKE_APPID(60) #define GFA_APPCTRL_APPID_USER_30 GFA_APPCTRL_MAKE_APPID(61) #define GFA_APPCTRL_APPID_USER_31 GFA_APPCTRL_MAKE_APPID(62) #define GFA_APPCTRL_APPID_USER_32 GFA_APPCTRL_MAKE_APPID(63) ///////////////////////////////////////////////////////////////////////////// #define GFA_APPCTRL_CTRLMSG_USER_01 GFA_APPCTRL_MAKE_CTRLMSG(32) #define GFA_APPCTRL_CTRLMSG_USER_02 GFA_APPCTRL_MAKE_CTRLMSG(33) #define GFA_APPCTRL_CTRLMSG_USER_03 GFA_APPCTRL_MAKE_CTRLMSG(34) #define GFA_APPCTRL_CTRLMSG_USER_04 GFA_APPCTRL_MAKE_CTRLMSG(35) #define GFA_APPCTRL_CTRLMSG_USER_05 GFA_APPCTRL_MAKE_CTRLMSG(36) #define GFA_APPCTRL_CTRLMSG_USER_06 GFA_APPCTRL_MAKE_CTRLMSG(37) #define GFA_APPCTRL_CTRLMSG_USER_07 GFA_APPCTRL_MAKE_CTRLMSG(38) #define GFA_APPCTRL_CTRLMSG_USER_08 GFA_APPCTRL_MAKE_CTRLMSG(39) #define GFA_APPCTRL_CTRLMSG_USER_09 GFA_APPCTRL_MAKE_CTRLMSG(40) #define GFA_APPCTRL_CTRLMSG_USER_10 GFA_APPCTRL_MAKE_CTRLMSG(41) #define GFA_APPCTRL_CTRLMSG_USER_11 GFA_APPCTRL_MAKE_CTRLMSG(42) #define GFA_APPCTRL_CTRLMSG_USER_12 GFA_APPCTRL_MAKE_CTRLMSG(43) #define GFA_APPCTRL_CTRLMSG_USER_13 GFA_APPCTRL_MAKE_CTRLMSG(44) #define GFA_APPCTRL_CTRLMSG_USER_14 GFA_APPCTRL_MAKE_CTRLMSG(45) #define GFA_APPCTRL_CTRLMSG_USER_15 GFA_APPCTRL_MAKE_CTRLMSG(46) #define GFA_APPCTRL_CTRLMSG_USER_16 GFA_APPCTRL_MAKE_CTRLMSG(47) #define GFA_APPCTRL_CTRLMSG_USER_17 GFA_APPCTRL_MAKE_CTRLMSG(48) #define GFA_APPCTRL_CTRLMSG_USER_18 GFA_APPCTRL_MAKE_CTRLMSG(49) #define GFA_APPCTRL_CTRLMSG_USER_19 GFA_APPCTRL_MAKE_CTRLMSG(50) #define GFA_APPCTRL_CTRLMSG_USER_20 GFA_APPCTRL_MAKE_CTRLMSG(51) #define GFA_APPCTRL_CTRLMSG_USER_21 GFA_APPCTRL_MAKE_CTRLMSG(52) #define GFA_APPCTRL_CTRLMSG_USER_22 GFA_APPCTRL_MAKE_CTRLMSG(53) #define GFA_APPCTRL_CTRLMSG_USER_23 GFA_APPCTRL_MAKE_CTRLMSG(54) #define GFA_APPCTRL_CTRLMSG_USER_24 GFA_APPCTRL_MAKE_CTRLMSG(55) #define GFA_APPCTRL_CTRLMSG_USER_25 GFA_APPCTRL_MAKE_CTRLMSG(56) #define GFA_APPCTRL_CTRLMSG_USER_26 GFA_APPCTRL_MAKE_CTRLMSG(57) #define GFA_APPCTRL_CTRLMSG_USER_27 GFA_APPCTRL_MAKE_CTRLMSG(58) #define GFA_APPCTRL_CTRLMSG_USER_28 GFA_APPCTRL_MAKE_CTRLMSG(59) #define GFA_APPCTRL_CTRLMSG_USER_29 GFA_APPCTRL_MAKE_CTRLMSG(60) #define GFA_APPCTRL_CTRLMSG_USER_30 GFA_APPCTRL_MAKE_CTRLMSG(61) #define GFA_APPCTRL_CTRLMSG_USER_31 GFA_APPCTRL_MAKE_CTRLMSG(62) #define GFA_APPCTRL_CTRLMSG_USER_32 GFA_APPCTRL_MAKE_CTRLMSG(63) ///////////////////////////////////////////////////////////////////////////// #define GFA_APPCTRL_SYSEVENT_DISK_EVT GFA_APPCTRL_MAKE_SYSEVENT(0) #define GFA_APPCTRL_SYSEVENT_PART_EVT GFA_APPCTRL_MAKE_SYSEVENT(1) #define GFA_APPCTRL_SYSEVENT_MOUNT_EVT GFA_APPCTRL_MAKE_SYSEVENT(2) #define GFA_APPCTRL_SYSEVENT_STG_DEV_UPDT_EVT GFA_APPCTRL_MAKE_SYSEVENT(9) #define GFA_APPCTRL_SYSEVENT_ALL_STG_DEV (GFA_APPCTRL_SYSEVENT_DISK_EVT | GFA_APPCTRL_SYSEVENT_PART_EVT | GFA_APPCTRL_SYSEVENT_MOUNT_EVT | GFA_APPCTRL_SYSEVENT_STG_DEV_UPDT_EVT) #define GFA_APPCTRL_SYSEVENT_MYSQL_INIT_EVT GFA_APPCTRL_MAKE_SYSEVENT(3) #define GFA_APPCTRL_SYSEVENT_MYSQL_SERVER_EVT GFA_APPCTRL_MAKE_SYSEVENT(4) #define GFA_APPCTRL_SYSEVENT_MYSQL_RESOURCE_EVT GFA_APPCTRL_MAKE_SYSEVENT(5) #define GFA_APPCTRL_SYSEVENT_MYSQL_DATABASE_EVT GFA_APPCTRL_MAKE_SYSEVENT(6) #define GFA_APPCTRL_SYSEVENT_ALL_MYSQL (GFA_APPCTRL_SYSEVENT_MYSQL_INIT_EVT | GFA_APPCTRL_SYSEVENT_MYSQL_SERVER_EVT | GFA_APPCTRL_SYSEVENT_MYSQL_RESOURCE_EVT | GFA_APPCTRL_SYSEVENT_MYSQL_DATABASE_EVT) #define GFA_APPCTRL_SYSEVENT_TIVA_RST GFA_APPCTRL_MAKE_SYSEVENT(7) #define GFA_APPCTRL_SYSEVENT_TIVA_EVT GFA_APPCTRL_MAKE_SYSEVENT(8) #define GFA_APPCTRL_SYSEVENT_ALL_TIVA (GFA_APPCTRL_SYSEVENT_TIVA_RST | GFA_APPCTRL_SYSEVENT_TIVA_EVT) ///////////////////////////////////////////////////////////////////////////// #define GFA_APPCTRL_MAX_DISKS 8 #define GFA_APPCTRL_MAX_PARTITIONS 16 #define GFA_APPCTRL_MAX_DEV_NODE_LENGTH 128 #define GFA_APPCTRL_MAX_MOUNT_POINT_LENGTH 256 #define GFA_APPCTRL_MAX_BUS_NAME_LENGTH 32 #define GFA_APPCTRL_MAX_FS_LABEL_LENGTH 32 #define GFA_APPCTRL_MAX_FS_TYPE_LENGTH 32 #define GFA_APPCTRL_MAX_FS_VERSION_LENGTH 32 #define GFA_APPCTRL_MAX_DISK_NAME_LENGTH 64 #define GFA_APPCTRL_MAX_DISK_VENDOR_NAME_LENGTH 64 ///////////////////////////////////////////////////////////////////////////// typedef enum { GIAS_StateNotRunning, GIAS_Initializing, GIAS_Running, GIAS_Paused, GIAS_Hanging, // pseudo state! GIAS_Terminating, GIAS_Zombie, GIAS_Invalid }GfaIpcAppStates; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_APPCTRL_APPTIMES { clock64_t nCyclePresetUs; clock64_t nCycleLastUs; clock64_t nCycleMinUs; clock64_t nCycleMaxUs; clock64_t nWorkLastUs; clock64_t nWorkMinUs; clock64_t nWorkMaxUs; clock64_t nCpuUsrTimeUs; clock64_t nCpuKerTimeUs; clock64_t nMaxHeartbeatDelay; double fCpuTime; double fCpuCur; double fCpuAvg; time_t nTsStart; }GFA_APPCTRL_APPTIMES, *LPGFA_APPCTRL_APPTIMES; typedef const GFA_APPCTRL_APPTIMES *LPCGFA_APPCTRL_APPTIMES; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_APPCTRL_APPMEM { size_t vmPeak; size_t vmSize; size_t vmHWM; size_t vmRSS; }GFA_APPCTRL_APPMEM, *LPGFA_APPCTRL_APPMEM; typedef const GFA_APPCTRL_APPMEM *LPCGFA_APPCTRL_APPMEM; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_APPCTRL_SYSMEM { size_t nMemTotal; size_t nMemUsed; size_t nMemFree; size_t nMemAvailable; size_t nMemBuffers; size_t nMemCached; }GFA_APPCTRL_SYSMEM, *LPGFA_APPCTRL_SYSMEM; typedef const GFA_APPCTRL_SYSMEM *LPCGFA_APPCTRL_SYSMEM; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_SYSINFO_PARTITION { bool valid; bool internal; int nDiskIdx; size_t nKiBPartSize; size_t nKiBSize; size_t nKiBFree; size_t nKiBUsed; char szFsLabel[GFA_APPCTRL_MAX_FS_LABEL_LENGTH]; char szFsType[GFA_APPCTRL_MAX_FS_TYPE_LENGTH]; char szFsVersion[GFA_APPCTRL_MAX_FS_VERSION_LENGTH]; char szDevNode[GFA_APPCTRL_MAX_DEV_NODE_LENGTH]; char szMntPoint[GFA_APPCTRL_MAX_MOUNT_POINT_LENGTH]; }GFA_SYSINFO_PARTITION, *LPGFA_SYSINFO_PARTITION; typedef const GFA_SYSINFO_PARTITION *LPCGFA_SYSINFO_PARTITION; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_SYSINFO_DISK { bool valid; bool internal; uint8_t nVendorID; uint8_t nProductID; char szDevNode[GFA_APPCTRL_MAX_DEV_NODE_LENGTH]; char szName[GFA_APPCTRL_MAX_DISK_NAME_LENGTH]; char szVendor[GFA_APPCTRL_MAX_DISK_VENDOR_NAME_LENGTH]; char szBus[GFA_APPCTRL_MAX_BUS_NAME_LENGTH]; unsigned int nPartCount; int aPartIdx[GFA_APPCTRL_MAX_PARTITIONS]; }GFA_SYSINFO_DISK, *LPGFA_SYSINFO_DISK; typedef const GFA_SYSINFO_DISK *LPCGFA_SYSINFO_DISK; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_SYSINFO_STORAGE_DEVICE_MAP { unsigned int nPartChangeMask; unsigned int nUpdateCookie; GFA_SYSINFO_DISK disks[GFA_APPCTRL_MAX_DISKS]; GFA_SYSINFO_PARTITION parts[GFA_APPCTRL_MAX_PARTITIONS]; }GFA_SYSINFO_STORAGE_DEVICE_MAP, *LPGFA_SYSINFO_STORAGE_DEVICE_MAP; typedef const GFA_SYSINFO_STORAGE_DEVICE_MAP *LPCGFA_SYSINFO_STORAGE_DEVICE_MAP; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_SYSINFO_SPI_ADC { float fVoltagePowerSupply; float fVoltageBackupBattery; float fVoltageSys; float fVoltageBattery; float fTemperatureBoard; float fTemperatureTiva; }GFA_SYSINFO_SPI_ADC, *LPGFA_SYSINFO_SPI_ADC; typedef const GFA_SYSINFO_SPI_ADC *LPCGFA_SYSINFO_SPI_ADC; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_SYSINFO_SPI { GFA_SYSINFO_SPI_ADC adc; unsigned int nUptimeSec; int nHwVersion; int nSwVersion; }GFA_SYSINFO_SPI, *LPGFA_SYSINFO_SPI; typedef const GFA_SYSINFO_SPI *LPCGFA_SYSINFO_SPI; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_MYSQL_SERVER { bool bRunning; bool bInnoDbFilePerTable; pid_t pid; time_t nUptimeSec; size_t nDiscUsageTotal; char szVersion[GFA_MYSQL_MAX_SVR_VERSION_LENGTH]; char szDataDir[GFA_MYSQL_MAX_DATADIR_LENGTH]; }GFA_MYSQL_SERVER, *LPGFA_MYSQL_SERVER; typedef const GFA_MYSQL_SERVER *LPCGFA_MYSQL_SERVER; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_MYSQL_RESOURCE { GFA_APPCTRL_APPTIMES at; GFA_APPCTRL_APPMEM am; }GFA_MYSQL_RESOURCE, *LPGFA_MYSQL_RESOURCE; typedef const GFA_MYSQL_RESOURCE *LPCGFA_MYSQL_RESOURCE; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_MYSQL_TABLE { char szName[GFA_MYSQL_MAX_TABLE_NAME_LENGTH]; char szEngine[GFA_MYSQL_MAX_ENGINE_NAME_LENGTH]; char szRowFormat[GFA_MYSQL_MAX_ROW_FORMAT_LENGTH]; char szCollation[GFA_MYSQL_MAX_COLLATION_LENGTH]; int nVersion; time_t nCreateTime; size_t nSizeTotal; }GFA_MYSQL_TABLE, *LPGFA_MYSQL_TABLE; typedef const GFA_MYSQL_TABLE *LPCGFA_MYSQL_TABLE; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_MYSQL_SCHEMA { size_t nSizeTotal; unsigned int nNumTables; char szName[GFA_MYSQL_MAX_DB_NAME_LENGTH]; GFA_MYSQL_TABLE tables[GFA_MYSQL_MAX_TABLES_PER_DATABASE]; }GFA_MYSQL_SCHEMA, *LPGFA_MYSQL_SCHEMA; typedef const GFA_MYSQL_SCHEMA *LPCGFA_MYSQL_SCHEMA; ///////////////////////////////////////////////////////////////////////////// typedef struct _GFA_SYSINFO_DATABASE { bool bIsInit; // fires GFA_APPCTRL_SYSEVENT_MYSQL_INIT_EVT unsigned int nNumDatabases; GFA_MYSQL_SERVER svr; // fires GFA_APPCTRL_SYSEVENT_MYSQL_SERVER_EVT GFA_MYSQL_RESOURCE res; // fires GFA_APPCTRL_SYSEVENT_MYSQL_RESOURCE_EVT GFA_MYSQL_SCHEMA dbs[GFA_MYSQL_MAX_DATABASES]; // fires GFA_APPCTRL_SYSEVENT_MYSQL_DATABASE_EVT }GFA_SYSINFO_DATABASE, *LPGFA_SYSINFO_DATABASE; typedef const GFA_SYSINFO_DATABASE *LPCGFA_SYSINFO_DATABASE; ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// HAPPCTRL GfaIpcAppCtrlAcquire (appid_t nAppID, const char *pszDisplayName, clock64_t nCycleIntvUs, clock64_t nMaxHeartbeatDelayUs); void GfaIpcAppCtrlRelease (HAPPCTRL hAC); appid_t GfaIpcAppCtrlGetRunningMask (HAPPCTRL hAC); HAPPINFO GfaIpcAppCtrlInfoUpdate (HAPPCTRL hAC, clock64_t nCurWorkingTime); GfaIpcAppStates GfaIpcAppCtrlGetState (HAPPCTRL hAC, appid_t nAppID); GfaIpcAppStates GfaIpcAppCtrlSetState (HAPPCTRL hAC, GfaIpcAppStates state); const char* GfaIpcAppCtrlGetDisplayName (HAPPCTRL hAC, appid_t nAppID, char *pszName, size_t nCChName); bool GfaIpcAppCtrlPresetDisplayName (HAPPCTRL hAC, appid_t nAppID, const char *pszName); bool GfaIpcAppCtrlSubscribeStateEvents (HAPPCTRL hAC, appid_t nAppMask); bool GfaIpcAppCtrlUnsubscribeStateEvents (HAPPCTRL hAC, appid_t nAppMask); appid_t GfaIpcAppCtrlGetPendingStateEvents (HAPPCTRL hAC); bool GfaIpcAppCtrlSendCtrlMsg (HAPPCTRL hAC, appid_t nAppID, ctrlmsg_t msg); ctrlmsg_t GfaIpcAppCtrlGetPendingCtrlMsg (HAPPCTRL hAC); clock64_t GfaIpcAppCtrlGetAppTimes (HAPPCTRL hAC, appid_t nAppID, LPGFA_APPCTRL_APPTIMES pat); bool GfaIpcAppCtrlGetAppMem (HAPPCTRL hAC, appid_t nAppID, LPGFA_APPCTRL_APPMEM pam); size_t GfaIpcAppCtrlGetAppSize (HAPPCTRL hAC, appid_t nAppID); bool GfaIpcAppCtrlSubscribeSysEvents (HAPPCTRL hAC, sysevt_t nEvtMask); bool GfaIpcAppCtrlUnsubscribeSysEvents (HAPPCTRL hAC, sysevt_t nEvtMask); sysevt_t GfaIpcAppCtrlGetPendingSysEvents (HAPPCTRL hAC); bool GfaIpcAppCtrlGetSysMem (HAPPCTRL hAC, LPGFA_APPCTRL_SYSMEM psm); bool GfaIpcAppCtrlGetSysSPI (HAPPCTRL hAC, LPGFA_SYSINFO_SPI pspi); int GfaIpcAppCtrlGetNextDiskAdded (HAPPCTRL hAC, LPGFA_SYSINFO_DISK pDisk); int GfaIpcAppCtrlGetNextDiskRemoved (HAPPCTRL hAC, LPGFA_SYSINFO_DISK pDisk); int GfaIpcAppCtrlGetNextPartitionAdded (HAPPCTRL hAC, LPGFA_SYSINFO_PARTITION pPart); int GfaIpcAppCtrlGetNextPartitionRemoved(HAPPCTRL hAC, LPGFA_SYSINFO_PARTITION pPart); int GfaIpcAppCtrlGetNextMountAdded (HAPPCTRL hAC, LPGFA_SYSINFO_PARTITION pPart); int GfaIpcAppCtrlGetNextMountRemoved (HAPPCTRL hAC, LPGFA_SYSINFO_PARTITION pPart); bool GfaIpcAppCtrlGetStgDevMap (HAPPCTRL hAC, LPGFA_SYSINFO_STORAGE_DEVICE_MAP pStgDevMap); bool GfaIpcAppCtrlGetBootFromEmmc (HAPPCTRL hAC, bool *pbBootFromEmmc); bool GfaIpcAppCtrlGetDbInfo (HAPPCTRL hAC, LPGFA_SYSINFO_DATABASE psdb); ///////////////////////////////////////////////////////////////////////////// bool GfaIpcAppCtrlKillApp (HAPPCTRL hAC, appid_t nAppID); bool GfaIpcAppCtrlSetLockUnlockFunctions (HAPPCTRL hAC, PFN_GFA_IPC_LOCK_SHM pfnLockSHM, PFN_GFA_IPC_UNLOCK_SHM pfnUnlockSHM); bool GfaIpcAppCtrlSysInfoUpdateStgDevInfo(HAPPCTRL hAC); ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// ctrlmsg_t GfaIpcAppCtrlGetNextCtrlMsg (HAPPINFO hAI); appid_t GfaIpcAppCtrlGetNextStateEvtSrc (HAPPINFO hAI); sysevt_t GfaIpcAppCtrlGetNextSysEvt (HAPPINFO hAI); ///////////////////////////////////////////////////////////////////////////// const char* GfaIpcAppCtrlGetStateText (GfaIpcAppStates state); ///////////////////////////////////////////////////////////////////////////// #ifdef __cplusplus } #endif // __cplusplus #endif // !defined(AGD_GFAIPC_H__6126047E_C1B1_4ACE_BD49_8780C7E5E068__INCLUDED_)