void GetFailStat(struct XFails *Now, char *FName, int rnum) { DEBUG2("->GetFailStat(struct XFails *Now,char *FName,int rnum %d)", rnum); int i; FILE *fin; int32_t count; struct Fdt { char Code[6]; int32_t offset; int16_t size; } Pul; fin = sOpen("FAILS.CDR", "rb", 0); count = 44; fread(&count, sizeof count, 1, fin); // never written to file Swap32bit(count); fread(&Pul, sizeof Pul, 1, fin); Swap32bit(Pul.offset); Swap16bit(Pul.size); i = 0; while (xstrncasecmp(Pul.Code, FName, 4) != 0 && i < count) { fread(&Pul, sizeof Pul, 1, fin); Swap32bit(Pul.offset); Swap16bit(Pul.size); i++; } if (i == count) { fclose(fin); return; } fseek(fin, Pul.offset, SEEK_SET); if (rnum < 0) { // Unmanned portion do { fread(Now, sizeof(struct XFails), 1, fin); Swap32bit(Now->per); // Only need to swap this one since we're checking only that } while (Now->per != rnum); } else { do { fread(Now, sizeof(struct XFails), 1, fin); Swap32bit(Now->per); Swap16bit(Now->code); Swap16bit(Now->val); Swap16bit(Now->xtra); Swap16bit(Now->fail); } while (Now->per <= rnum); }; fclose(fin); DEBUG1("<-GetFailStat()"); }
static void GetBoardRunningTime(PRWValue pBV) { if (gECDev.Flag & EC_F_CHIP_EXIST) { pBV->Value = Swap32bit(gECDev.BoardInfo.dwRunningTimeCounter); } else { pBV->err = SUSI_STATUS_UNSUPPORTED; pBV->Value = 0; } }
static void GetBoardBootCounter(PRWValue pBV) { if (gECDev.Flag & EC_F_CHIP_EXIST) { pBV->Value = Swap32bit(gECDev.BoardInfo.dwPowerOnCounter); } else { pBV->err = SUSI_STATUS_UNSUPPORTED; pBV->Value = 0; } }