.
"FIFO Not Empty",
"FIFO Timeout",
"FIFO Error, invalid H0 header(s)",
- "FIFO Error, invalid sequenze-number",
+ "FIFO Error, invalid sequenze",
"FIFO Error, invalid read-data-mode",
- "FIFO Broken-Package",
- "FIFO Invalid-Content",
+ "FIFO Incomplete Package",
+ "FIFO Invalid Header-Type",
+ "FIFO Termination-Package missing",
"FAILED WAIT_IS_VALID",
"FAILED WAIT_IS_NOT_VALID",
"User-Buffer Overflow",
"Invalid data-length give by Header"
};
- if (errno < 22) {
+ if (errno < 23) {
return errorstring[errno];
} else {
return "Unknown Errno";
TRB_FIFO_HEADERS = 4,
TRB_FIFO_SEQUENZ = 5,
TRB_FIFO_INVALID_MODE = 6,
- TRB_FIFO_BROKEN_PACKAGE = 7,
- TRB_FIFO_INVALID_CONTENT = 8,
- TRB_FAILED_WAIT_IS_VALID = 9,
- TRB_FAILED_WAIT_IS_NOT_VALID = 10,
- TRB_USER_BUFFER_OVF = 11,
- TRB_INVALID_CHANNEL = 12,
- TRB_INVALID_PKG_NUMBER = 13,
- TRB_STATUS_ERROR = 14,
- TRB_INVALID_ADDRESS = 15,
- TRB_INVALID_LENGTH = 16,
- TRB_ENDPOINT_NOT_REACHED = 17,
- TRB_DMA_UNAVAILABLE = 18,
- TRB_DMA_TIMEOUT = 19,
- TRB_READMEM_INVALID_SIZE = 20,
- TRB_HDR_DLEN = 21
+ TRB_FIFO_INCOMPLETE_PACKAGE = 7,
+ TRB_FIFO_INVALID_HEADER = 8,
+ TRB_FIFO_MISSING_TERM_HEADER = 9,
+ TRB_FAILED_WAIT_IS_VALID = 10,
+ TRB_FAILED_WAIT_IS_NOT_VALID = 11,
+ TRB_USER_BUFFER_OVF = 12,
+ TRB_INVALID_CHANNEL = 13,
+ TRB_INVALID_PKG_NUMBER = 14,
+ TRB_STATUS_ERROR = 15,
+ TRB_INVALID_ADDRESS = 16,
+ TRB_INVALID_LENGTH = 17,
+ TRB_ENDPOINT_NOT_REACHED = 18,
+ TRB_DMA_UNAVAILABLE = 19,
+ TRB_DMA_TIMEOUT = 20,
+ TRB_READMEM_INVALID_SIZE = 21,
+ TRB_HDR_DLEN = 22,
+
} TRB_ERROR;
extern int trb_errno;
} else {
/* Error: invalid buffer content, flush FIFO-BUFFER and exit */
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_BROKEN_PACKAGE;
+ trb_errno = TRB_FIFO_INCOMPLETE_PACKAGE;
return -1;
}
} else {
(counter - 1) % 2)) {
/* Error: invalid sequence (not 0, 1, .), flush FIFO-BUFFER and exit */
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_BROKEN_PACKAGE;
+ trb_errno = TRB_FIFO_SEQUENZ;
return -1;
}
}
if (packageCtr == 0) {
if (!((headerType == HEADER_HDR) | (headerType == HEADER_TRM))) {
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
}
case HEADER_HDR:
if ((packageCtr - endPointCtr * 2) != 0) {
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
if (dataCtr < dsize) {
case HEADER_DAT:
if ((packageCtr - endPointCtr * 2) != 1) {
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
if (dataCtr < dsize) {
default:
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
} else {
trb_fifo_flush(channel);
trb_errno = TRB_USER_BUFFER_OVF;
- fprintf(stderr, "HEADER\n");
return -1;
}
break;
default:
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
}
case HEADER_TRM:
if ((packageCtr > 0) && (dataCtr != len)) {
/* Error invalid length */
+ trb_fifo_flush(channel);
trb_errno = TRB_HDR_DLEN;
return -1;
}
case HEADER_HDR:
if (packageCtr != 0) {
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
len = (unsigned int)package.F2;
default:
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
}
case HEADER_HDR:
if ((packageCtr - endPointCtr * 3) != 0) {
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
sourceAddress = (uint32_t)package.F0;
default:
trb_fifo_flush(channel);
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_INVALID_HEADER;
return -1;
}
}
if (timeout >= MAX_TIME_OUT) {
trb_fifo_flush(channel);
trb_errno = TRB_FIFO_TIMEOUT;
- fprintf(stderr,"timeout\n");
return -1;
}
}
if (trb_lazy == 0) {
/* Check whether last package is complete */
if ((packageCtr >= 0) && (counter != 5)) {
- trb_errno = TRB_FIFO_BROKEN_PACKAGE;
+ trb_errno = TRB_FIFO_INCOMPLETE_PACKAGE;
return -1;
}
/* Check whether last package is a TERMINATION Package */
if (headerType != HEADER_TRM) {
- trb_errno = TRB_FIFO_INVALID_CONTENT;
+ trb_errno = TRB_FIFO_MISSING_TERM_HEADER;
return -1;
}
return -1;
}
-
return 0;
}