diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index 060293d392df9278e3b918e295343d29a7044f22..b49563e3d3d0feb42940c17a64b7dcd1ea543c9a 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -501,6 +501,7 @@ void pack_resource_allocation_and_run_response_msg ( resource_allocation_and_run pack_job_credential( msg->credentials, ( void ** ) buffer , length ) ; #ifdef HAVE_LIBELAN3 /* put the elan3 stuff here */ + slurm_qsw_pack_jobinfo( msg -> qsw_job , (void ** ) buffer , length) ; #endif } @@ -536,6 +537,7 @@ int unpack_resource_allocation_and_run_response_msg ( resource_allocation_and_ru unpack_job_credential( &tmp_ptr->credentials, ( void ** ) buffer , length ) ; #ifdef HAVE_LIBELAN3 /* put the elan3 stuff here */ + slurm_qsw_unpack_jobinfo(& msg -> qsw_job , (void **) data, length ) ; #endif *msg = tmp_ptr ; @@ -774,6 +776,31 @@ int unpack_job_credential( slurm_job_credential_t** msg , void ** buffer , uint3 #ifdef HAVE_LIBELAN3 /* I'm pretty sure this isn't how I want to do this... */ +void slurm_qsw_pack_jobinfo(qsw_jobinfo_t j, void **data, int * len) +{ + int packlen ; + packlen = qsw_pack_jobinfo(j, *data, *len) ; + if ( packlen > 0 ) + { + *len -= packlen ; + *data += packlen ; + } +} + +int slurm_qsw_unpack_jobinfo(qsw_jobinfo_t * j, void **data, int *len) +{ + int packlen ; + /* *j = xmalloc ( sizeof ( struct qsw_jobinfo ) ) ; */ + qsw_alloc_jobinfo( *j ) ; + packlen = qsw_unpack_jobinfo ( *j , *data , * len ) ; + if ( packlen > 0 ) + { + *len -= packlen ; + *data += packlen ; + } + return 0 ; +} + void pack_qsw_jobinfo( qsw_jobinfo *msg, void ** buffer , uint32_t * length ) { int len = qsw_pack_jobinfo ( msg , *buf_ptr, *buf_len); @@ -808,6 +835,7 @@ void pack_job_step_create_response_msg ( job_step_create_response_msg_t* msg , pack_job_credential( msg->credentials, ( void ** ) buffer , length ) ; #ifdef HAVE_LIBELAN3 /* put the elan3 stuff here */ + slurm_qsw_pack_jobinfo( msg -> qsw_job , (void ** ) buffer , length) ; #endif } @@ -828,6 +856,7 @@ int unpack_job_step_create_response_msg (job_step_create_response_msg_t** msg , *msg = tmp_ptr; #ifdef HAVE_LIBELAN3 /* put the elan3 stuff here */ + slurm_qsw_unpack_jobinfo(& msg -> qsw_job , (void **) data, length ) ; #endif return 0; } @@ -1351,6 +1380,7 @@ void pack_launch_tasks_request_msg ( launch_tasks_request_msg_t * msg , void ** pack32_array ( msg -> global_task_ids , ( uint16_t ) msg -> tasks_to_launch , buffer , length ) ; #ifdef HAVE_LIBELAN3 /* put the elan3 stuff here */ + slurm_qsw_pack_jobinfo( msg -> qsw_job , (void ** ) buffer , length) ; #endif } @@ -1379,6 +1409,7 @@ int unpack_launch_tasks_request_msg ( launch_tasks_request_msg_t ** msg_ptr , vo unpack32_array ( & msg -> global_task_ids , & uint16_tmp , buffer , length ) ; #ifdef HAVE_LIBELAN3 /* put the elan3 stuff here */ + slurm_qsw_unpack_jobinfo(& msg -> qsw_job , (void **) data, length ) ; #endif *msg_ptr = msg ; return 0 ; diff --git a/src/common/slurm_protocol_pack.h b/src/common/slurm_protocol_pack.h index 03fd56f9f53c49d7241c22d1c5f1c1090ff8cdbd..4bd8040f9595529e270237e6f88763b7fa6d054e 100644 --- a/src/common/slurm_protocol_pack.h +++ b/src/common/slurm_protocol_pack.h @@ -147,4 +147,10 @@ int unpack_task_exit_msg ( task_exit_msg_t ** msg_ptr , void ** buffer , uint32_ void pack_job_credential ( slurm_job_credential_t* cred , void ** buffer , uint32_t * length ) ; int unpack_job_credential( slurm_job_credential_t** msg , void ** buffer , uint32_t * length ) ; + +#ifdef HAVE_LIBELAN3 +void slurm_qsw_pack_jobinfo(qsw_jobinfo_t j, void **data, int * len) ; +int slurm_qsw_unpack_jobinfo(qsw_jobinfo_t * j, void **data, int *len) ; +#endif + #endif