#include #include #include #include #include #include #include #include #include static void sensor_get_fru_supermicro(MchData mchData, Sensor sens) { /* Supermicro does not use FRU device locator records, so no means to read a FRU ID * Associate all Supermicro sensors with single FRU, arbitrarily choose...0? */ sens->fruId = sens->fruIndex = 0; return; } /* Assign FRU ID of 0 to all FRUs */ static void assign_fru_lkup_supermicro(MchData mchData) { MchSys mchSys = mchData->mchSys; uint8_t i; int dbg = MCH_DBG( mchStat[mchData->mchSess->instance] ); printf("******** enterassign_fru_lkup_supermicro \n"); for ( i = 0; i < mchSys->fruCount; i++ ) { mchSys->fruLkup[i] = 0;\ if ( dbg >= MCH_DBG_MED ) printf("assign_fru_lkup_supermicro: FRU index %i assigned ID of 0\n", i); } } MchCbRec drvMchSupermicroCb = { assign_site_info: 0, assign_fru_lkup: assign_fru_lkup_supermicro, fru_data_suppl: 0, sensor_get_fru: sensor_get_fru_supermicro, get_chassis_status: mchMsgGetChassisStatus }; static void drvMchSupermicroRegistrar(void) { registryAdd( (void*)mchCbRegistryId, "drvMchSupermicroCb", &drvMchSupermicroCb ); } epicsExportRegistrar(drvMchSupermicroRegistrar);