From d8fb4caff9ca16d2b34f5b17dc6127dfbcd97434 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Fri, 8 Nov 2002 21:19:37 +0000
Subject: [PATCH] Add task_flags to task_launch_request RPC. Add local_pid to
 task_launch_response RPC.

---
 src/common/slurm_protocol_defs.h | 16 ++++++++++++++--
 src/common/slurm_protocol_pack.c |  4 ++++
 src/common/slurm_protocol_util.c |  5 +++--
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h
index 247ca108845..c1b4240e500 100644
--- a/src/common/slurm_protocol_defs.h
+++ b/src/common/slurm_protocol_defs.h
@@ -55,8 +55,18 @@
 
 /* used to define the type of the io_stream_header_t.type
  */
-#define SLURM_IO_STREAM_INOUT 0
-#define SLURM_IO_STREAM_SIGERR 1
+enum io_stream_types {
+	SLURM_IO_STREAM_INOUT = 0,
+	SLURM_IO_STREAM_SIGERR = 1
+};
+
+/* used to define flags of the launch_tasks_request_msg_t.task_flags
+ */
+enum task_flag_vals {
+	TASK_TOTALVIEW_DEBUG = 0x1,
+	TASK_UNUSED1 = 0x2,
+	TASK_UNUSED2 = 0x4
+};
 
 
 /* INFINITE is used to identify unlimited configurations,  */
@@ -445,6 +455,7 @@ typedef struct launch_tasks_request_msg {
 	char     *cwd;
 	uint16_t  resp_port;
 	uint16_t  io_port;
+	uint16_t  task_flags;
 	uint32_t *global_task_ids;
 
 	slurm_job_credential_t *credential;	/* job credential            */
@@ -458,6 +469,7 @@ typedef struct launch_tasks_response_msg {
 	uint32_t return_code;
 	char *node_name;
 	uint32_t srun_node_id;
+	uint32_t local_pid;
 } launch_tasks_response_msg_t;
 
 typedef struct task_ext_msg {
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index b9c8a238c07..df03f03637b 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -1569,6 +1569,7 @@ void pack_launch_tasks_response_msg ( launch_tasks_response_msg_t * msg , Buf bu
 	pack32  ( msg -> return_code , buffer ) ;
 	packstr ( msg -> node_name , buffer ) ;
 	pack32  ( msg -> srun_node_id , buffer ) ;
+	pack32  ( msg -> local_pid , buffer ) ;
 }
 
 int unpack_launch_tasks_response_msg ( launch_tasks_response_msg_t ** msg_ptr , Buf buffer )
@@ -1582,6 +1583,7 @@ int unpack_launch_tasks_response_msg ( launch_tasks_response_msg_t ** msg_ptr ,
 	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 -> local_pid , buffer ) ;
 	return SLURM_SUCCESS ;
 
     unpack_error:
@@ -1607,6 +1609,7 @@ void pack_launch_tasks_request_msg ( launch_tasks_request_msg_t * msg , Buf buff
 	packstr_array ( msg -> argv , msg -> argc , buffer ) ;
 	pack16 (  msg -> resp_port , buffer ) ;
 	pack16 (  msg -> io_port , buffer ) ;
+	pack16 (  msg -> task_flags , buffer ) ;
 	pack32_array ( msg -> global_task_ids , (uint16_t) msg -> tasks_to_launch , buffer ) ;
 #ifdef HAVE_LIBELAN3
 	qsw_pack_jobinfo( msg -> qsw_job , buffer ) ;
@@ -1635,6 +1638,7 @@ int unpack_launch_tasks_request_msg ( launch_tasks_request_msg_t ** msg_ptr , Bu
 	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_unpack32_array ( & msg -> global_task_ids , & uint16_tmp , buffer ) ;
 
 #ifdef HAVE_LIBELAN3
diff --git a/src/common/slurm_protocol_util.c b/src/common/slurm_protocol_util.c
index e562660cc49..773635ffcbe 100644
--- a/src/common/slurm_protocol_util.c
+++ b/src/common/slurm_protocol_util.c
@@ -211,8 +211,9 @@ void slurm_print_launch_task_msg(launch_tasks_request_msg_t * msg)
 	for (i = 0; i < msg->argc; i++) {
 		debug3("argv[%i]: %s", i, msg->argv[i]);
 	}
-	debug3("msg -> resp_port = %d", msg->resp_port);
-	debug3("msg -> io_port   = %d", msg->io_port);
+	debug3("msg -> resp_port  = %d", msg->resp_port);
+	debug3("msg -> io_port    = %d", msg->io_port);
+	debug3("msg -> task_flags = %x", msg->task_flags);
 
 	for (i = 0; i < msg->tasks_to_launch; i++) {
 		debug3("global_task_id[%i]: %i ", i,
-- 
GitLab