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 )
drmaa_job_template_t * next
Next job template in list.
Definition: drmaa_impl.h:77
Definition: drmaa_impl.h:86
Definition: drmaa_impl.h:111
int pbs_conn
PBS connection (or -1).
Definition: drmaa_impl.h:57
drmaa_session_t * session
DRMAA session in which job template was created.
Definition: drmaa_impl.h:75
int drmaa_create(drmaa_session_t **pc, const char *contact, char *errmsg, size_t errlen)
Creates DRMAA session and opens connection with DRM.
Definition: session.c:91
Definition: drmaa_impl.h:91
void ** attrib
Table of DRMAA attributes.
Definition: drmaa_impl.h:78
pthread_mutex_t conn_mutex
Mutex for PBS connection.
Definition: drmaa_impl.h:66
pthread_mutex_t mutex
Mutex for accessing job attributes.
Definition: drmaa_impl.h:82
drmaa_job_template_t * jt_list
Cyclic list (with sentinel) of job templates created in this DRMAA session.
Definition: drmaa_impl.h:59
Definition: drmaa_impl.h:96
DRMAA library for Torque/PBS.
System compatibility functions.
drmaa_job_t ** job_hashtab
Hash table of jobs which have to be remembered in DRMAA session (was submitted in this session and it...
Definition: drmaa_impl.h:61
char * contact
Contact to PBS server – `host[:port]'.
Definition: drmaa_impl.h:58
int drmaa_destroy(drmaa_session_t *c, char *errmsg, size_t errlen)
Closes connection with DRM (if any) and destroys DRMAA session data.
Definition: session.c:161
Job data stored for each submitted job.
Definition: jobs.h:56
int next_time_label
Will be assigned to next submitted job.
Definition: drmaa_impl.h:65
pthread_mutex_t jobs_mutex
Mutex for jt_list, #job_list and next_time_label.
Definition: drmaa_impl.h:67
DRMAA session data.
Definition: drmaa_impl.h:55
Job template data.
Definition: drmaa_impl.h:73
drmaa_job_template_t * prev
Previous job template in list.
Definition: drmaa_impl.h:76