Newer
Older
uint32_t uint32_tmp;
msg = xmalloc(sizeof(task_exit_msg_t));
*msg_ptr = msg;
safe_unpack32(&msg->return_code, buffer);
safe_unpack32(&msg->num_tasks, buffer);
safe_unpack32_array(&msg->task_id_list, &uint32_tmp, buffer);
if (msg->num_tasks != uint32_tmp)
goto unpack_error;
FREE_NULL(msg);
*msg_ptr = NULL;
return SLURM_ERROR;
}
static void
_pack_launch_tasks_response_msg(launch_tasks_response_msg_t * msg, Buf buffer)
pack32(msg->return_code, buffer);
packstr(msg->node_name, buffer);
pack32(msg->srun_node_id, buffer);
pack32(msg->count_of_pids, buffer);
pack32_array(msg->local_pids,
msg->count_of_pids, buffer);
static int
_unpack_launch_tasks_response_msg(launch_tasks_response_msg_t **
msg_ptr, Buf buffer)
{
uint16_t uint16_tmp;
uint32_t uint32_tmp;
launch_tasks_response_msg_t *msg;
msg = xmalloc(sizeof(launch_tasks_response_msg_t));
*msg_ptr = msg;
safe_unpack32(&msg->return_code, buffer);
safe_unpackstr_xmalloc(&msg->node_name, &uint16_tmp, buffer);
safe_unpack32(&msg->srun_node_id, buffer);
safe_unpack32(&msg->count_of_pids, buffer);
safe_unpack32_array(&msg->local_pids, &uint32_tmp, buffer);
if (msg->count_of_pids != uint32_tmp)
goto unpack_error;
FREE_NULL(msg->node_name);
FREE_NULL(msg);
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
*msg_ptr = NULL;
return SLURM_ERROR;
}
static void
_pack_launch_tasks_request_msg(launch_tasks_request_msg_t * msg, Buf buffer)
{
pack32(msg->job_id, buffer);
pack32(msg->job_step_id, buffer);
pack32(msg->nnodes, buffer);
pack32(msg->nprocs, buffer);
pack32(msg->uid, buffer);
pack32(msg->srun_node_id, buffer);
pack_job_credential(msg->credential, buffer);
pack32(msg->tasks_to_launch, buffer);
packstr_array(msg->env, msg->envc, buffer);
packstr(msg->cwd, buffer);
packstr_array(msg->argv, msg->argc, buffer);
pack16(msg->resp_port, buffer);
pack16(msg->io_port, buffer);
pack16(msg->task_flags, buffer);
packstr(msg->ofname, buffer);
packstr(msg->efname, buffer);
packstr(msg->ifname, buffer);
pack32(msg->slurmd_debug, buffer);
pack32_array(msg->global_task_ids,
msg->tasks_to_launch, buffer);
qsw_pack_jobinfo(msg->qsw_job, buffer);
static int
_unpack_launch_tasks_request_msg(launch_tasks_request_msg_t **
msg_ptr, Buf buffer)
uint32_t uint32_tmp;
launch_tasks_request_msg_t *msg;
msg = xmalloc(sizeof(launch_tasks_request_msg_t));
*msg_ptr = msg;
safe_unpack32(&msg->job_id, buffer);
safe_unpack32(&msg->job_step_id, buffer);
safe_unpack32(&msg->nnodes, buffer);
safe_unpack32(&msg->nprocs, buffer);
safe_unpack32(&msg->uid, buffer);
safe_unpack32(&msg->srun_node_id, buffer);
if (unpack_job_credential(&msg->credential, buffer))
goto unpack_error;
safe_unpack32(&msg->tasks_to_launch, buffer);
safe_unpackstr_array(&msg->env, &msg->envc, buffer);
safe_unpackstr_xmalloc(&msg->cwd, &uint16_tmp, buffer);
safe_unpackstr_array(&msg->argv, &msg->argc, buffer);
safe_unpack16(&msg->resp_port, buffer);
safe_unpack16(&msg->io_port, buffer);
safe_unpack16(&msg->task_flags, buffer);
safe_unpackstr_xmalloc(&msg->ofname, &uint16_tmp, buffer);
safe_unpackstr_xmalloc(&msg->efname, &uint16_tmp, buffer);
safe_unpackstr_xmalloc(&msg->ifname, &uint16_tmp, buffer);
safe_unpack32(&msg->slurmd_debug, buffer);
safe_unpack32_array(&msg->global_task_ids, &uint32_tmp, buffer);
if (msg->tasks_to_launch != uint32_tmp)
goto unpack_error;
qsw_alloc_jobinfo(&msg->qsw_job);
if (qsw_unpack_jobinfo(msg->qsw_job, buffer) < 0) {
goto unpack_error;
slurm_free_launch_tasks_request_msg(msg);
*msg_ptr = NULL;
return SLURM_ERROR;
static void
_pack_cancel_tasks_msg(kill_tasks_msg_t * msg, Buf buffer)
pack32(msg->job_id, buffer);
pack32(msg->job_step_id, buffer);
pack32(msg->signal, buffer);
static int
_unpack_cancel_tasks_msg(kill_tasks_msg_t ** msg_ptr, Buf buffer)
msg = xmalloc(sizeof(kill_tasks_msg_t));
*msg_ptr = msg;
safe_unpack32(&msg->job_id, buffer);
safe_unpack32(&msg->job_step_id, buffer);
safe_unpack32(&msg->signal, buffer);
return SLURM_SUCCESS;
FREE_NULL(msg);
*msg_ptr = NULL;
return SLURM_ERROR;
static void
_pack_shutdown_msg(shutdown_msg_t * msg, Buf buffer)

Moe Jette
committed
{

Moe Jette
committed
}
static int
_unpack_shutdown_msg(shutdown_msg_t ** msg_ptr, Buf buffer)

Moe Jette
committed
{

Moe Jette
committed
msg = xmalloc(sizeof(shutdown_msg_t));
*msg_ptr = msg;
safe_unpack16(&msg->core, buffer);
return SLURM_SUCCESS;
FREE_NULL(msg);
*msg_ptr = NULL;
return SLURM_ERROR;

Moe Jette
committed
}
/* _pack_job_step_id_msg
* packs a slurm job step id
* IN msg - pointer to the job step id (contains job_id and job_step_id)
* IN/OUT buffer - destination of the pack, contains pointers that are
* automatically updated
*/
static void
_pack_job_step_id_msg(job_step_id_t * msg, Buf buffer)
pack_time(msg->last_update, buffer);
pack32(msg->job_id, buffer);
pack32(msg->job_step_id, buffer);
/* _unpack_job_step_id_msg
* unpacks a slurm job step id
* OUT msg_ptr - pointer to the job step id buffer (contains job_id and
* job_step_id)
* IN/OUT buffer - source of the unpack, contains pointers that are
* automatically updated
*/
static int
_unpack_job_step_id_msg(job_step_id_t ** msg_ptr, Buf buffer)
msg = xmalloc(sizeof(job_step_id_msg_t));
*msg_ptr = msg;
safe_unpack_time(&msg->last_update, buffer);
safe_unpack32(&msg->job_id, buffer);
safe_unpack32(&msg->job_step_id, buffer);
return SLURM_SUCCESS;
FREE_NULL(msg);
*msg_ptr = NULL;
return SLURM_ERROR;
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
/* _pack_job_step_kill_msg
* packs a slurm job step signal message
* IN msg - pointer to the job step signal message
* IN/OUT buffer - destination of the pack, contains pointers that are
* automatically updated
*/
static void
_pack_job_step_kill_msg(job_step_kill_msg_t * msg, Buf buffer)
{
pack32(msg->job_id, buffer);
pack32(msg->job_step_id, buffer);
pack16(msg->signal, buffer);
}
/* _unpack_job_step_kill_msg
* unpacks a slurm job step signal message
* OUT msg_ptr - pointer to the job step signal message buffer
* IN/OUT buffer - source of the unpack, contains pointers that are
* automatically updated
*/
static int
_unpack_job_step_kill_msg(job_step_kill_msg_t ** msg_ptr, Buf buffer)
{
job_step_kill_msg_t *msg;
msg = xmalloc(sizeof(job_step_kill_msg_t));
*msg_ptr = msg;
safe_unpack32(&msg->job_id, buffer);
safe_unpack32(&msg->job_step_id, buffer);
safe_unpack16(&msg->signal, buffer);
return SLURM_SUCCESS;
unpack_error:
FREE_NULL(msg);
*msg_ptr = NULL;
return SLURM_ERROR;
}
static void
_pack_complete_job_step_msg(complete_job_step_msg_t * msg, Buf buffer)
pack32(msg->job_id, buffer);
pack32(msg->job_step_id, buffer);
pack32(msg->job_rc, buffer);
pack32(msg->slurm_rc, buffer);
packstr(msg->node_name, buffer);
static int
_unpack_complete_job_step_msg(complete_job_step_msg_t ** msg_ptr, Buf buffer)
complete_job_step_msg_t *msg;
uint16_t uint16_tmp;
msg = xmalloc(sizeof(complete_job_step_msg_t));
*msg_ptr = msg;
safe_unpack32(&msg->job_id, buffer);
safe_unpack32(&msg->job_step_id, buffer);
safe_unpack32(&msg->job_rc, buffer);
safe_unpack32(&msg->slurm_rc, buffer);
safe_unpackstr_xmalloc(&msg->node_name, &uint16_tmp, buffer);
return SLURM_SUCCESS;
FREE_NULL(msg);
*msg_ptr = NULL;
return SLURM_ERROR;
}
static void
_pack_get_job_step_info_msg(job_step_info_request_msg_t * msg, Buf buffer)
pack_time(msg->last_update, buffer);
pack32(msg->job_id, buffer);
pack32(msg->step_id, buffer);
static int
_unpack_get_job_step_info_msg(job_step_info_request_msg_t ** msg, Buf buffer)
job_step_info_request_msg_t *job_step_info;
job_step_info = xmalloc(sizeof(job_step_info_request_msg_t));
*msg = job_step_info;
safe_unpack_time(&job_step_info->last_update, buffer);
safe_unpack32(&job_step_info->job_id, buffer);
safe_unpack32(&job_step_info->step_id, buffer);
return SLURM_SUCCESS;
unpack_error:
FREE_NULL(job_step_info);
*msg = NULL;
return SLURM_ERROR;
static void
_pack_slurm_addr_array(slurm_addr * slurm_address,
uint16_t size_val, Buf buffer)
uint16_t nl = htons(size_val);
for (i = 0; i < size_val; i++) {
slurm_pack_slurm_addr(slurm_address + i, buffer);
static int
_unpack_slurm_addr_array(slurm_addr ** slurm_address,
uint16_t * size_val, Buf buffer)
*slurm_address = NULL;
safe_unpack16(&nl, buffer);
*size_val = ntohs(nl);
*slurm_address = xmalloc((*size_val) * sizeof(slurm_addr));
for (i = 0; i < *size_val; i++) {
if (slurm_unpack_slurm_addr_no_alloc((*slurm_address) + i,
buffer))
goto unpack_error;
return SLURM_SUCCESS;
FREE_NULL(*slurm_address);
*slurm_address = NULL;
return SLURM_ERROR;
static void
_pack_batch_job_launch_msg(batch_job_launch_msg_t * msg, Buf buffer)
pack32(msg->job_id, buffer);
pack32(msg->uid, buffer);
packstr(msg->nodes, buffer);
packstr(msg->script, buffer);
packstr(msg->work_dir, buffer);
packstr(msg->err, buffer);
packstr(msg->in, buffer);
packstr(msg->out, buffer);
pack16(msg->argc, buffer);
packstr_array(msg->argv, msg->argc, buffer);
pack16(msg->envc, buffer);
packstr_array(msg->environment, msg->envc, buffer);
static int
_unpack_batch_job_launch_msg(batch_job_launch_msg_t ** msg, Buf buffer)
{
uint16_t uint16_tmp;
batch_job_launch_msg_t *launch_msg_ptr;
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
assert(msg != NULL);
launch_msg_ptr = xmalloc(sizeof(batch_job_launch_msg_t));
*msg = launch_msg_ptr;
safe_unpack32(&launch_msg_ptr->job_id, buffer);
safe_unpack32(&launch_msg_ptr->uid, buffer);
safe_unpackstr_xmalloc(&launch_msg_ptr->nodes, &uint16_tmp, buffer);
safe_unpackstr_xmalloc(&launch_msg_ptr->script, &uint16_tmp, buffer);
safe_unpackstr_xmalloc(&launch_msg_ptr->work_dir, &uint16_tmp,
buffer);
safe_unpackstr_xmalloc(&launch_msg_ptr->err, &uint16_tmp, buffer);
safe_unpackstr_xmalloc(&launch_msg_ptr->in, &uint16_tmp, buffer);
safe_unpackstr_xmalloc(&launch_msg_ptr->out, &uint16_tmp, buffer);
safe_unpack16(&launch_msg_ptr->argc, buffer);
safe_unpackstr_array(&launch_msg_ptr->argv,
&launch_msg_ptr->argc, buffer);
safe_unpack16(&launch_msg_ptr->envc, buffer);
safe_unpackstr_array(&launch_msg_ptr->environment,
&launch_msg_ptr->envc, buffer);
return SLURM_SUCCESS;
FREE_NULL(launch_msg_ptr->nodes);
FREE_NULL(launch_msg_ptr->script);
FREE_NULL(launch_msg_ptr->work_dir);
FREE_NULL(launch_msg_ptr->err);
FREE_NULL(launch_msg_ptr->in);
FREE_NULL(launch_msg_ptr->out);
FREE_NULL(launch_msg_ptr->argv);
FREE_NULL(launch_msg_ptr->environment);
FREE_NULL(launch_msg_ptr);
*msg = NULL;
return SLURM_ERROR;
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
static void
_pack_job_id_request_msg(job_id_request_msg_t * msg, Buf buffer)
{
assert(msg != NULL);
pack32(msg->job_pid, buffer);
}
static int
_unpack_job_id_request_msg(job_id_request_msg_t ** msg, Buf buffer)
{
job_id_request_msg_t *tmp_ptr;
/* alloc memory for structure */
assert(msg != NULL);
tmp_ptr = xmalloc(sizeof(job_id_request_msg_t));
*msg = tmp_ptr;
/* load the data values */
safe_unpack32(&tmp_ptr->job_pid, buffer);
return SLURM_SUCCESS;
unpack_error:
FREE_NULL(tmp_ptr);
*msg = NULL;
return SLURM_ERROR;
}
static void
_pack_job_id_response_msg(job_id_response_msg_t * msg, Buf buffer)
{
assert(msg != NULL);
pack32(msg->job_id, buffer);
}
static int
_unpack_job_id_response_msg(job_id_response_msg_t ** msg, Buf buffer)
{
job_id_response_msg_t *tmp_ptr;
/* alloc memory for structure */
assert(msg != NULL);
tmp_ptr = xmalloc(sizeof(job_id_response_msg_t));
*msg = tmp_ptr;
/* load the data values */
safe_unpack32(&tmp_ptr->job_id, buffer);
return SLURM_SUCCESS;
unpack_error:
FREE_NULL(tmp_ptr);
*msg = NULL;
return SLURM_ERROR;
}
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
static void
_pack_batch_job_resp_msg(batch_launch_response_msg_t * msg, Buf buffer)
{
assert(msg != NULL);
pack32(msg->sid, buffer);
pack32(msg->job_id, buffer);
}
static int
_unpack_batch_job_resp_msg(batch_launch_response_msg_t ** msg, Buf buffer)
{
batch_launch_response_msg_t *tmp_ptr;
/* alloc memory for structure */
assert(msg != NULL);
tmp_ptr = xmalloc(sizeof(batch_launch_response_msg_t));
*msg = tmp_ptr;
/* load the data values */
safe_unpack32(&tmp_ptr->sid, buffer);
safe_unpack32(&tmp_ptr->job_id, buffer);
return SLURM_SUCCESS;
unpack_error:
FREE_NULL(tmp_ptr);
*msg = NULL;
return SLURM_ERROR;
}
void pack_ ( * msg , Buf buffer )
assert ( msg != NULL );
pack16 ( msg -> , buffer ) ;
pack32 ( msg -> , buffer ) ;
packstr ( msg -> , buffer ) ;
int unpack_ ( ** msg_ptr , Buf buffer )
uint16_t uint16_tmp;
assert ( msg_ptr != NULL );
msg = xmalloc ( sizeof ( ) ) ;
*msg_ptr = msg;
safe_unpack16 ( & msg -> , buffer ) ;
safe_unpack32 ( & msg -> , buffer ) ;
safe_unpackstr_xmalloc ( & msg -> x, & uint16_tmp , buffer ) ;
return SLURM_SUCCESS;
unpack_error:
FREE_NULL(msg -> x);
FREE_NULL(msg);
*msg_ptr = NULL;
return SLURM_ERROR;