22 #ifndef __DRMAA_IMPL_H
23 #define __DRMAA_IMPL_H
26 # include <pbs_config.h>
29 #include <sys/types.h>
49 extern pthread_mutex_t drmaa_session_mutex;
106 DRMAA_PLACEHOLDER_MASK_HD = 1 << 0,
107 DRMAA_PLACEHOLDER_MASK_WD = 1 << 1,
108 DRMAA_PLACEHOLDER_MASK_INCR = 1 << 2
115 struct attropl *pbs_attribs;
116 char *script_filename;
117 char *home_directory;
118 char *working_directory;
139 drmaa_impl_get_attribute_names(
141 unsigned f_mask,
unsigned flags,
142 char *errmsg,
size_t errlen
147 char *job_id,
size_t job_id_len,
149 char *errmsg,
size_t errlen
154 const char *jobid,
char *out_jobid,
size_t out_jobid_size,
156 int dispose, time_t timeout_time,
157 char *errmsg,
size_t errlen
172 drmaa_create_submission_context(
175 char *errmsg,
size_t errlen);
181 drmaa_set_job_std_attribs(
183 char *errmsg,
size_t errlen
187 drmaa_create_job_script(
189 char *errmsg,
size_t errlen
195 char *errmsg,
size_t errlen
199 drmaa_set_file_staging(
201 char *errmsg,
size_t errlen
205 drmaa_set_job_environment(
207 char *errmsg,
size_t errlen
211 drmaa_translate_staging(
const char *stage);
214 drmaa_set_job_email_notication(
216 char *errmsg,
size_t errlen
220 drmaa_set_job_submit_state(
222 char *errmsg,
size_t errlen
228 int attr,
char *value,
230 char *errmsg,
size_t errlen
235 char **filename,
const char *content,
size_t len,
236 char *errmsg,
size_t errlen
240 drmaa_explode(
const char **vector,
char glue);
243 drmaa_free_vector(
char **vector);
246 drmaa_free_attropl(
struct attropl *attr);
249 drmaa_expand_placeholders(
253 drmaa_replace(
char *input,
const char *placeholder,
const char *value);
256 #define GET_DRMAA_SESSION( session ) do{ \
257 pthread_mutex_lock( &drmaa_session_mutex ); \
258 if( drmaa_session == NULL ) \
260 pthread_mutex_unlock( &drmaa_session_mutex ); \
261 RAISE_DRMAA( DRMAA_ERRNO_NO_ACTIVE_SESSION ); \
263 session = drmaa_session; \
264 pthread_mutex_unlock( &drmaa_session_mutex ); \
267 #define RELEASE_DRMAA_SESSION( session )