Main Page | Modules | Data Structures | File List | Data Fields | Globals

src/drmaa.h

Go to the documentation of this file.
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 

Generated on Mon Nov 24 11:51:12 2008 for torque by  doxygen 1.3.9.1