00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #ifndef __DRMAA__ERROR_H
00028 #define __DRMAA__ERROR_H
00029
00030 #ifdef HAVE_CONFIG_H
00031 # include <pbs_config.h>
00032 #endif
00033
00034 #include <stddef.h>
00035
00036
00037 int drmaa_get_errno_error( char *error_diagnosis, size_t error_diag_len );
00038 int drmaa_get_drmaa_error( char *error_diagnosis, size_t error_diag_len,
00039 int error_code );
00040 int drmaa_get_pbs_error( char *error_diagnosis, size_t error_diag_len );
00041
00042 int drmaa_map_pbs_error( int pbs_errcode );
00043
00044 void drmaa_log( const char *fmt, ... )
00045 __attribute__(( format( printf, 1, 2 ) ));
00046
00047
00048 #if DRMAA_DEBUG
00049 # define DEBUG( args ) do{ drmaa_log args ; }while(0)
00050 #else
00051 # define DEBUG( args )
00052 #endif
00053
00054 #define STORE_ERRNO_MSG() \
00055 do{ drmaa_get_errno_error( errmsg, errlen ); }while(0)
00056
00057 #define RAISE_ERRNO( retcode ) do { \
00058 STORE_ERRNO_MSG(); \
00059 return retcode; \
00060 } while(0)
00061
00062 #define SET_DRMAA_ERROR( retcode ) \
00063 do{ drmaa_get_drmaa_error( errmsg, errlen, (retcode) ); } while(0)
00064
00065 #define RAISE_DRMAA( retcode ) do { \
00066 SET_DRMAA_ERROR( retcode ); \
00067 return retcode; \
00068 } while(0)
00069
00070 #define RAISE_NO_MEMORY() \
00071 RAISE_DRMAA( DRMAA_ERRNO_NO_MEMORY )
00072
00073 #define RAISE_PBS() \
00074 do{ return drmaa_get_pbs_error( errmsg, errlen ); } while(0)
00075
00076 #define SET_PBS_ERROR( rc_var ) \
00077 do{ (rc_var) = drmaa_get_pbs_error( errmsg, errlen ); } while(0)
00078
00079
00080 #endif
00081