mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 05:17:13 +02:00
wip
This commit is contained in:
@ -10,42 +10,41 @@ int loadPatternFile(char *patFname, char *errMessage);
|
|||||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
void initializePatternWord();
|
void initializePatternWord();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
uint64_t pattern_readIOControl();
|
uint64_t validate_readPatternIOControl();
|
||||||
int pattern_writeIOControl(char *message, uint64_t arg);
|
int validate_writePatternIOControl(char *message, uint64_t arg);
|
||||||
void writePatternIOControl(uint64_t word);
|
void writePatternIOControl(uint64_t word);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int pattern_readWord(char *message, int addr, uint64_t *word);
|
int validate_readPatternWord(char *message, int addr, uint64_t *word);
|
||||||
uint64_t readPatternWord(int addr);
|
uint64_t readPatternWord(int addr);
|
||||||
int pattern_writeWord(char *message, int addr, uint64_t word);
|
int validate_writePatternWord(char *message, int addr, uint64_t word);
|
||||||
void writePatternWord(int addr, uint64_t word);
|
void writePatternWord(int addr, uint64_t word);
|
||||||
|
|
||||||
int pattern_getWaitAddresses(char *message, int level, int *addr);
|
int validate_getPatternWaitAddresses(char *message, int level, int *addr);
|
||||||
int getPatternWaitAddress(int level);
|
int getPatternWaitAddress(int level);
|
||||||
int pattern_setWaitAddresses(char *message, int level, int addr);
|
int validate_setPatternWaitAddresses(char *message, int level, int addr);
|
||||||
void setPatternWaitAddress(int level, int addr);
|
void setPatternWaitAddress(int level, int addr);
|
||||||
|
|
||||||
int pattern_getWaitTime(char *message, int level, uint64_t *waittime);
|
int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime);
|
||||||
uint64_t getPatternWaitTime(int level);
|
uint64_t getPatternWaitTime(int level);
|
||||||
int pattern_setWaitTime(char *message, int level, uint64_t waittime);
|
int validate_setPatternWaitTime(char *message, int level, uint64_t waittime);
|
||||||
void setPatternWaitTime(int level, uint64_t t);
|
void setPatternWaitTime(int level, uint64_t t);
|
||||||
|
|
||||||
int pattern_getLoopCycles(char *message, int level, int *numLoops);
|
int validate_getPatternLoopCycles(char *message, int level, int *numLoops);
|
||||||
int getPatternLoopCycles(int level);
|
int getPatternLoopCycles(int level);
|
||||||
int pattern_setLoopCycles(char *message, int level, int numLoops);
|
int validate_setPatternLoopCycles(char *message, int level, int numLoops);
|
||||||
void setPatternLoopCycles(int level, int nLoop);
|
void setPatternLoopCycles(int level, int nLoop);
|
||||||
|
|
||||||
void pattern_getLoopLimits(int *startAddr, int *stopAddr);
|
void validate_getPatternLoopLimits(int *startAddr, int *stopAddr);
|
||||||
int pattern_setLoopLimits(char *message, int startAddr, int stopAddr);
|
int validate_setPatternLoopLimits(char *message, int startAddr, int stopAddr);
|
||||||
void setPatternLoopLimits(int startAddr, int stopAddr);
|
void setPatternLoopLimits(int startAddr, int stopAddr);
|
||||||
|
|
||||||
int pattern_getLoopAddresses(char *message, int level, int *startAddr,
|
int validate_getPatternLoopAddresses(char *message, int level, int *startAddr,
|
||||||
int *stopAddr);
|
int *stopAddr);
|
||||||
void getPatternLoopAddresses(int level, int *startAddr, int *stopAddr);
|
void getPatternLoopAddresses(int level, int *startAddr, int *stopAddr);
|
||||||
int pattern_setLoopAddresses(char *message, int level, int startAddr,
|
int validate_setPatternLoopAddresses(char *message, int level, int startAddr,
|
||||||
int stopAddr);
|
int stopAddr);
|
||||||
void setPatternLoopAddresses(int level, int startAddr, int stopAddr);
|
void setPatternLoopAddresses(int level, int startAddr, int stopAddr);
|
||||||
|
|
||||||
void setPatternMask(uint64_t mask);
|
void setPatternMask(uint64_t mask);
|
||||||
|
@ -36,7 +36,7 @@ int loadPattern(char *message, enum TLogLevel printLevel,
|
|||||||
LOG(logDEBUG5, ("Setting Pattern Word (addr:0x%x, word:0x%llx)\n",
|
LOG(logDEBUG5, ("Setting Pattern Word (addr:0x%x, word:0x%llx)\n",
|
||||||
i, (long long int)pat->word[i]));
|
i, (long long int)pat->word[i]));
|
||||||
}
|
}
|
||||||
ret = pattern_writeWord(message, i, pat->word[i]);
|
ret = validate_writePatternWord(message, i, pat->word[i]);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -44,37 +44,38 @@ int loadPattern(char *message, enum TLogLevel printLevel,
|
|||||||
// iocontrol
|
// iocontrol
|
||||||
#ifndef MYTHEN3D
|
#ifndef MYTHEN3D
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
ret = pattern_writeIOControl(message, pat->ioctrl);
|
ret = validate_writePatternIOControl(message, pat->ioctrl);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// limits
|
// limits
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
ret = pattern_setLoopLimits(message, pat->limits[0], pat->limits[1]);
|
ret = validate_setPatternLoopLimits(message, pat->limits[0],
|
||||||
|
pat->limits[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
for (int i = 0; i <= 2; ++i) {
|
for (int i = 0; i <= 2; ++i) {
|
||||||
// loop addr
|
// loop addr
|
||||||
ret = pattern_setLoopAddresses(message, i, pat->loop[i * 2 + 0],
|
ret = validate_setPatternLoopAddresses(
|
||||||
pat->loop[i * 2 + 1]);
|
message, i, pat->loop[i * 2 + 0], pat->loop[i * 2 + 1]);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// num loops
|
// num loops
|
||||||
ret = pattern_setLoopCycles(message, i, pat->nloop[i]);
|
ret = validate_setPatternLoopCycles(message, i, pat->nloop[i]);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// wait addr
|
// wait addr
|
||||||
ret = pattern_setWaitAddresses(message, i, pat->wait[i]);
|
ret = validate_setPatternWaitAddresses(message, i, pat->wait[i]);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// wait time
|
// wait time
|
||||||
ret = pattern_setWaitTime(message, i, pat->waittime[i]);
|
ret = validate_setPatternWaitTime(message, i, pat->waittime[i]);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -94,7 +95,7 @@ int getPattern(char *message, patternParameters *pat) {
|
|||||||
int retval1 = -1, retval2 = -1;
|
int retval1 = -1, retval2 = -1;
|
||||||
// words
|
// words
|
||||||
for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) {
|
for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) {
|
||||||
ret = pattern_readWord(message, i, &retval64);
|
ret = validate_readPatternWord(message, i, &retval64);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -103,19 +104,20 @@ int getPattern(char *message, patternParameters *pat) {
|
|||||||
// iocontrol
|
// iocontrol
|
||||||
#ifndef MYTHEN3D
|
#ifndef MYTHEN3D
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
pattern_readIOControl();
|
validate_readPatternIOControl();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// limits
|
// limits
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
pattern_getLoopLimits(&retval1, &retval2);
|
validate_getPatternLoopLimits(&retval1, &retval2);
|
||||||
pat->limits[0] = retval1;
|
pat->limits[0] = retval1;
|
||||||
pat->limits[1] = retval2;
|
pat->limits[1] = retval2;
|
||||||
}
|
}
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
for (int i = 0; i <= 2; ++i) {
|
for (int i = 0; i <= 2; ++i) {
|
||||||
// loop addr
|
// loop addr
|
||||||
ret = pattern_getLoopAddresses(message, i, &retval1, &retval2);
|
ret = validate_getPatternLoopAddresses(message, i, &retval1,
|
||||||
|
&retval2);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -123,21 +125,21 @@ int getPattern(char *message, patternParameters *pat) {
|
|||||||
pat->loop[i * 2 + 1] = retval2;
|
pat->loop[i * 2 + 1] = retval2;
|
||||||
|
|
||||||
// num loops
|
// num loops
|
||||||
ret = pattern_getLoopCycles(message, i, &retval1);
|
ret = validate_getPatternLoopCycles(message, i, &retval1);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
pat->nloop[i] = retval1;
|
pat->nloop[i] = retval1;
|
||||||
|
|
||||||
// wait addr
|
// wait addr
|
||||||
ret = pattern_getWaitAddresses(message, i, &retval1);
|
ret = validate_getPatternWaitAddresses(message, i, &retval1);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
pat->wait[i] = retval1;
|
pat->wait[i] = retval1;
|
||||||
|
|
||||||
// wait time
|
// wait time
|
||||||
ret = pattern_getWaitTime(message, i, &retval64);
|
ret = validate_getPatternWaitTime(message, i, &retval64);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -228,7 +230,7 @@ int loadPatternFile(char *patFname, char *errMessage) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pattern_writeWord(temp, addr, word) == FAIL) {
|
if (validate_writePatternWord(temp, addr, word) == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -248,7 +250,7 @@ int loadPatternFile(char *patFname, char *errMessage) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pattern_writeIOControl(temp, arg) == FAIL) {
|
if (validate_writePatternIOControl(temp, arg) == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -266,7 +268,8 @@ int loadPatternFile(char *patFname, char *errMessage) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pattern_setLoopLimits(temp, startAddr, stopAddr) == FAIL) {
|
if (validate_setPatternLoopLimits(temp, startAddr, stopAddr) ==
|
||||||
|
FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -295,8 +298,8 @@ int loadPatternFile(char *patFname, char *errMessage) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pattern_setLoopAddresses(temp, level, startAddr, stopAddr) ==
|
if (validate_setPatternLoopAddresses(temp, level, startAddr,
|
||||||
FAIL) {
|
stopAddr) == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -323,7 +326,7 @@ int loadPatternFile(char *patFname, char *errMessage) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pattern_setLoopCycles(temp, level, numLoops) == FAIL) {
|
if (validate_setPatternLoopCycles(temp, level, numLoops) == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -350,7 +353,7 @@ int loadPatternFile(char *patFname, char *errMessage) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pattern_setWaitAddresses(temp, level, addr) == FAIL) {
|
if (validate_setPatternWaitAddresses(temp, level, addr) == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -383,7 +386,7 @@ int loadPatternFile(char *patFname, char *errMessage) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pattern_setWaitTime(temp, level, waittime) == FAIL) {
|
if (validate_setPatternWaitTime(temp, level, waittime) == FAIL) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -409,15 +412,15 @@ void initializePatternWord() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint64_t pattern_readIOControl() {
|
uint64_t validate_readPatternIOControl() {
|
||||||
return get64BitReg(PATTERN_IO_CNTRL_LSB_REG, PATTERN_IO_CNTRL_MSB_REG);
|
return get64BitReg(PATTERN_IO_CNTRL_LSB_REG, PATTERN_IO_CNTRL_MSB_REG);
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_writeIOControl(char *message, uint64_t arg) {
|
int validate_writePatternIOControl(char *message, uint64_t arg) {
|
||||||
writePatternIOControl(arg);
|
writePatternIOControl(arg);
|
||||||
|
|
||||||
// validate result
|
// validate result
|
||||||
uint64_t retval = pattern_readIOControl();
|
uint64_t retval = validate_readPatternIOControl();
|
||||||
LOG(logDEBUG1,
|
LOG(logDEBUG1,
|
||||||
("Pattern IO Control retval: 0x%llx\n", (long long int)retval));
|
("Pattern IO Control retval: 0x%llx\n", (long long int)retval));
|
||||||
int ret = OK;
|
int ret = OK;
|
||||||
@ -432,7 +435,7 @@ void writePatternIOControl(uint64_t word) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int pattern_readWord(char *message, int addr, uint64_t *word) {
|
int validate_readPatternWord(char *message, int addr, uint64_t *word) {
|
||||||
// validate input
|
// validate input
|
||||||
if (addr < 0 || addr >= MAX_PATTERN_LENGTH) {
|
if (addr < 0 || addr >= MAX_PATTERN_LENGTH) {
|
||||||
sprintf(message,
|
sprintf(message,
|
||||||
@ -476,7 +479,7 @@ uint64_t readPatternWord(int addr) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_writeWord(char *message, int addr, uint64_t word) {
|
int validate_writePatternWord(char *message, int addr, uint64_t word) {
|
||||||
// validate input
|
// validate input
|
||||||
if (addr < 0 || addr >= MAX_PATTERN_LENGTH) {
|
if (addr < 0 || addr >= MAX_PATTERN_LENGTH) {
|
||||||
sprintf(message,
|
sprintf(message,
|
||||||
@ -533,7 +536,7 @@ void writePatternWord(int addr, uint64_t word) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_getWaitAddresses(char *message, int level, int *addr) {
|
int validate_getPatternWaitAddresses(char *message, int level, int *addr) {
|
||||||
// validate input
|
// validate input
|
||||||
if (level < 0 || level > 2) {
|
if (level < 0 || level > 2) {
|
||||||
sprintf(message,
|
sprintf(message,
|
||||||
@ -561,7 +564,7 @@ int getPatternWaitAddress(int level) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_setWaitAddresses(char *message, int level, int addr) {
|
int validate_setPatternWaitAddresses(char *message, int level, int addr) {
|
||||||
// validate input
|
// validate input
|
||||||
if (level < 0 || level > 2) {
|
if (level < 0 || level > 2) {
|
||||||
sprintf(message,
|
sprintf(message,
|
||||||
@ -617,7 +620,7 @@ void setPatternWaitAddress(int level, int addr) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_getWaitTime(char *message, int level, uint64_t *waittime) {
|
int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime) {
|
||||||
// validate input
|
// validate input
|
||||||
if (level < 0 || level > 2) {
|
if (level < 0 || level > 2) {
|
||||||
sprintf(message,
|
sprintf(message,
|
||||||
@ -645,7 +648,7 @@ uint64_t getPatternWaitTime(int level) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_setWaitTime(char *message, int level, uint64_t waittime) {
|
int validate_setPatternWaitTime(char *message, int level, uint64_t waittime) {
|
||||||
// validate input
|
// validate input
|
||||||
if (level < 0 || level > 2) {
|
if (level < 0 || level > 2) {
|
||||||
sprintf(message,
|
sprintf(message,
|
||||||
@ -694,7 +697,7 @@ void setPatternWaitTime(int level, uint64_t t) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_getLoopCycles(char *message, int level, int *numLoops) {
|
int validate_getPatternLoopCycles(char *message, int level, int *numLoops) {
|
||||||
// validate input
|
// validate input
|
||||||
if (level < 0 || level > 2) {
|
if (level < 0 || level > 2) {
|
||||||
sprintf(message,
|
sprintf(message,
|
||||||
@ -719,7 +722,7 @@ int getPatternLoopCycles(int level) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_setLoopCycles(char *message, int level, int numLoops) {
|
int validate_setPatternLoopCycles(char *message, int level, int numLoops) {
|
||||||
// validate input
|
// validate input
|
||||||
if (level < 0 || level > 2) {
|
if (level < 0 || level > 2) {
|
||||||
sprintf(message,
|
sprintf(message,
|
||||||
@ -768,14 +771,14 @@ void setPatternLoopCycles(int level, int nLoop) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void pattern_getLoopLimits(int *startAddr, int *stopAddr) {
|
void validate_getPatternLoopLimits(int *startAddr, int *stopAddr) {
|
||||||
*startAddr = ((bus_r(PATTERN_LIMIT_REG) & PATTERN_LIMIT_STRT_MSK) >>
|
*startAddr = ((bus_r(PATTERN_LIMIT_REG) & PATTERN_LIMIT_STRT_MSK) >>
|
||||||
PATTERN_LIMIT_STRT_OFST);
|
PATTERN_LIMIT_STRT_OFST);
|
||||||
*stopAddr = ((bus_r(PATTERN_LIMIT_REG) & PATTERN_LIMIT_STP_MSK) >>
|
*stopAddr = ((bus_r(PATTERN_LIMIT_REG) & PATTERN_LIMIT_STP_MSK) >>
|
||||||
PATTERN_LIMIT_STP_OFST);
|
PATTERN_LIMIT_STP_OFST);
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_setLoopLimits(char *message, int startAddr, int stopAddr) {
|
int validate_setPatternLoopLimits(char *message, int startAddr, int stopAddr) {
|
||||||
// validate input
|
// validate input
|
||||||
if (startAddr < 0 || startAddr >= MAX_PATTERN_LENGTH || stopAddr < 0 ||
|
if (startAddr < 0 || startAddr >= MAX_PATTERN_LENGTH || stopAddr < 0 ||
|
||||||
stopAddr >= MAX_PATTERN_LENGTH) {
|
stopAddr >= MAX_PATTERN_LENGTH) {
|
||||||
@ -791,7 +794,7 @@ int pattern_setLoopLimits(char *message, int startAddr, int stopAddr) {
|
|||||||
|
|
||||||
// validate result
|
// validate result
|
||||||
int r_startAddr = -1, r_stopAddr = -1;
|
int r_startAddr = -1, r_stopAddr = -1;
|
||||||
pattern_getLoopLimits(&r_startAddr, &r_stopAddr);
|
validate_getPatternLoopLimits(&r_startAddr, &r_stopAddr);
|
||||||
int ret = OK;
|
int ret = OK;
|
||||||
// start addr
|
// start addr
|
||||||
validate(&ret, message, startAddr, r_startAddr,
|
validate(&ret, message, startAddr, r_startAddr,
|
||||||
@ -818,8 +821,8 @@ void setPatternLoopLimits(int startAddr, int stopAddr) {
|
|||||||
((stopAddr << PATTERN_LIMIT_STP_OFST) & PATTERN_LIMIT_STP_MSK));
|
((stopAddr << PATTERN_LIMIT_STP_OFST) & PATTERN_LIMIT_STP_MSK));
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_getLoopAddresses(char *message, int level, int *startAddr,
|
int validate_getPatternLoopAddresses(char *message, int level, int *startAddr,
|
||||||
int *stopAddr) {
|
int *stopAddr) {
|
||||||
// validate input
|
// validate input
|
||||||
if (level < 0 || level > 2) {
|
if (level < 0 || level > 2) {
|
||||||
sprintf(
|
sprintf(
|
||||||
@ -864,8 +867,8 @@ void getPatternLoopAddresses(int level, int *startAddr, int *stopAddr) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int pattern_setLoopAddresses(char *message, int level, int startAddr,
|
int validate_setPatternLoopAddresses(char *message, int level, int startAddr,
|
||||||
int stopAddr) {
|
int stopAddr) {
|
||||||
// validate input
|
// validate input
|
||||||
if (level < 0 || level > 2) {
|
if (level < 0 || level > 2) {
|
||||||
sprintf(
|
sprintf(
|
||||||
|
@ -2970,9 +2970,9 @@ int set_pattern_io_control(int file_des) {
|
|||||||
("Setting Pattern IO Control to 0x%llx\n", (long long int)arg));
|
("Setting Pattern IO Control to 0x%llx\n", (long long int)arg));
|
||||||
if (((int64_t)arg == GET_FLAG) || (Server_VerifyLock() == OK)) {
|
if (((int64_t)arg == GET_FLAG) || (Server_VerifyLock() == OK)) {
|
||||||
if ((int64_t)arg != GET_FLAG) {
|
if ((int64_t)arg != GET_FLAG) {
|
||||||
ret = pattern_writeIOControl(mess, arg);
|
ret = validate_writePatternIOControl(mess, arg);
|
||||||
}
|
}
|
||||||
retval = pattern_readIOControl();
|
retval = validate_readPatternIOControl();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return Server_SendResult(file_des, INT64, &retval, sizeof(retval));
|
return Server_SendResult(file_des, INT64, &retval, sizeof(retval));
|
||||||
@ -2997,9 +2997,9 @@ int set_pattern_word(int file_des) {
|
|||||||
}
|
}
|
||||||
if (Server_VerifyLock() == OK) {
|
if (Server_VerifyLock() == OK) {
|
||||||
if (word != (uint64_t)-1) {
|
if (word != (uint64_t)-1) {
|
||||||
ret = pattern_writeWord(mess, addr, word);
|
ret = validate_writePatternWord(mess, addr, word);
|
||||||
} else {
|
} else {
|
||||||
ret = pattern_readWord(mess, addr, &retval);
|
ret = validate_readPatternWord(mess, addr, &retval);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -3029,21 +3029,21 @@ int set_pattern_loop_addresses(int file_des) {
|
|||||||
if (loopLevel == -1) {
|
if (loopLevel == -1) {
|
||||||
// set
|
// set
|
||||||
if (startAddr >= 0 && stopAddr >= 0) {
|
if (startAddr >= 0 && stopAddr >= 0) {
|
||||||
ret = pattern_setLoopLimits(mess, startAddr, stopAddr);
|
ret = validate_setPatternLoopLimits(mess, startAddr, stopAddr);
|
||||||
}
|
}
|
||||||
// get
|
// get
|
||||||
pattern_getLoopLimits(&retvals[0], &retvals[1]);
|
validate_getPatternLoopLimits(&retvals[0], &retvals[1]);
|
||||||
}
|
}
|
||||||
// loop addresses
|
// loop addresses
|
||||||
else {
|
else {
|
||||||
// set
|
// set
|
||||||
if (startAddr >= 0 && stopAddr >= 0) {
|
if (startAddr >= 0 && stopAddr >= 0) {
|
||||||
ret = pattern_setLoopAddresses(mess, loopLevel, startAddr,
|
ret = validate_setPatternLoopAddresses(mess, loopLevel, startAddr,
|
||||||
stopAddr);
|
stopAddr);
|
||||||
}
|
}
|
||||||
// get
|
// get
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
ret = pattern_getLoopAddresses(mess, loopLevel, &retvals[0],
|
ret = validate_getPatternLoopAddresses(mess, loopLevel, &retvals[0],
|
||||||
&retvals[1]);
|
&retvals[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3070,11 +3070,11 @@ int set_pattern_loop_cycles(int file_des) {
|
|||||||
if ((numLoops == GET_FLAG) || (Server_VerifyLock() == OK)) {
|
if ((numLoops == GET_FLAG) || (Server_VerifyLock() == OK)) {
|
||||||
// set
|
// set
|
||||||
if (numLoops != GET_FLAG) {
|
if (numLoops != GET_FLAG) {
|
||||||
ret = pattern_setLoopCycles(mess, loopLevel, numLoops);
|
ret = validate_setPatternLoopCycles(mess, loopLevel, numLoops);
|
||||||
}
|
}
|
||||||
// get
|
// get
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
ret = pattern_getLoopCycles(mess, loopLevel, &retval);
|
ret = validate_getPatternLoopCycles(mess, loopLevel, &retval);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -3099,11 +3099,11 @@ int set_pattern_wait_addr(int file_des) {
|
|||||||
if ((addr == GET_FLAG) || (Server_VerifyLock() == OK)) {
|
if ((addr == GET_FLAG) || (Server_VerifyLock() == OK)) {
|
||||||
// set
|
// set
|
||||||
if (addr != GET_FLAG) {
|
if (addr != GET_FLAG) {
|
||||||
ret = pattern_setWaitAddresses(mess, loopLevel, addr);
|
ret = validate_setPatternWaitAddresses(mess, loopLevel, addr);
|
||||||
}
|
}
|
||||||
// get
|
// get
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
ret = pattern_getWaitAddresses(mess, loopLevel, &retval);
|
ret = validate_getPatternWaitAddresses(mess, loopLevel, &retval);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -3128,11 +3128,11 @@ int set_pattern_wait_time(int file_des) {
|
|||||||
if (((int64_t)timeval == GET_FLAG) || (Server_VerifyLock() == OK)) {
|
if (((int64_t)timeval == GET_FLAG) || (Server_VerifyLock() == OK)) {
|
||||||
// set
|
// set
|
||||||
if ((int64_t)timeval != GET_FLAG) {
|
if ((int64_t)timeval != GET_FLAG) {
|
||||||
ret = pattern_setWaitTime(mess, loopLevel, timeval);
|
ret = validate_setPatternWaitTime(mess, loopLevel, timeval);
|
||||||
}
|
}
|
||||||
// get
|
// get
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
ret = pattern_getWaitTime(mess, loopLevel, &retval);
|
ret = validate_getPatternWaitTime(mess, loopLevel, &retval);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "sls/file_utils.h"
|
#include "sls/file_utils.h"
|
||||||
|
#include <iostream>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <iostream>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
TEST_CASE("Get size of empty file") {
|
TEST_CASE("Get size of empty file") {
|
||||||
char fname[] = "temfile_XXXXXX";
|
char fname[] = "temfile_XXXXXX";
|
||||||
int fh = mkstemp(fname);
|
|
||||||
std::ifstream ifs(fname);
|
std::ifstream ifs(fname);
|
||||||
auto size = sls::getFileSize(ifs);
|
auto size = sls::getFileSize(ifs);
|
||||||
REQUIRE(size == 0);
|
REQUIRE(size == 0);
|
||||||
@ -23,6 +22,5 @@ TEST_CASE("Get size of file with data") {
|
|||||||
std::ifstream ifs(fname);
|
std::ifstream ifs(fname);
|
||||||
auto size = sls::getFileSize(ifs);
|
auto size = sls::getFileSize(ifs);
|
||||||
REQUIRE(size == n_bytes);
|
REQUIRE(size == n_bytes);
|
||||||
REQUIRE(ifs.tellg() == 0); //getting size resets pos!
|
REQUIRE(ifs.tellg() == 0); // getting size resets pos!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user