]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
new errors, some bug fixes
authorhadaq <hadaq>
Tue, 14 Jul 2009 22:35:25 +0000 (22:35 +0000)
committerhadaq <hadaq>
Tue, 14 Jul 2009 22:35:25 +0000 (22:35 +0000)
.

libtrbnet/trberror.c
libtrbnet/trberror.h
libtrbnet/trbnet.c

index 4d8a88bf67793282c057ddba2be5771ea0dbf041..0a79e91fbea1b847676dc2866bb53d7f031f23b6 100644 (file)
@@ -32,10 +32,11 @@ const char* trb_strerror(int errno)
     "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",
@@ -51,7 +52,7 @@ const char* trb_strerror(int errno)
     "Invalid data-length give by Header"
   };
   
-  if (errno < 22) {
+  if (errno < 23) {
     return errorstring[errno];
   } else {
     return "Unknown Errno";
index 294b81851ac23ea840fa3b7bc353a3fac469a097..9852160f2b8a88e3bd62685c88b77e08ce444308 100644 (file)
@@ -11,21 +11,23 @@ typedef enum {
   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;
index 7ea9b7b4463fad0c41d4058b57981b0aa2cad55a..77ccc4fd9bcfff1d9a2314f6624cc8fb0c5830a9 100644 (file)
@@ -399,7 +399,7 @@ static int trb_fifo_read(uint8_t channel,
       } 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 {
@@ -409,7 +409,7 @@ static int trb_fifo_read(uint8_t channel,
            (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;
       }
     }
@@ -460,7 +460,7 @@ static int trb_fifo_read(uint8_t channel,
         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;
           }
         }
@@ -490,7 +490,7 @@ static int trb_fifo_read(uint8_t channel,
         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) {
@@ -505,7 +505,7 @@ static int trb_fifo_read(uint8_t channel,
         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) {
@@ -524,7 +524,7 @@ static int trb_fifo_read(uint8_t channel,
 
         default:
           trb_fifo_flush(channel);
-          trb_errno = TRB_FIFO_INVALID_CONTENT;
+          trb_errno = TRB_FIFO_INVALID_HEADER;
           return -1;
         }
 
@@ -547,7 +547,6 @@ static int trb_fifo_read(uint8_t channel,
             } else {
               trb_fifo_flush(channel);
               trb_errno = TRB_USER_BUFFER_OVF;
-              fprintf(stderr, "HEADER\n");
               return -1;
             }
             break;
@@ -572,7 +571,7 @@ static int trb_fifo_read(uint8_t channel,
 
           default:
             trb_fifo_flush(channel);
-            trb_errno = TRB_FIFO_INVALID_CONTENT;
+            trb_errno = TRB_FIFO_INVALID_HEADER;
             return -1;
           }
         }
@@ -598,6 +597,7 @@ static int trb_fifo_read(uint8_t channel,
           case HEADER_TRM:
             if ((packageCtr > 0) && (dataCtr != len)) {
               /* Error invalid length */
+              trb_fifo_flush(channel);
               trb_errno = TRB_HDR_DLEN;
               return -1;
             }
@@ -606,7 +606,7 @@ static int trb_fifo_read(uint8_t channel,
           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;
@@ -630,7 +630,7 @@ static int trb_fifo_read(uint8_t channel,
 
           default:
             trb_fifo_flush(channel);
-            trb_errno = TRB_FIFO_INVALID_CONTENT;
+            trb_errno = TRB_FIFO_INVALID_HEADER;
             return -1;
           }
         }
@@ -646,7 +646,7 @@ static int trb_fifo_read(uint8_t channel,
           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;
@@ -681,7 +681,7 @@ static int trb_fifo_read(uint8_t channel,
 
           default:
             trb_fifo_flush(channel);
-            trb_errno = TRB_FIFO_INVALID_CONTENT;
+            trb_errno = TRB_FIFO_INVALID_HEADER;
             return -1;
           }
         }
@@ -728,7 +728,6 @@ static int trb_fifo_read(uint8_t channel,
       if (timeout >= MAX_TIME_OUT) {
        trb_fifo_flush(channel);
        trb_errno = TRB_FIFO_TIMEOUT;
-       fprintf(stderr,"timeout\n");
        return -1;
       }
     }
@@ -743,13 +742,13 @@ static int trb_fifo_read(uint8_t channel,
   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;
     }
 
@@ -1093,7 +1092,6 @@ int trb_set_address(uint64_t uid,
     return -1;
   }
 
-
   return 0;
 }