]> rtime.felk.cvut.cz Git - frescor/frsh-include.git/blobdiff - frsh_error.h
Update transaction API
[frescor/frsh-include.git] / frsh_error.h
index d617ce2019f6198d0bb666d3d48be609d30e4811..47e4430e846f7ed0783ee57765086796a224a8c0 100644 (file)
@@ -1,5 +1,5 @@
 // -----------------------------------------------------------------------
-//  Copyright (C) 2006 - 2008 FRESCOR consortium partners:
+//  Copyright (C) 2006 - 2009 FRESCOR consortium partners:
 //
 //    Universidad de Cantabria,              SPAIN
 //    University of York,                    UK
@@ -61,7 +61,7 @@
 //  **////  /**///**  ////////** /**//////**
 //  **      /**  //**        /** /**     /**
 //  **      /**   //** ********  /**     /**
-//  //       //     // ////////   //      // 
+//  //       //     // ////////   //      //
 //
 // FRSH(FRescor ScHeduler), pronounced "fresh"
 //==============================================
 #ifndef        FRSH_ERROR_H_
 #define        FRSH_ERROR_H_
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * @file frsh_error.h
  **/
 #define FRSH_ERR_CONTRACT_TYPE_NOT_COMPATIBLE    0x02004025
 #define FRSH_ERR_CAPACITY_NOT_DECREASING         0x02004026
 #define FRSH_ERR_CONTRACT_LABEL_UNKNOWN          0x02004027
+#define FRSH_ERR_OUT_OF_BUDGET                                  0x02004028
+#define FRSH_ERR_ALREADY_IN_FRSH                        0x02004029
+
+#define FRSH_ERR_LAST_VALUE                      0x02004030
 
-#define FRSH_ERR_LAST_VALUE                      0x02004028
 
-#define ERROR(nn,ss) do {if(nn>FRSH_ERR_BASE_VALUE) my_frsh_strerror(nn, ss); else perror(ss); exit (nn);} while (0)
 
+#ifdef AQuoSA
+#define my_frsh_perror(nn,ss) do { errno = nn; perror(ss); } while(0)
+#else
+#define my_frsh_perror(nn,ss) do { perror(ss); } while(0)
+#endif
 
+#define ERROR(nn,ss) do {if(nn>FRSH_ERR_BASE_VALUE) my_frsh_strerror(nn, ss); else { my_frsh_perror(nn, ss); } exit (nn);} while (0)
 
 
 int frsh_strerror (int error, char *message, size_t size);
 void my_frsh_strerror(int error, char *sss);
 
-
 /**
  * This str_helper is needed to ensure argument expansion,
  * see http://www.iar.com/p180591/p180591_eng.php
@@ -158,9 +169,9 @@ void my_frsh_strerror(int error, char *sss);
                if( (_nn_)>FRSH_ERR_BASE_VALUE ) {      \
                        my_frsh_strerror( (_nn_), error_string);        \
                } else {                                \
-                       perror(error_string);                   \
+                       my_frsh_perror(_nn_, error_string);    \
                }                                       \
-} while(0) 
+} while(0)
 
 
 
@@ -206,7 +217,7 @@ void my_frsh_strerror(int error, char *sss);
  * terror (int) needs to be visible in the point of call.
  *
  * @param funccall Code to execute that should return 0 in a non error
- *                 case. 
+ *                 case.
  **/
 #define PRW(funccall)  do { \
   if ( (terror = funccall ) != 0) \
@@ -227,7 +238,7 @@ void my_frsh_strerror(int error, char *sss);
  * terror (int) needs to be visible in the point of call.
  *
  * @param funccall Code to execute that should return 0 in a non error
- *                 case. 
+ *                 case.
  **/
 #define PXW(funccall)  do { \
   if ( (terror = funccall ) != 0) \
@@ -258,4 +269,9 @@ void my_frsh_strerror(int error, char *sss);
 
 /*}*/
 
+#ifdef __cplusplus
+}
+#endif
+
+
 #endif             /* !FRSH_ERROR_H_ */