|
torque
2.5.12
|
00001 /* $Id: drmaa.h,v 1.15 2006/09/08 18:18:08 ciesnik Exp $ */ 00052 #ifndef __DRMAA_H 00053 #define __DRMAA_H 00054 00055 #include <stddef.h> 00056 #include <stdio.h> 00057 00061 /* @{ */ 00062 00063 typedef struct drmaa_job_template_s drmaa_job_template_t; 00064 00065 typedef struct drmaa_attr_names_s drmaa_attr_names_t; 00066 00067 typedef struct drmaa_attr_values_s drmaa_attr_values_t; 00068 00069 typedef struct drmaa_job_ids_s drmaa_job_ids_t; 00070 00071 #define DRMAA_ATTR_BUFFER 1024 00072 #define DRMAA_CONTACT_BUFFER 1024 00073 #define DRMAA_DRM_SYSTEM_BUFFER 1024 00074 #define DRMAA_DRMAA_IMPL_BUFFER 1024 00075 #define DRMAA_ERROR_STRING_BUFFER 1024 00076 #define DRMAA_JOBNAME_BUFFER 1024 00077 #define DRMAA_SIGNAL_BUFFER 32 00078 00079 #define DRMAA_TIMEOUT_NO_WAIT 0 00080 #define DRMAA_TIMEOUT_WAIT_FOREVER -1 00081 #define DRMAA_PS_UNDETERMINED 0x00 00082 #define DRMAA_PS_QUEUED_ACTIVE 0x10 00083 #define DRMAA_PS_SYSTEM_ON_HOLD 0x11 00084 #define DRMAA_PS_USER_ON_HOLD 0x12 00085 #define DRMAA_PS_USER_SYSTEM_ON_HOLD 0x13 00086 #define DRMAA_PS_RUNNING 0x20 00087 #define DRMAA_PS_SYSTEM_SUSPENDED 0x21 00088 #define DRMAA_PS_USER_SUSPENDED 0x22 00089 #define DRMAA_PS_USER_SYSTEM_SUSPENDED 0x23 00090 #define DRMAA_PS_DONE 0x30 00091 #define DRMAA_PS_FAILED 0x40 00092 #define DRMAA_CONTROL_SUSPEND 0 00093 #define DRMAA_CONTROL_RESUME 1 00094 #define DRMAA_CONTROL_HOLD 2 00095 #define DRMAA_CONTROL_RELEASE 3 00096 #define DRMAA_CONTROL_TERMINATE 4 00097 #define DRMAA_JOB_IDS_SESSION_ALL "DRMAA_JOB_IDS_SESSION_ALL" 00098 #define DRMAA_JOB_IDS_SESSION_ANY "DRMAA_JOB_IDS_SESSION_ANY" 00099 00100 #define DRMAA_BLOCK_EMAIL "drmaa_block_email" 00101 #define DRMAA_DEADLINE_TIME "drmaa_deadline_time" 00102 #define DRMAA_DURATION_HLIMIT "drmaa_duration_hlimit" 00103 #define DRMAA_DURATION_SLIMIT "drmaa_duration_slimit" 00104 #define DRMAA_ERROR_PATH "drmaa_error_path" 00105 #define DRMAA_INPUT_PATH "drmaa_input_path" 00106 #define DRMAA_JOB_CATEGORY "drmaa_job_category" 00107 #define DRMAA_JOB_NAME "drmaa_job_name" 00108 #define DRMAA_JOIN_FILES "drmaa_join_files" 00109 #define DRMAA_JS_STATE "drmaa_js_state" 00110 #define DRMAA_NATIVE_SPECIFICATION "drmaa_native_specification" 00111 #define DRMAA_OUTPUT_PATH "drmaa_output_path" 00112 #define DRMAA_REMOTE_COMMAND "drmaa_remote_command" 00113 #define DRMAA_START_TIME "drmaa_start_time" 00114 #define DRMAA_TRANSFER_FILES "drmaa_transfer_files" 00115 #define DRMAA_V_ARGV "drmaa_v_argv" 00116 #define DRMAA_V_EMAIL "drmaa_v_email" 00117 #define DRMAA_V_ENV "drmaa_v_env" 00118 #define DRMAA_WCT_HLIMIT "drmaa_wct_hlimit" 00119 #define DRMAA_WCT_SLIMIT "drmaa_wct_slimit" 00120 #define DRMAA_WD "drmaa_wd" 00121 00122 #define DRMAA_SUBMISSION_STATE_ACTIVE "drmaa_active" 00123 #define DRMAA_SUBMISSION_STATE_HOLD "drmaa_hold" 00124 #define DRMAA_PLACEHOLDER_HD "$drmaa_hd_ph$" 00125 #define DRMAA_PLACEHOLDER_WD "$drmaa_wd_ph$" 00126 #define DRMAA_PLACEHOLDER_INCR "$drmaa_incr_ph$" 00127 00128 #define DRMAA_ERRNO_SUCCESS 0 00129 #define DRMAA_ERRNO_INTERNAL_ERROR 1 00130 #define DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE 2 00131 #define DRMAA_ERRNO_AUTH_FAILURE 3 00132 #define DRMAA_ERRNO_INVALID_ARGUMENT 4 00133 #define DRMAA_ERRNO_NO_ACTIVE_SESSION 5 00134 #define DRMAA_ERRNO_NO_MEMORY 6 00135 #define DRMAA_ERRNO_INVALID_CONTACT_STRING 7 00136 #define DRMAA_ERRNO_DEFAULT_CONTACT_STRING_ERROR 8 00137 #define DRMAA_ERRNO_NO_DEFAULT_CONTACT_STRING_SELECTED 9 00138 #define DRMAA_ERRNO_DRMS_INIT_FAILED 10 00139 #define DRMAA_ERRNO_ALREADY_ACTIVE_SESSION 11 00140 #define DRMAA_ERRNO_DRMS_EXIT_ERROR 12 00141 #define DRMAA_ERRNO_INVALID_ATTRIBUTE_FORMAT 13 00142 #define DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE 14 00143 #define DRMAA_ERRNO_CONFLICTING_ATTRIBUTE_VALUES 15 00144 #define DRMAA_ERRNO_TRY_LATER 16 00145 #define DRMAA_ERRNO_DENIED_BY_DRM 17 00146 #define DRMAA_ERRNO_INVALID_JOB 18 00147 #define DRMAA_ERRNO_RESUME_INCONSISTENT_STATE 19 00148 #define DRMAA_ERRNO_SUSPEND_INCONSISTENT_STATE 20 00149 #define DRMAA_ERRNO_HOLD_INCONSISTENT_STATE 21 00150 #define DRMAA_ERRNO_RELEASE_INCONSISTENT_STATE 22 00151 #define DRMAA_ERRNO_EXIT_TIMEOUT 23 00152 #define DRMAA_ERRNO_NO_RUSAGE 24 00153 #define DRMAA_ERRNO_NO_MORE_ELEMENTS 25 00154 00155 #if defined(__cplusplus) 00156 extern "C" 00157 { 00158 #endif 00159 00160 00176 int drmaa_init( 00177 const char *contact, 00178 char *error_diagnosis, size_t error_diag_len 00179 ); 00180 00191 int drmaa_exit(char *error_diagnosis, size_t error_diag_len); 00192 00193 00194 00203 int drmaa_allocate_job_template( 00204 drmaa_job_template_t **jt, 00205 char *error_diagnosis, 00206 size_t error_diag_len 00207 ); 00208 00214 int drmaa_delete_job_template( 00215 drmaa_job_template_t *jt, 00216 char *error_diagnosis, size_t error_diag_len 00217 ); 00218 00224 int drmaa_set_attribute( 00225 drmaa_job_template_t *jt, 00226 const char *name, const char *value, 00227 char *error_diagnosis, size_t error_diag_len 00228 ); 00229 00235 int drmaa_get_attribute( 00236 drmaa_job_template_t *jt, 00237 const char *name, char *value, size_t value_len, 00238 char *error_diagnosis, size_t error_diag_len 00239 ); 00240 00247 int drmaa_set_vector_attribute( 00248 drmaa_job_template_t *jt, 00249 const char *name, const char *value[], 00250 char *error_diagnosis, size_t error_diag_len 00251 ); 00252 00258 int drmaa_get_vector_attribute( 00259 drmaa_job_template_t *jt, 00260 const char *name, drmaa_attr_values_t **values, 00261 char *error_diagnosis, size_t error_diag_len 00262 ); 00263 00264 00265 00273 int drmaa_get_attribute_names( 00274 drmaa_attr_names_t **values, 00275 char *error_diagnosis, size_t error_diag_len 00276 ); 00277 00285 int drmaa_get_vector_attribute_names( 00286 drmaa_attr_names_t **values, 00287 char *error_diagnosis, size_t error_diag_len 00288 ); 00289 00308 /* @addtogroup drmaa_viter @{ */ 00309 int drmaa_get_next_attr_name(drmaa_attr_names_t* values, 00310 char *value, size_t value_len); 00311 int drmaa_get_next_attr_value(drmaa_attr_values_t* values, 00312 char *value, size_t value_len); 00313 int drmaa_get_next_job_id(drmaa_job_ids_t* values, 00314 char *value, size_t value_len); 00315 int drmaa_get_num_attr_names(drmaa_attr_names_t* values, size_t *size); 00316 int drmaa_get_num_attr_values(drmaa_attr_values_t* values, size_t *size); 00317 int drmaa_get_num_job_ids(drmaa_job_ids_t* values, size_t *size); 00318 void drmaa_release_attr_names(drmaa_attr_names_t* values); 00319 void drmaa_release_attr_values(drmaa_attr_values_t* values); 00320 void drmaa_release_job_ids(drmaa_job_ids_t* values); 00321 /* @} */ 00322 00329 int drmaa_run_job( 00330 char *job_id, size_t job_id_len, const drmaa_job_template_t *jt, 00331 char *error_diagnosis, size_t error_diag_len 00332 ); 00333 00355 int drmaa_run_bulk_jobs( 00356 drmaa_job_ids_t **jobids, 00357 const drmaa_job_template_t *jt, 00358 int start, int end, int incr, 00359 char *error_diagnosis, 00360 size_t error_diag_len 00361 ); 00362 00378 int drmaa_control( 00379 const char *job_id, int action, 00380 char *error_diagnosis, size_t error_diag_len 00381 ); 00382 00400 int drmaa_job_ps( 00401 const char *job_id, int *remote_ps, 00402 char *error_diagnosis, size_t error_diag_len 00403 ); 00404 00433 int drmaa_synchronize( 00434 const char *job_ids[], signed long timeout, int dispose, 00435 char *error_diagnosis, size_t error_diag_len 00436 ); 00437 00483 int drmaa_wait( 00484 const char *job_id, 00485 char *job_id_out, size_t job_id_out_len, int *stat, 00486 signed long timeout, drmaa_attr_values_t **rusage, 00487 char *error_diagnosis, size_t error_diag_len 00488 ); 00489 00490 int drmaa_wifexited(int *exited, int stat, 00491 char *error_diagnosis, size_t error_diag_len); 00492 int drmaa_wexitstatus(int *exit_status, int stat, 00493 char *error_diagnosis, size_t error_diag_len); 00494 int drmaa_wifsignaled(int *signaled, int stat, 00495 char *error_diagnosis, size_t error_diag_len); 00496 int drmaa_wtermsig(char *signal, size_t signal_len, int stat, 00497 char *error_diagnosis, size_t error_diag_len); 00498 int drmaa_wcoredump(int *core_dumped, int stat, 00499 char *error_diagnosis, size_t error_diag_len); 00500 int drmaa_wifaborted(int *aborted, int stat, 00501 char *error_diagnosis, size_t error_diag_len); 00502 00507 const char *drmaa_strerror(int drmaa_errno); 00508 00517 int drmaa_get_contact(char *contact, size_t contact_len, 00518 char *error_diagnosis, size_t error_diag_len); 00519 00525 int drmaa_version(unsigned int *major, unsigned int *minor, 00526 char *error_diagnosis, size_t error_diag_len); 00527 00534 int drmaa_get_DRM_system(char *drm_system, size_t drm_system_len, 00535 char *error_diagnosis, size_t error_diag_len); 00536 00544 int drmaa_get_DRMAA_implementation(char *drmaa_impl, size_t drmaa_impl_len, 00545 char *error_diagnosis, size_t error_diag_len); 00546 00547 #if defined(__cplusplus) 00548 } /* extern "C" */ 00549 00550 #endif 00551 00552 /* @} */ 00553 00554 00555 /* 00556 * Functions outside of DRMAA specification. 00557 */ 00558 00564 void drmaa_set_logging_output(FILE *file); 00565 00566 #endif /* __DRMAA_H */ 00567
1.8.0