From 05453426841f027345db43f9516a2685cdcd523f Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 22 Oct 2002 21:43:30 +0000
Subject: [PATCH] Major revisions to all slurm API function man pages.

---
 ...slurm_job.3 => slurm_allocate_resources.3} | 159 ++++------
 .../man3/slurm_allocate_resources_and_run.3   |   1 +
 doc/man/man3/slurm_cancel_job.3               |  73 +++++
 doc/man/man3/slurm_cancel_job_step.3          |   1 +
 doc/man/man3/slurm_complete_job.3             |  71 +++++
 doc/man/man3/slurm_complete_job_step.3        |   1 +
 doc/man/man3/slurm_confirm_allocation.3       |   1 +
 doc/man/man3/slurm_free_ctl_conf.3            | 139 +++++++++
 doc/man/man3/slurm_free_job_info.3            | 174 +++++++++++
 .../slurm_free_job_step_create_response_msg.3 |   1 +
 .../slurm_free_job_step_info_response_msg.3   | 189 ++++++++++++
 doc/man/man3/slurm_free_node_info.3           | 233 +++++++++++++++
 doc/man/man3/slurm_free_partition_info.3      | 166 +++++++++++
 ...resource_allocation_and_run_response_msg.3 |   1 +
 .../slurm_free_submit_response_response_msg   |   1 +
 .../man3/{slurm_error.3 => slurm_get_errno.3} |  37 ++-
 doc/man/man3/slurm_get_job_steps.3            |   1 +
 doc/man/man3/slurm_info.3                     | 282 ------------------
 doc/man/man3/slurm_init_job_desc_msg.3        |   1 +
 doc/man/man3/slurm_init_part_desc_msg.3       |   1 +
 doc/man/man3/slurm_job_step_create.3          |  77 +++++
 doc/man/man3/slurm_job_will_run.3             |   1 +
 doc/man/man3/slurm_load_ctl_conf.3            |   1 +
 doc/man/man3/slurm_load_jobs.3                |   1 +
 doc/man/man3/slurm_load_node.3                |   1 +
 doc/man/man3/slurm_load_partitions.3          |   1 +
 doc/man/man3/slurm_perror.3                   |   1 +
 doc/man/man3/slurm_print_ctl_conf.3           |   1 +
 doc/man/man3/slurm_print_job_info.3           |   1 +
 doc/man/man3/slurm_print_job_info_msg.3       |   1 +
 doc/man/man3/slurm_print_job_step_info.3      |   1 +
 doc/man/man3/slurm_print_job_step_info_msg.3  |   1 +
 doc/man/man3/slurm_print_node_info_msg.3      |   1 +
 doc/man/man3/slurm_print_node_table.3         |   1 +
 doc/man/man3/slurm_print_partition_info.3     |   1 +
 doc/man/man3/slurm_print_partition_info_msg.3 |   1 +
 .../{slurm_admin.3 => slurm_reconfigure.3}    |  97 +++---
 doc/man/man3/slurm_shutdown.3                 |   1 +
 doc/man/man3/slurm_strerror.3                 |   1 +
 doc/man/man3/slurm_submit_batch_job.3         |   1 +
 doc/man/man3/slurm_update_job.3               |   1 +
 doc/man/man3/slurm_update_node.3              |   1 +
 doc/man/man3/slurm_update_partition.3         |   1 +
 43 files changed, 1277 insertions(+), 451 deletions(-)
 rename doc/man/man3/{slurm_job.3 => slurm_allocate_resources.3} (69%)
 create mode 100644 doc/man/man3/slurm_allocate_resources_and_run.3
 create mode 100644 doc/man/man3/slurm_cancel_job.3
 create mode 100644 doc/man/man3/slurm_cancel_job_step.3
 create mode 100644 doc/man/man3/slurm_complete_job.3
 create mode 100644 doc/man/man3/slurm_complete_job_step.3
 create mode 100644 doc/man/man3/slurm_confirm_allocation.3
 create mode 100644 doc/man/man3/slurm_free_ctl_conf.3
 create mode 100644 doc/man/man3/slurm_free_job_info.3
 create mode 100644 doc/man/man3/slurm_free_job_step_create_response_msg.3
 create mode 100644 doc/man/man3/slurm_free_job_step_info_response_msg.3
 create mode 100644 doc/man/man3/slurm_free_node_info.3
 create mode 100644 doc/man/man3/slurm_free_partition_info.3
 create mode 100644 doc/man/man3/slurm_free_resource_allocation_and_run_response_msg.3
 create mode 100644 doc/man/man3/slurm_free_submit_response_response_msg
 rename doc/man/man3/{slurm_error.3 => slurm_get_errno.3} (75%)
 create mode 100644 doc/man/man3/slurm_get_job_steps.3
 delete mode 100644 doc/man/man3/slurm_info.3
 create mode 100644 doc/man/man3/slurm_init_job_desc_msg.3
 create mode 100644 doc/man/man3/slurm_init_part_desc_msg.3
 create mode 100644 doc/man/man3/slurm_job_step_create.3
 create mode 100644 doc/man/man3/slurm_job_will_run.3
 create mode 100644 doc/man/man3/slurm_load_ctl_conf.3
 create mode 100644 doc/man/man3/slurm_load_jobs.3
 create mode 100644 doc/man/man3/slurm_load_node.3
 create mode 100644 doc/man/man3/slurm_load_partitions.3
 create mode 100644 doc/man/man3/slurm_perror.3
 create mode 100644 doc/man/man3/slurm_print_ctl_conf.3
 create mode 100644 doc/man/man3/slurm_print_job_info.3
 create mode 100644 doc/man/man3/slurm_print_job_info_msg.3
 create mode 100644 doc/man/man3/slurm_print_job_step_info.3
 create mode 100644 doc/man/man3/slurm_print_job_step_info_msg.3
 create mode 100644 doc/man/man3/slurm_print_node_info_msg.3
 create mode 100644 doc/man/man3/slurm_print_node_table.3
 create mode 100644 doc/man/man3/slurm_print_partition_info.3
 create mode 100644 doc/man/man3/slurm_print_partition_info_msg.3
 rename doc/man/man3/{slurm_admin.3 => slurm_reconfigure.3} (64%)
 create mode 100644 doc/man/man3/slurm_shutdown.3
 create mode 100644 doc/man/man3/slurm_strerror.3
 create mode 100644 doc/man/man3/slurm_submit_batch_job.3
 create mode 100644 doc/man/man3/slurm_update_job.3
 create mode 100644 doc/man/man3/slurm_update_node.3
 create mode 100644 doc/man/man3/slurm_update_partition.3

diff --git a/doc/man/man3/slurm_job.3 b/doc/man/man3/slurm_allocate_resources.3
similarity index 69%
rename from doc/man/man3/slurm_job.3
rename to doc/man/man3/slurm_allocate_resources.3
index cd4002ab20b..10a5d6e6200 100644
--- a/doc/man/man3/slurm_job.3
+++ b/doc/man/man3/slurm_allocate_resources.3
@@ -1,7 +1,11 @@
-.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm job management calls"
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm job initiation functions"
 .SH "NAME"
-.LP 
-\fBslurm_job\fR \- Slurm job management calls
+slurm_allocate_resources, slurm_allocate_resources_and_run,
+slurm_confirm_allocation, 
+slurm_free_resource_allocation_and_run_response_msg, 
+slurm_free_submit_response_response_msg, slurm_init_job_desc_msg, 
+slurm_job_will_run, slurm_submit_batch_job
+\- Slurm job initiation functions
 .SH "SYNTAX"
 .LP 
 #include <slurm.h>
@@ -16,48 +20,28 @@ int \fBslurm_allocate_resources\fR (
 .br 
 );
 .LP 
-int \fBslurm_confirm_allocation\fR (
-.br 
-	old_job_alloc_msg_t *\fIold_job_desc_msg_ptr\fP,
+int \fBslurm_allocate_resources_and_run\fR (
 .br 
-	resource_allocation_response_msg_t **\fIslurm_alloc_msg_pptr\fP
-.br 
-);
-.LP
-int \fBslurm_cancel_job\fR (
+	job_desc_msg_t *\fIjob_desc_msg_ptr\fP,
 .br 
-	uint32_t \fIjob_id\fP
+	resource_allocation_and_run_response_msg_t **\fIslurm_alloc_run_msg_pptr\fP
 .br 
 );
-.LP
-int \fBslurm_cancel_job_step\fR (
-.br 
-	uint32_t \fIjob_id\fP,
-.br 
-	uint32_t \fIjob_step_id\fP
+.LP 
+int \fBslurm_confirm_allocation\fR (
 .br 
-);
-.LP
-int \fBslurm_complete_job\fR (
+	old_job_alloc_msg_t *\fIold_job_desc_msg_ptr\fP,
 .br 
-	uint32_t \fIjob_id\fP
+	resource_allocation_response_msg_t **\fIslurm_alloc_msg_pptr\fP
 .br 
 );
 .LP
-int \fBslurm_complete_job_step\fR (
+void \fBslurm_free_resource_allocation_and_run_response_msg\fR ( 
 .br 
-	uint32_t \fIjob_id\fP,
-.br 
-	uint32_t \fIjob_step_id\fP
+	resource_allocation_and_run_response_msg_t *\fIslurm_alloc_run_msg_ptr\fP 
 .br 
 );
 .LP
-void \fBslurm_free_job_step_create_response_msg\fR (
-.br
-	job_step_create_response_msg_t *\fIslurm_step_alloc_resp_msg_ptr\fP
-.br
-);
-.LP
 void \fBslurm_free_resource_allocation_response_msg\fR ( 
 .br 
 	resource_allocation_response_msg_t *\fIslurm_alloc_msg_ptr\fP 
@@ -84,15 +68,6 @@ int \fBslurm_job_will_run\fR (
 .br 
 );
 .LP
-int \fBslurm_job_step_create\fR (
-.br
-	job_step_create_request_msg_t *\fIslurm_step_alloc_req_msg_ptr\fP, 
-.br
-	job_step_create_response_msg_t **\fIslurm_step_alloc_resp_msg_pptr\fP
-.br
-);
-{
-.LP
 int \fBslurm_submit_batch_job\fR (
 .br 
 	job_desc_msg_t *\fIjob_desc_msg_ptr\fP,
@@ -100,12 +75,6 @@ int \fBslurm_submit_batch_job\fR (
 	submit_response_msg_t **\fIslurm_submit_msg_pptr\fP 
 .br 
 );
-.LP
-int \fBslurm_update_job\fR (
-.br 
-	job_desc_msg_t *\fIjob_desc_msg_ptr\fP
-.br 
-);
 .SH "ARGUMENTS"
 .LP 
 .TP 
@@ -117,12 +86,9 @@ allocation immediately; do not queue the request.
 Specifies the pointer to a job request specification. See slurm.h for full details 
 on the data structure's contents. 
 .TP 
-\fIjob_id\fP
-Slurm job id number.
-.TP 
 \fIold_job_desc_msg_ptr\fP
-Specifies the pointer to a description of an existing job. See slurm.h for full details 
-on the data structure's contents. 
+Specifies the pointer to a description of an existing job. See slurm.h for 
+full details on the data structure's contents. 
 .TP 
 \fIslurm_alloc_msg_pptr\fP
 Specifies the double pointer to the structure to be created and filled with a 
@@ -132,21 +98,17 @@ structure's contents.
 .TP 
 \fIslurm_alloc_msg_ptr\fP
 Specifies the pointer to the structure to be created and filled in by the function 
-\fIslurm_allocate_resources\fP or \fIslurm_job_will_run\fP.
-.TP
-\fIslurm_step_alloc_req_msg_ptr\fP
-Specifies the pointer to the structure with job spep request specification. See 
-slurm.h for full details on the data structure's contents.
-.TP
-\fIslurm_step_alloc_resp_msg_pptr\fP
-Specifies the double pointer to the structure to be created and filled with a description of the 
-created job step: node allocation, credentials, etc. See slurm.h for full details on the data 
-structure's contents. 
-.TP
-\fIslurm_step_alloc_resp_msg_ptr\fP
-Specifies the pointer to the structure to be created and filled with a description of the 
-created job step: node allocation, credentials, etc. See slurm.h for full details on the data 
-structure's contents. 
+\fIslurm_allocate_resources\fP, \fIslurm_confirm_allocation\fP or \fIslurm_job_will_run\fP.
+.TP 
+\fIslurm_alloc_run_msg_pptr\fP
+Specifies the double pointer to the structure to be created and filled with a 
+description of the created resource allocation (job) and job step: job ID, 
+step_id, list of allocated nodes, processor count per allocated node, etc. 
+See slurm.h for full details on the data structure's contents. 
+.TP 
+\fIslurm_alloc_run_msg_ptr\fP
+Specifies the pointer to the structure to be created and filled in by the function 
+\fBslurm_allocate_resources_and_run\fP.
 .TP 
 \fIslurm_submit_msg_pptr\fP
 Specifies the double pointer to the structure to be created and filled with a description 
@@ -154,46 +116,32 @@ of the created job: job ID, etc. See slurm.h for full details on the data struct
 .TP 
 \fIslurm_submit_msg_ptr\fP
 Specifies the pointer to the structure to be created and filled in by the function \fIslurm_submit_batch_job\fP.
-.TP
-\fIjob_step_id\fp
-Slurm job step id number.
 .SH "DESCRIPTION"
 .LP 
 \fBslurm_allocate_resources\fR Request a resource allocation for a job. If successful, a 
 job entry is created. Always release the response message when no longer required using 
 the function \fBslurm_free_resource_allocation_response_msg\fR.
 .LP 
-\fBslurm_cancel_job\fR Request the cancellation of a running or pending job. This function 
-may only be successfully executed by the job's owner or user root.
-.LP 
-\fBslurm_cancel_job_step\fR Request the cancellation of a running job step. This function 
-may only be successfully executed by the job's owner or user root.
-.LP 
-\fBslurm_complete_job\fR Note the termination of a job. This function may only be successfully 
-executed by the job's owner or user root.
-.LP 
-\fBslurm_complete_job_step\fR Note the termination of a job step. This function may only 
-be successfully executed by the job's owner or user root.
+\fBslurm_allocate_resources_and_run\fR Request a resource allocation for a job 
+including the initiation of a job step to span the full allocation. If successful, 
+job and job step records are created. Always release the response message when no 
+longer required using the function \fBslurm_free_resource_allocation_and_run_response_msg\fR.
 .LP 
 \fBslurm_confirm_allocation\fR Return detailed information on a specific existing job 
 allocation.  This function may only be successfully executed by the job's owner or user 
 root.
-.LP
-\fBslurm_free_job_step_create_response_msg\fR Release the storage generated in response 
-to a call of the function \fBslurm_job_step_create\fR.
+.LP 
+\fBslurm_free_resource_allocation_and_run_response_msg\fR Release the storage generated 
+in response to a call of the function \fBslurm_allocate_resources_and_run\fR.
 .LP 
 \fBslurm_free_resource_allocation_response_msg\fR Release the storage generated in response 
-to a call of the function \fBslurm_allocate_resources\fR or \fBslurm_job_will_run\fR.
+to a call of the function \fBslurm_allocate_resources\fR, \fBslurm_confirm_allocation\fR or \fBslurm_job_will_run\fR.
 .LP 
-\fBslurm_free_submit_response_msg\fR Release the storage generated in response to a call 
-of the function \fBslurm_submit_batch_job\fR.
+\fBslurm_free_submit_response_msg\fR Release the storage generated in response 
+to a call of the function \fBslurm_submit_batch_job\fR.
 .LP 
 \fBslurm_init_job_desc_msg\fR Initialize the contents of a job descriptor with default values. 
 Execute this function before issuing a request to submit or modify a job.
-.LP
-\fBslurm_job_step_create\fR Initialize a job step including the allocation of nodes to 
-it from those already allocate to that job. Always release the response message when no 
-longer required using the function \fBslurm_free_job_step_create_response_msg\fR.
 .LP 
 \fBslurm_job_will_run\fR Determine if the supplied job description could be executed immediately. 
 If successful, a list of the available nodes and their configurations will be returned. Always 
@@ -203,13 +151,6 @@ release the response message when no longer required using the function
 \fBslurm_submit_batch_job\fR Submit a job for later execution. The job will be queued 
 and executed when resources are available.  Always release the response message when no 
 longer required using the function \fBslurm_free_submit_response_msg\fR.
-.LP 
-\fBslurm_update_job\fR Update the characteristics of an existing job. Not all job 
-characteristics may be changed (e.g. the time limit of a job may be changed, but the nodes 
-allocated to a running job may not be changed). This function may only be executed 
-by the job's owner only for selected operations (e.g. decrease the job's priority). 
-User root may modify more job parameters and in ways the job's owner can not (e.g. 
-changing the job's associated features or increasing its priority).
 .SH "RETURN VALUE"
 .LP
 On success, zero is returned. On error, -1 is returned, and Slurm error code is set appropriately.
@@ -287,18 +228,26 @@ int main (int argc, char *argv[])
 .br 
 	job_mesg. num_nodes = 400;
 .br 
-	if (slurm_allocate_resources(&job_desc_msg,&slurm_alloc_msg_ptr,true)) {
+	if (slurm_allocate_resources(&job_desc_msg,
+.br
+	                             &slurm_alloc_msg_ptr,
+.br
+	                             true)) {
 .br
-		printf ("allocate errno %d\n", slurm_get_errno());
+		slurm_perror ("slurm_allocate_resources error");
 .br 
 		exit (1);
 	}
 .br 
 	printf ("Allocated nodes %s to job_id %u\n", 
 .br 
-		slurm_alloc_msg_ptr->node_list, slurm_alloc_msg_ptr->job_id );
+	        slurm_alloc_msg_ptr->node_list, 
+.br
+	        slurm_alloc_msg_ptr->job_id );
 .br 
-	if ( slurm_job_cancel ( slurm_alloc_msg_ptr->job_id ) ) {
+	if (slurm_job_cancel(slurm_alloc_msg_ptr->
+.br
+	                     job_id)) {
 .br 
 		printf ("cancel errno %d\n", slurm_get_errno());
 .br 
@@ -306,9 +255,11 @@ int main (int argc, char *argv[])
 .br 
 	}
 .br
-	printf ("canceled job_id %u\n", slurm_alloc_msg_ptr->job_id );
+	printf ("canceled job_id %u\n", 
+.br
+	        slurm_alloc_msg_ptr->job_id );
 .br 
-	slurm_free_resource_allocation_response_msg ( slurm_alloc_msg_ptr );
+	slurm_free_resource_allocation_response_msg (slurm_alloc_msg_ptr);
 .br 
 	exit (0);
 .br 
diff --git a/doc/man/man3/slurm_allocate_resources_and_run.3 b/doc/man/man3/slurm_allocate_resources_and_run.3
new file mode 100644
index 00000000000..6534eeb96c7
--- /dev/null
+++ b/doc/man/man3/slurm_allocate_resources_and_run.3
@@ -0,0 +1 @@
+.so man3/slurm_allocate_resources.3
diff --git a/doc/man/man3/slurm_cancel_job.3 b/doc/man/man3/slurm_cancel_job.3
new file mode 100644
index 00000000000..641bb7b4df8
--- /dev/null
+++ b/doc/man/man3/slurm_cancel_job.3
@@ -0,0 +1,73 @@
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm job cancel calls"
+.SH "NAME"
+slurm_cancel_job, slurm_cancel_job_step \- Slurm job cancel calls
+.SH "SYNTAX"
+.LP 
+#include <slurm.h>
+.LP
+int \fBslurm_cancel_job\fR (
+.br 
+	uint32_t \fIjob_id\fP
+.br 
+);
+.LP
+int \fBslurm_cancel_job_step\fR (
+.br 
+	uint32_t \fIjob_id\fP,
+.br 
+	uint32_t \fIjob_step_id\fP
+.br 
+);
+.SH "ARGUMENTS"
+.LP 
+.TP 
+\fIjob_id\fP
+Slurm job id number.
+.TP
+\fIjob_step_id\fp
+Slurm job step id number.
+.SH "DESCRIPTION"
+.LP 
+\fBslurm_cancel_job\fR Request the cancellation of a running or pending job. This function 
+may only be successfully executed by the job's owner or user root.
+.LP 
+\fBslurm_cancel_job_step\fR Request the cancellation of a running job step. This function 
+may only be successfully executed by the job's owner or user root.
+.SH "RETURN VALUE"
+.LP
+On success, zero is returned. On error, -1 is returned, and Slurm error code is set 
+appropriately.
+.SH "ERRORS"
+.LP
+\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
+.LP
+\fBESLURM_DEFAULT_PARTITION_NOT_SET\fR the system lacks a valid default partition.
+.LP
+\fBESLURM_INVALID_JOB_ID\fR the requested job id does not exist. 
+.LP
+\fBESLURM_ALREADY_DONE\fR the specified job has already completed and can not be modified. 
+.LP
+\fBESLURM_ACCESS_DENIED\fR the requesting user lacks authorization for the requested action (e.g. trying to delete or modify another user's job). 
+.LP
+\fBESLURM_INTERCONNECT_FAILURE\fR failed to configure the node interconnect. 
+.SH "COPYING"
+Copyright (C) 2002 The Regents of the University of California.
+Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+UCRL-CODE-2002-040.
+.LP
+This file is part of SLURM, a resource management program.
+For details, see <http://www.llnl.gov/linux/slurm/>.
+.LP
+SLURM is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+.LP
+SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+details.
+.SH "SEE ALSO"
+.LP 
+\fBscancel\fR(1), \fBslurm_get_errno\fR(3), 
+\fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
diff --git a/doc/man/man3/slurm_cancel_job_step.3 b/doc/man/man3/slurm_cancel_job_step.3
new file mode 100644
index 00000000000..52338b98757
--- /dev/null
+++ b/doc/man/man3/slurm_cancel_job_step.3
@@ -0,0 +1 @@
+.so man3/slurm_cancel_job.3
diff --git a/doc/man/man3/slurm_complete_job.3 b/doc/man/man3/slurm_complete_job.3
new file mode 100644
index 00000000000..3a117f22486
--- /dev/null
+++ b/doc/man/man3/slurm_complete_job.3
@@ -0,0 +1,71 @@
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm job completion calls"
+.SH "NAME"
+slurm_complete_job, slurm_complete_job_step \- Slurm job completion calls
+.SH "SYNTAX"
+.LP 
+#include <slurm.h>
+.LP
+int \fBslurm_complete_job\fR (
+.br 
+	uint32_t \fIjob_id\fP
+.br 
+);
+.LP
+int \fBslurm_complete_job_step\fR (
+.br 
+	uint32_t \fIjob_id\fP,
+.br 
+	uint32_t \fIjob_step_id\fP
+.br 
+);
+.SH "ARGUMENTS"
+.LP 
+.TP 
+\fIjob_id\fP
+Slurm job id number.
+.TP
+\fIjob_step_id\fp
+Slurm job step id number.
+.SH "DESCRIPTION"
+.LP 
+\fBslurm_complete_job\fR Note the termination of a job. This function may only be 
+successfully executed by the job's owner or user root.
+.LP 
+\fBslurm_complete_job_step\fR Note the termination of a job step. This function 
+may only be successfully executed by the job's owner or user root.
+.SH "RETURN VALUE"
+.LP
+On success, zero is returned. On error, -1 is returned, and Slurm error code 
+is set appropriately.
+.SH "ERRORS"
+.LP
+\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
+.LP
+\fBESLURM_INVALID_JOB_ID\fR the requested job id does not exist. 
+.LP
+\fBESLURM_ALREADY_DONE\fR the specified job has already completed and can 
+not be modified. 
+.LP
+\fBESLURM_ACCESS_DENIED\fR the requesting user lacks authorization for the requested action (e.g. trying to delete or modify another user's job). 
+.LP
+\fBESLURM_INTERCONNECT_FAILURE\fR failed to configure the node interconnect. 
+.SH "COPYING"
+Copyright (C) 2002 The Regents of the University of California.
+Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+UCRL-CODE-2002-040.
+.LP
+This file is part of SLURM, a resource management program.
+For details, see <http://www.llnl.gov/linux/slurm/>.
+.LP
+SLURM is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+.LP
+SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+details.
+.SH "SEE ALSO"
+.LP 
+\fBslurm_get_errno\fR(3), \fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
diff --git a/doc/man/man3/slurm_complete_job_step.3 b/doc/man/man3/slurm_complete_job_step.3
new file mode 100644
index 00000000000..117b5dc5918
--- /dev/null
+++ b/doc/man/man3/slurm_complete_job_step.3
@@ -0,0 +1 @@
+.so man3/slurm_complete_job.3
diff --git a/doc/man/man3/slurm_confirm_allocation.3 b/doc/man/man3/slurm_confirm_allocation.3
new file mode 100644
index 00000000000..6534eeb96c7
--- /dev/null
+++ b/doc/man/man3/slurm_confirm_allocation.3
@@ -0,0 +1 @@
+.so man3/slurm_allocate_resources.3
diff --git a/doc/man/man3/slurm_free_ctl_conf.3 b/doc/man/man3/slurm_free_ctl_conf.3
new file mode 100644
index 00000000000..1176a651835
--- /dev/null
+++ b/doc/man/man3/slurm_free_ctl_conf.3
@@ -0,0 +1,139 @@
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm informational calls"
+.SH "NAME"
+slurm_free_ctl_conf, slurm_load_ctl_conf, 
+slurm_print_ctl_conf\- Slurm information reporting functions
+.SH "SYNTAX"
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP 
+void \fBslurm_free_ctl_conf\fR (
+.br 
+	slurm_ctl_conf_info_msg_t *\fIconf_info_msg_ptr\fP
+.br 
+);
+.LP
+int \fBslurm_load_ctl_conf\fR (
+.br 
+	time_t \fIupdate_time\fP,
+.br 
+	slurm_ctl_conf_info_msg_t **\fIconf_info_msg_pptr\fP
+.br 
+);
+.LP 
+void \fBslurm_print_ctl_conf\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	slurm_ctl_conf_info_msg_t *\fIconf_info_msg_ptr\fP
+.br 
+);
+.SH "ARGUMENTS"
+.LP 
+.TP 
+\fIconf_info_msg_pptr\fP
+Specifies the double pointer to the structure to be created and filled with the 
+time of the last configuration update and detailed configuration information. 
+Configuration information includes control machine names, file names, timer 
+values, etc. See slurm.h for full details on the data structure's contents. 
+.TP 
+\fIconf_info_msg_ptr\fP
+Specifies the pointer to the structure created by \fBslurm_load_ctl_conf\fR. 
+.TP 
+\fIout_file\fP
+Specifies the file to print data to.
+.TP 
+\fIupdate_time\fP
+For all of the following informational calls, if update_time is equal to or
+greater than the last time changes where made to that information, new information
+is not returned.  Otherwise all the configuration. job, node, or partition records 
+are returned.
+.SH "DESCRIPTION"
+.LP 
+\fBslurm_free_ctl_conf\fR Release the storage generated by the 
+\fBslurm_load_ctl_conf\fR function.
+.LP 
+\fBslurm_load_ctl_conf\fR Returns a slurm_ctl_conf_info_msg_t that contains
+Slurm configuration records.
+.LP 
+\fBslurm_print_ctl_conf\fR Prints the contents of the data structure loaded by the
+\fBslurm_load_ctl_conf\fR function.
+.SH "RETURN VALUE"
+.LP
+On success, zero is returned. On error, -1 is returned, and Slurm error code
+is set appropriately.
+.SH "ERRORS"
+.LP
+\fBSLURM_NO_CHANGE_IN_DATA\fR Data has not changed since \fBupdate_time\fR.
+.LP
+\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
+.SH "EXAMPLE"
+.eo
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP 
+int main (int argc, char *argv[])
+.br 
+{
+.br
+	slurm_ctl_conf_info_msg_t * conf_info_msg_ptr = NULL;
+.LP
+	/* get and print some configuration information */
+.br
+	if ( slurm_load_ctl_conf ((time_t) NULL,
+.br
+	                          &conf_info_msg_ptr ) ) {
+.br
+		slurm_perror ("slurm_load_ctl_conf error");
+.br
+		exit (1);
+.br
+	}
+.br
+	/* The easy way to print */
+.br
+	slurm_print_ctl_conf (stdout, 
+.br
+	                      conf_info_msg_ptr);
+.LP
+	/* The hard way */
+.br
+	printf ("control_machine = %s\n", 
+.br
+	        slurm_ctl_conf_ptr->control_machine);
+.br
+	printf ("server_timeout = %u\n", 
+.br
+	        slurm_ctl_conf_ptr->server_timeout);
+.LP
+	slurm_free_ctl_conf (conf_info_msg_ptr);
+.br
+	exit (0);
+.br 
+}
+.ec
+.SH "COPYING"
+Copyright (C) 2002 The Regents of the University of California.
+Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+UCRL-CODE-2002-040.
+.LP
+This file is part of SLURM, a resource management program.
+For details, see <http://www.llnl.gov/linux/slurm/>.
+.LP
+SLURM is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+.LP
+SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+details.
+.SH "SEE ALSO"
+.LP 
+\fBscontrol\fR(1), 
+\fBslurm_get_errno\fR(3), \fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
+
diff --git a/doc/man/man3/slurm_free_job_info.3 b/doc/man/man3/slurm_free_job_info.3
new file mode 100644
index 00000000000..b4841c58e73
--- /dev/null
+++ b/doc/man/man3/slurm_free_job_info.3
@@ -0,0 +1,174 @@
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm job information reporting functions"
+.SH "NAME"
+slurm_free_job_info, slurm_load_jobs, 
+slurm_print_job_info, slurm_print_job_info_msg
+\- Slurm job information reporting functions
+.SH "SYNTAX"
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP
+void \fBslurm_free_job_info\fR (
+.br 
+	job_info_msg_t *\fIjob_info_msg_ptr\fP
+.br 
+);
+.LP 
+int \fBslurm_load_jobs\fR (
+.br 
+	time_t \fIupdate_time\fP,
+.br 
+	job_info_msg_t **\fIjob_info_msg_pptr\fP
+.br 
+);
+.LP 
+void \fBslurm_print_job_info\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	job_info_t *\fIjob_ptr\fP
+.br 
+);
+.LP 
+void \fBslurm_print_job_info_msg\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	job_info_msg_t *\fIjob_info_msg_ptr\fP
+.br 
+);
+.SH "ARGUMENTS"
+.LP 
+.TP 
+\fIjob_info_msg_pptr\fP
+Specifies the double pointer to the structure to be created and filled with the 
+time of the last job update, a record count, and detailed information about each 
+job. Detailed job information is written to fixed sized records and includes: 
+ID number, name, user ID, state, assigned or requested node names, indexes into 
+the node table, etc. In the case of indexes into the node table, this is an array 
+of integers with pairs of start and end index number into the node information 
+records and the data is terminated with a value of -1. See slurm.h for full details 
+on the data structure's contents. 
+.TP 
+\fIjob_info_msg_ptr\fP
+Specifies the pointer to the structure created by \fBslurm_load_jobs\fR. 
+.TP
+\fIjob_ptr\fP
+Specifies a pointer to a single job records from the \fIjob_info_msg_ptr\fP data 
+structure.
+.TP 
+\fIout_file\
+Specifies the file to print data to.
+.TP 
+\fIupdate_time\fP
+For all of the following informational calls, if update_time is equal to or greater than the last time changes where made to that information, new information is not returned.  Otherwise all the configuration. job, node, or partition records are returned.
+.SH "DESCRIPTION"
+.LP 
+\fBslurm_free_job_info\fR Release the storage generated by the \fBslurm_load_jobs\fR 
+function.
+.LP 
+\fBslurm_load_jobs\fR Returns a job_info_msg_t that contains an update time, record count, and array of job_table records for all jobs.
+.LP 
+\fBslurm_print_job_info\fR Prints the contents of the data structure describing a 
+single job records from the data loaded by the \fBslurm_load_node\fR function.
+.LP 
+\fBslurm_print_job_info_msg\fR Prints the contents of the data structure describing 
+all job records loaded by the \fBslurm_load_node\fR function.
+.SH "RETURN VALUE"
+.LP
+On success, zero is returned. On error, -1 is returned, and Slurm error code is set appropriately.
+.SH "ERRORS"
+.LP
+\fBSLURM_NO_CHANGE_IN_DATA\fR Data has not changed since \fBupdate_time\fR.
+.LP
+\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
+.SH "EXAMPLE"
+.eo
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP 
+int main (int argc, char *argv[])
+.br 
+{
+.br 
+	int i;
+.br
+	job_info_msg_t	* job_info_msg = NULL;
+.br
+	job_info_t * job_ptr;
+.LP
+	/* get and dump some job information */
+.br
+	if ( slurm_load_jobs ((time_t) NULL, 
+.br
+	                      &job_buffer_ptr) ) {
+.br
+		slurm_perror ("slurm_load_jobs error");
+.br
+		exit (1);
+.br
+	}
+.LP
+	/* The easy way to print... */
+.br
+	slurm_print_job_info_msg (stdout, job_buffer_ptr);
+.LP
+	/* A harder way.. */
+.br
+	for (i = 0; i < job_buffer_ptr->record_count; i++) {
+.br
+		job_ptr = &job_buffer_ptr->job_array[i];
+.br
+		slurm_print_job_info(stdout, job_ptr);
+.br
+	}
+.LP
+	/* The hardest way. */
+.br
+	printf ("Jobs updated at %lx, record count %d\n",
+.br
+	        job_buffer_ptr->last_update, 
+.br
+	        job_buffer_ptr->record_count);
+.br
+	for (i = 0; i < job_buffer_ptr->record_count; i++) {
+.br
+		printf ("JobId=%u UserId=%u\n", 
+.br
+			job_buffer_ptr->job_array[i].job_id, 
+.br
+			job_buffer_ptr->job_array[i].user_id);
+.br
+	}			
+.LP
+	slurm_free_job_info (job_buffer_ptr);
+.br
+	exit (0);
+.br 
+}
+.ec
+.SH "COPYING"
+Copyright (C) 2002 The Regents of the University of California.
+Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+UCRL-CODE-2002-040.
+.LP
+This file is part of SLURM, a resource management program.
+For details, see <http://www.llnl.gov/linux/slurm/>.
+.LP
+SLURM is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+.LP
+SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+details.
+.SH "SEE ALSO"
+.LP 
+\fBscontrol\fR(1), \fBsqueue\fR(1), \fBslurm_confirm_allocation\fR(3), 
+\fBslurm_get_errno\fR(3), \fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
+
diff --git a/doc/man/man3/slurm_free_job_step_create_response_msg.3 b/doc/man/man3/slurm_free_job_step_create_response_msg.3
new file mode 100644
index 00000000000..a89edfa0dc0
--- /dev/null
+++ b/doc/man/man3/slurm_free_job_step_create_response_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_job_step_create.3
diff --git a/doc/man/man3/slurm_free_job_step_info_response_msg.3 b/doc/man/man3/slurm_free_job_step_info_response_msg.3
new file mode 100644
index 00000000000..fd4494e5a8b
--- /dev/null
+++ b/doc/man/man3/slurm_free_job_step_info_response_msg.3
@@ -0,0 +1,189 @@
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm job step information functions"
+.SH "NAME"
+\fBslurm_free_job_step_info_response_msg, slurm_get_job_steps,
+slurm_print_job_step_info, slurm_print_job_step_info_msg
+\- Slurm job step information reporting functions
+.SH "SYNTAX"
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP
+void \fBslurm_free_job_step_info_response_msg\fR (
+.br 
+	job_step_info_response_msg_t *\fIjob_step_info_msg_ptr\fP
+.br 
+);
+.LP
+void \fBslurm_get_job_steps\fR (
+.br 
+	time_t *\fIupdate_time\fP,
+.br
+	uint32_t \fIjob_id\fP, 
+.br
+	uint32_t \fIstep_id\fP, 
+.br
+	job_step_info_response_msg_t **\fIjob_step_info_msg_pptr\fP
+.br 
+);
+.LP 
+void \fBslurm_print_job_step_info\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	job_step_info_t *\fIjob_step_ptr\fP
+.br 
+);
+.LP 
+void \fBslurm_print_job_step_info_msg\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	job_step_info_response_msg_t *\fIjob_step_info_msg_ptr\fP
+.br 
+);
+.SH "ARGUMENTS"
+.LP 
+.TP
+\fIjob_id\fP
+Specifies a slurm job ID. A value of zero implies all jobs.
+.TP 
+\fIjob_step_info_msg_pptr\fP
+Specifies the double pointer to the structure to be created and filled 
+with the time of the last node update, a record count, and detailed 
+information about each job step specified. Detailed job step information 
+is written to fixed sized records and includes: job_id, step_id, node
+names, etc. See slurm.h for full details on the data structure's contents. 
+.TP 
+\fIjob_step_info_msg_ptr\fP
+Specifies the pointer to the structure created by the function 
+\fBslurm_get_job_steps\fP. 
+.TP
+\fIjob_step_ptr\fP
+Specifies a pointer to a single job step records from the \fIjob_step_info_msg_pptr\fP 
+data structure.
+.TP 
+\fIout_file\fP
+Specifies the file to print data to.
+.TP
+\fIstep_id\fP
+Specifies a slurm job step ID. A value of zero implies all job steps.
+.TP 
+\fIupdate_time\fP
+For all of the following informational calls, if update_time is equal to or greater than the last time changes where made to that information, new information is not returned.  Otherwise all the configuration. job, node, or partition records are returned.
+.SH "DESCRIPTION"
+.LP 
+\fBslurm_free_job_step_info_response_msg\fR Release the storage generated by 
+the \fBslurm_get_job_steps\fR function.
+.LP
+\fBslurm_get_job_steps\fR Loads into details about job steps that satisfy 
+the \fIjob_id\fP and/or \fIstep_id\fP specifications provided if the data 
+has been updated since the \fIupdate_time\fP specified.
+.LP 
+\fBslurm_print_job_step_info\fR Prints the contents of the data structure 
+describing a single job step records from the data loaded by the 
+\fslurm_get_job_steps\fR function.
+.LP 
+\fBslurm_print_job_step_info_msg\fR Prints the contents of the data 
+structure describing all job step records loaded by the
+\fslurm_get_job_steps\fR function.
+.SH "RETURN VALUE"
+.LP
+On success, zero is returned. On error, -1 is returned, and Slurm error 
+code is set appropriately.
+.SH "ERRORS"
+.LP
+\fBSLURM_NO_CHANGE_IN_DATA\fR Data has not changed since \fBupdate_time\fR.
+.LP
+\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
+.SH "EXAMPLE"
+.eo
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP 
+int main (int argc, char *argv[])
+.br 
+{
+.br 
+	int i;
+.br
+	job_step_info_response_msg_t * step_info_ptr = NULL;
+.br
+	job_step_info_t * step_ptr;
+.LP
+	/* get and dump some job information */
+.br
+	if ( slurm_get_job_steps ((time_t) NULL, 0, 0,
+.br
+	                          &step_info_ptr) ) {
+.br
+		slurm_perror ("slurm_get_job_steps error");
+.br
+		exit (1);
+.br
+	}
+.LP
+	/* The easy way to print... */
+.br
+	slurm_print_job_step_info_msg (stdout, 
+.br
+	                               step_info_ptr);
+.LP
+	/* A harder way.. */
+.br
+	for (i = 0; i < step_info_ptr->record_count; i++) {
+.br
+		step_ptr = &step_info_ptr->job_steps[i];
+.br
+		slurm_print_job_step_info(stdout, step_ptr);
+.br
+	}
+.LP
+	/* The hardest way. */
+.br
+	printf ("Steps updated at %lx, record count %d\n",
+.br
+	        step_info_ptr->last_update, 
+.br
+	        step_info_ptr->job_step_count);
+.br
+	for (i = 0; i < step_info_ptr->job_step_count; i++) {
+.br
+		printf ("JobId=%u StepId=%u\n", 
+.br
+			step_info_ptr->job_steps[i].job_id, 
+.br
+			step_info_ptr->job_steps[i].step_id);
+.br
+	}			
+.LP
+	slurm_free_job_step_info_response_msg(step_info_ptr);
+.br
+	exit (0);
+.br 
+}
+.ec
+.SH "COPYING"
+Copyright (C) 2002 The Regents of the University of California.
+Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+UCRL-CODE-2002-040.
+.LP
+This file is part of SLURM, a resource management program.
+For details, see <http://www.llnl.gov/linux/slurm/>.
+.LP
+SLURM is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+.LP
+SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+details.
+.SH "SEE ALSO"
+.LP 
+\fBscontrol\fR(1), \fBsqueue\fR(1),  \fBslurm_get_errno\fR(3), 
+\fBslurm_load_jobs\fR(3), \fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
+
diff --git a/doc/man/man3/slurm_free_node_info.3 b/doc/man/man3/slurm_free_node_info.3
new file mode 100644
index 00000000000..a46a15116f6
--- /dev/null
+++ b/doc/man/man3/slurm_free_node_info.3
@@ -0,0 +1,233 @@
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm node informational calls"
+.SH "NAME"
+slurm_free_node_info, slurm_load_node, 
+slurm_print_node_info_msg, slurm_print_node_table
+\- Slurm node information reporting functions
+.SH "SYNTAX"
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP
+void \fBslurm_free_node_info\fR (
+.br 
+	node_info_msg_t *\fInode_info_msg_ptr\fP
+.br 
+);
+.LP 
+int \fBslurm_load_node\fR (
+.br 
+	time_t \fIupdate_time\fP, 
+.br 
+	node_info_msg_t **\fInode_info_msg_pptr\fP
+.br 
+);
+.LP 
+void \fBslurm_print_node_info_msg\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	node_info_msg_t *\fInode_info_msg_ptr\fP
+.br 
+);
+.LP 
+void \fBslurm_print_node_table\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	node_info_t *\fInode_ptr\fP
+.br 
+);
+.SH "ARGUMENTS"
+.LP 
+.TP 
+\fInode_info_msg_ptr\fP
+Specifies the pointer to the structure created by \fBslurm_load_node\fR. 
+.TP 
+\fInode_info_msg_pptr\fP
+Specifies the double pointer to the structure to be created and filled with 
+the time of the last node update, a record count, and detailed information 
+about each node. Detailed node information is written to fixed sized records 
+and includes: name, state, processor count, memory size, etc. See slurm.h for 
+full details on the data structure's contents. 
+.TP 
+\fInode_info_msg_ptr\fP
+Specifies the pointer to the structure created by \fBslurm_load_node\fR. 
+.TP
+\fInode_ptr\fP
+Specifies a pointer to a single node records from the \fInode_info_msg_ptr\fP 
+data structure.
+.TP 
+\fIout_file\fP
+Specifies the file to print data to.
+.TP 
+\fIupdate_time\fP
+For all of the following informational calls, if update_time is equal to 
+or greater than the last time changes where made to that information, new 
+information is not returned.  Otherwise all the configuration. job, node, 
+or partition records are returned.
+.SH "DESCRIPTION"
+.LP 
+\fBslurm_free_node_info\fR Release the storage generated by the
+\fBslurm_load_node\fR function.
+.LP 
+\fBslurm_load_node\fR Returns a \fInode_info_msg_t\fP that contains an update 
+time, record count, and array of node_table records for all nodes.
+.LP 
+\fBslurm_print_node_info_msg\fR Prints the contents of the data structure 
+describing all node records from the data loaded by the \fBslurm_load_node\fR 
+function.
+.LP 
+\fBslurm_print_node_table\fR Prints the contents of the data structure 
+describing a single node record loaded by the \fBslurm_load_node\fR function.
+.SH "RETURN VALUE"
+.LP
+On success, zero is returned. On error, -1 is returned, and Slurm error code 
+is set appropriately.
+.SH "ERRORS"
+.LP
+\fBSLURM_NO_CHANGE_IN_DATA\fR Data has not changed since \fBupdate_time\fR.
+.LP
+\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
+.SH "EXAMPLE"
+.eo
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.br
+#include <slurm_errno.h>
+.LP 
+int main (int argc, char *argv[])
+.br 
+{
+.br 
+	int i, j, k;
+.br
+	partition_info_msg_t *part_info_ptr = NULL;
+.br
+	partition_info_t *part_ptr;
+.br
+	node_info_msg_t *node_info_ptr = NULL;
+.br
+	node_info_t *node_ptr;
+.LP
+	/* get and dump some node information */
+.br
+	if ( slurm_load_node ((time_t) NULL, 
+.br
+	                      &node_buffer_ptr) ) {
+.br
+		slurm_perror ("slurm_load_node error");
+.br
+		exit (1);
+.br
+	}
+.LP
+	/* The easy way to print... */
+.br
+	slurm_print_node_info_msg (stdout, node_buffer_ptr);
+.LP
+	/* A harder way.. */
+.br
+	for (i = 0; i < node_buffer_ptr->record_count; i++) {
+.br
+		node_ptr = &node_buffer_ptr->node_array[i];
+.br
+		slurm_print_job_info(stdout, node_ptr);
+.br
+	}
+.LP
+	/* The hardest way. */
+.br
+	for (i = 0; i < node_buffer_ptr->node_count; i++) {
+.br
+		printf ("NodeName=%s CPUs=%u\n", 
+.br
+			node_buffer_ptr->node_array[i].name, 
+.br
+			node_buffer_ptr->node_array[i].cpus);
+.br
+	}			
+.LP
+	/* get and dump some partition information */
+.br
+	/* note that we use the node information loaded */
+.br
+	/* above and we assume the node table entries have */
+.br
+	/* not changed since */
+.br
+	if ( slurm_load_partitions ((time_t) NULL, 
+.br
+	                            &part_buffer_ptr) ) {
+.br
+		slurm_perror ("slurm_load_partitions error");
+.br
+		exit (1);
+.br
+	}
+.br
+	for (i = 0; i < part_buffer_ptr->record_count; i++) {
+.br
+		part_ptr = &part_info_ptr->partition_array[i];
+.br
+		printf ("PartitionName=%s Nodes=", 
+.br
+			part_ptr->name);
+.br
+		for (j = 0; part_ptr->node_inx; j+=2) {
+.br
+			if (part_ptr->node_inx[j] == -1)
+.br
+				break;
+.br
+			for (k = part_ptr->node_inx[j]; 
+.br
+			     k <= part_ptr->node_inx[j+1]; 
+.br
+			     k++) {
+.br
+				printf ("%s ", node_buffer_ptr->
+.br
+				        node_array[k].name);
+.br
+			}
+.br
+		}
+.br
+		printf("\n\n");
+.br
+	}
+.br
+	slurm_free_node_info (node_buffer_ptr);
+.br
+	slurm_free_partition_info (part_buffer_ptr);
+.br
+	exit (0);
+.br 
+}
+.ec
+.SH "COPYING"
+Copyright (C) 2002 The Regents of the University of California.
+Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+UCRL-CODE-2002-040.
+.LP
+This file is part of SLURM, a resource management program.
+For details, see <http://www.llnl.gov/linux/slurm/>.
+.LP
+SLURM is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+.LP
+SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+details.
+.SH "SEE ALSO"
+.LP 
+\fBscontrol\fR(1), \fBsqueue\fR(1), \fBslurm_confirm_allocation\fR(3), 
+\fBslurm_get_errno\fR(3), \fBslurm_load_partitions\fR(3),
+\fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
+
diff --git a/doc/man/man3/slurm_free_partition_info.3 b/doc/man/man3/slurm_free_partition_info.3
new file mode 100644
index 00000000000..4639b680de8
--- /dev/null
+++ b/doc/man/man3/slurm_free_partition_info.3
@@ -0,0 +1,166 @@
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm partition information reporting functions"
+.SH "NAME"
+slurm_free_partition_info, slurm_load_partitions, 
+slurm_print_partition_info, slurm_print_partition_info_msg
+\- Slurm partitioninformation reporting functions
+.SH "SYNTAX"
+.LP
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP
+void \fBslurm_free_partition_info\fR (
+.br 
+	partition_info_msg_t *\fIpartition_info_msg_ptr\fP
+.br 
+);
+.LP 
+int \fBslurm_load_partitions\fR (
+.br 
+	time_t \fIupdate_time\fR, 
+.br 
+	partition_info_msg_t **\fIpartition_info_msg_pptr\fP
+.br 
+ );
+.LP 
+void \fBslurm_print_partition_info\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	partition_info_t *\fIpartition_ptr\fP
+.br 
+);
+.LP 
+void \fBslurm_print_partition_info_msg\fR (
+.br
+	FILE *\fIout_file\fp,
+.br
+	partition_info_msg_t *\fIpartition_info_msg_ptr\fP
+.br 
+);
+.SH "ARGUMENTS"
+.LP 
+.TP 
+\fIout_file\fP
+Specifies the file to print data to.
+.TP
+\fIpartition_info_msg_pptr\fP
+Specifies the double pointer to the structure to be created and filled with the time 
+of the last partition update, a record count, and detailed information about each partition. Detailed partition information is written to fixed sized records and includes: name, state, job time limit, job size limit, node names, indexes into the node table, etc. In the case of indexes into the node table, this is an array of integers with pairs of start and end index number into the node information records and the data is terminated with a value of -1. See slurm.h for full details on the data structure's contents. 
+.TP 
+\fIpartition_info_msg_ptr\fP
+Specifies the pointer to the structure created by \fBslurm_load_partitions\fP. 
+\fIupdate_time\fP
+For all of the following informational calls, if update_time is equal to or greater than the last time changes where made to that information, new information is not returned.  Otherwise all the configuration. job, node, or partition records are returned.
+.SH "DESCRIPTION"
+.LP 
+\fBslurm_free_partition_info\fR Release the storage generated by the 
+\fBslurm_load_partitions\fR function.
+.LP 
+\fBslurm_load_partitions\fR Returns a partition_info_msg_t that contains an update time, record count, and array of partition_table records for all partitions.
+.LP 
+\fBslurm_print_partition_info\fR Prints the contents of the data structure describing a 
+single partition records from the data loaded by the \fBslurm_load_partitions\fR function.
+.LP 
+\fBslurm_print_partition_info_msg\fR Prints the contents of the data structure describing 
+all partition records loaded by the \fBslurm_load_partitions\fR function.
+.SH "RETURN VALUE"
+.LP
+On success, zero is returned. On error, -1 is returned, and Slurm error code is set appropriately.
+.SH "ERRORS"
+.LP
+\fBSLURM_NO_CHANGE_IN_DATA\fR Data has not changed since \fBupdate_time\fR.
+.LP
+\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
+.SH "EXAMPLE"
+.eo
+.LP 
+#include <stdio.h>
+.br
+#include <slurm.h>
+.LP 
+int main (int argc, char *argv[])
+.br 
+{
+.br
+	int i;
+.br
+	partition_info_msg_t *part_info_ptr = NULL;
+.br
+	partition_info_t *part_ptr;
+.LP
+	/* get and dump some partition information */
+.br
+	if (slurm_load_partitions((time_t)NULL,
+.br
+	                          &part_buffer_ptr)) {
+.br
+		slurm_perror ("slurm_load_partitions error");
+.br
+		exit (1);
+.br
+	}
+.LP
+	/* The easy way to print... */
+.br
+	slurm_print_partition_info_msg (stdout, 
+.br
+	                                part_buffer_ptr);
+.LP
+	/* A harder way.. */
+.br
+	for (i = 0; i < part_buffer_ptr->record_count; i++) {
+.br
+		part_ptr = &part_info_ptr->partition_array[i];
+.br
+		slurm_print_partition_info(stdout, part_ptr);
+.br
+	}
+.LP
+	/* The hardest way. */
+.br
+	printf("Partitions updated at %lx, records=%d\n",
+.br
+	       part_buffer_ptr->last_update, 
+.br
+	       part_buffer_ptr->record_count);
+.br
+	for (i = 0; i < part_buffer_ptr->record_count; i++) {
+.br
+		printf ("PartitionName=%s Nodes=%s\n", 
+.br
+			part_info_ptr->partition_array[i].name, 
+.br
+			part_info_ptr->partition_array[i].nodes );
+.br
+	}
+.LP
+	slurm_free_partition_info (part_buffer_ptr);
+.br
+	exit (0);
+.br 
+}
+.ec
+.SH "COPYING"
+Copyright (C) 2002 The Regents of the University of California.
+Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+UCRL-CODE-2002-040.
+.LP
+This file is part of SLURM, a resource management program.
+For details, see <http://www.llnl.gov/linux/slurm/>.
+.LP
+SLURM is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+.LP
+SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+details.
+.SH "SEE ALSO"
+.LP 
+\fBscontrol\fR(1), \fBsinfo\fR(1), \fBsqueue\fR(1), 
+\fBslurm_get_errno\fR(3), \fBslurm_load_node\fR(3), 
+\fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
+
diff --git a/doc/man/man3/slurm_free_resource_allocation_and_run_response_msg.3 b/doc/man/man3/slurm_free_resource_allocation_and_run_response_msg.3
new file mode 100644
index 00000000000..6534eeb96c7
--- /dev/null
+++ b/doc/man/man3/slurm_free_resource_allocation_and_run_response_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_allocate_resources.3
diff --git a/doc/man/man3/slurm_free_submit_response_response_msg b/doc/man/man3/slurm_free_submit_response_response_msg
new file mode 100644
index 00000000000..6534eeb96c7
--- /dev/null
+++ b/doc/man/man3/slurm_free_submit_response_response_msg
@@ -0,0 +1 @@
+.so man3/slurm_allocate_resources.3
diff --git a/doc/man/man3/slurm_error.3 b/doc/man/man3/slurm_get_errno.3
similarity index 75%
rename from doc/man/man3/slurm_error.3
rename to doc/man/man3/slurm_get_errno.3
index d427cf12dc8..ed84cb23855 100644
--- a/doc/man/man3/slurm_error.3
+++ b/doc/man/man3/slurm_get_errno.3
@@ -1,22 +1,21 @@
-.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm error calls"
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm error handling functions"
 .SH "NAME"
-.LP 
-\fBslurm_job\fR \- Slurm error calls
+slurm_get_errno, slurm_perror, slurm_strerror \- Slurm error handling functions
 .SH "SYNTAX"
 .LP 
 #include <slurm.h>
 .LP 
 int \fBslurm_get_errno\fR ( );
 .LP
-char * \fBslurm_strerror\fR (
+void \fBslurm_perror\fR ( 
 .br 
-	int \fIerrnum\fP
+	char *\fIheader\fP 
 .br 
 );
 .LP
-void \fBslurm_perror\fR ( 
+char * \fBslurm_strerror\fR (
 .br 
-	char *\fIheader\fP 
+	int \fIerrnum\fP
 .br 
 );
 .SH "ARGUMENTS"
@@ -48,13 +47,17 @@ int main (int argc, char *argv[])
 .br 
 {
 .br
-	/* set-up and execute a Slurm API function returning -1 here */
+	/* assume Slurm API function failed here */
 .br
-	fprintf (stderr, "Slurm function errno = %d\n", slurm_get_errno ());
+	fprintf (stderr, "Slurm function errno = %d\n", 
+.br
+	         slurm_get_errno ());
 .br
 	fprintf (stderr, "Slurm function errno = %d %s\n",
 .br
-		slurm_get_errno (), slurm_strerror (slurm_get_errno ()));
+	         slurm_get_errno (), 
+.br
+	         slurm_strerror (slurm_get_errno ()));
 .br
 	slurm_perror ("Slurm function");
 .br
@@ -81,18 +84,20 @@ FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 details.
 .SH "SEE ALSO"
 .LP 
-\fBslurm_allocate_resources\fR(3), 
+\fBslurm_allocate_resources\fR(3), \fBslurm_allocate_resources_and_run\fR(3), 
 \fBslurm_cancel_job\fR(3), \fBslurm_cancel_job_step\fR(3), 
 \fBslurm_complete_job\fR(3), \fBslurm_complete_job_step\fR(3), 
 \fBslurm_confirm_allocation\fR(3), 
-\fBslurm_free_ctl_conf\fR(3), 
-\fBslurm_free_resource_allocation_response_msg\fR(3), \fBslurm_free_job_info\fR(3), 
+\fBslurm_free_ctl_conf\fR(3), \fBslurm_free_job_info\fR(3), 
 \fBslurm_free_job_step_create_response_msg\fR(3), 
 \fBslurm_free_node_info\fR(3), \fBslurm_free_partition_info\fR(3), 
+\fBslurm_free_resource_allocation_response_msg\fR(3), 
 \fBslurm_free_submit_response_response_msg\fR(3), 
-\fBslurm_init_part_desc_msg\fR(3), \fBslurm_init_job_desc_msg\fR(3), 
-\fBslurm_job_step_create\fR(3), \flslurm_job_will_run\fR(3), 
-\fBslurm_load_ctl_conf\fR(3), \fBslurm_load_jobs\fR(3),  \fBslurm_load_node\fR(3), \fBslurm_load_partitions\fR(3), 
+\fBslurm_get_job_steps\fR(3),
+\fBslurm_init_job_desc_msg\fR(3), \fBslurm_init_part_desc_msg\fR(3),  
+\fBslurm_job_step_create\fR(3), \fBslurm_job_will_run\fR(3), 
+\fBslurm_load_ctl_conf\fR(3), \fBslurm_load_jobs\fR(3), 
+\fBslurm_load_node\fR(3), \fBslurm_load_partitions\fR(3), 
 \fBslurm_reconfigure\fR(3), \fBslurm_shutdown\fR(3), \fBslurm_submit_batch_job\fR(3), 
 \fBslurm_update_job\fR(3), \fBslurm_update_node\fR(3), \fBslurm_update_partition\fR(3)
 
diff --git a/doc/man/man3/slurm_get_job_steps.3 b/doc/man/man3/slurm_get_job_steps.3
new file mode 100644
index 00000000000..f600ff5c164
--- /dev/null
+++ b/doc/man/man3/slurm_get_job_steps.3
@@ -0,0 +1 @@
+.so man3/slurm_free_job_step_info_response_msg.3
diff --git a/doc/man/man3/slurm_info.3 b/doc/man/man3/slurm_info.3
deleted file mode 100644
index 2653cb28232..00000000000
--- a/doc/man/man3/slurm_info.3
+++ /dev/null
@@ -1,282 +0,0 @@
-.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm informational calls"
-.SH "NAME"
-.LP 
-\fBslurm_info\fR \- Slurm informational calls
-.SH "SYNTAX"
-.LP 
-#include <slurm.h>
-.LP 
-void \fBslurm_free_ctl_conf\fR (
-.br 
-	slurm_ctl_conf_info_msg_t *\fIconf_info_msg_ptr\fP
-.br 
-);
-.LP
-void \fBslurm_free_job_info\fR (
-.br 
-	job_info_msg_t *\fIjob_info_msg_ptr\fP
-.br 
-);
-.LP
-void \fBslurm_free_node_info\fR (
-.br 
-	node_info_msg_t *\fInode_info_msg_ptr\fP
-.br 
-);
-.LP
-void \fBslurm_free_partition_info\fR (
-.br 
-	partition_info_msg_t *\fIpartition_info_msg_ptr\fP
-.br 
-);
-.LP
-int \fBslurm_load_ctl_conf\fR (
-.br 
-	time_t \fIupdate_time\fP,
-.br 
-	slurm_ctl_conf_info_msg_t **\fIconf_info_msg_pptr\fP
-.br 
-);
-.LP 
-int \fBslurm_load_jobs\fR (
-.br 
-	time_t \fIupdate_time\fP,
-.br 
-	job_info_msg_t **\fIjob_info_msg_pptr\fP
-.br 
-);
-.LP 
-int \fBslurm_load_node\fR (
-.br 
-	time_t \fIupdate_time\fP, 
-.br 
-	node_info_msg_t **\fInode_info_msg_pptr\fP
-.br 
-);
-.LP 
-int \fBslurm_load_partitions\fR (
-.br 
-	time_t \fIupdate_time\fR, 
-.br 
-	partition_info_msg_t **\fIpartition_info_msg_pptr\fP
-.br 
- );
-.SH "ARGUMENTS"
-.LP 
-.TP 
-\fIconf_info_msg_pptr\fP
-Specifies the double pointer to the structure to be created and filled with the time of the last configuration update and detailed configuration information. Configuration information includes control machine names, file names, timer values, etc. See slurm.h for full details on the data structure's contents. 
-.TP 
-\fIconf_info_msg_ptr\fP
-Specifies the pointer to the structure created by slurm_load_ctl_conf. 
-.TP 
-\fIjob_info_msg_pptr\fP
-Specifies the double pointer to the structure to be created and filled with the time of the last job update, a record count, and detailed information about each job. Detailed job information is written to fixed sized records and includes: ID number, name, user ID, state, assigned or requested node names, indexes into the node table, etc. In the case of indexes into the node table, this is an array of integers with pairs of start and end index number into the node information records and the data is terminated with a value of -1. See slurm.h for full details on the data structure's contents. 
-.TP 
-\fIjob_info_msg_ptr\fP
-Specifies the pointer to the structure created by slurm_load_jobs. 
-.TP 
-\fInode_info_msg_pptr\fP
-Specifies the double pointer to the structure to be created and filled with the time of the last node update, a record count, and detailed information about each node. Detailed node information is written to fixed sized records and includes: name, state, processor count, memory size, etc. See slurm.h for full details on the data structure's contents. 
-.TP 
-\fInode_info_msg_ptr\fP
-Specifies the pointer to the structure created by slurm_load_node. 
-.TP 
-\fIpartition_info_msg_pptr\fP
-Specifies the double pointer to the structure to be created and filled with the time of the last partition update, a record count, and detailed information about each partition. Detailed partition information is written to fixed sized records and includes: name, state, job time limit, job size limit, node names, indexes into the node table, etc. In the case of indexes into the node table, this is an array of integers with pairs of start and end index number into the node information records and the data is terminated with a value of -1. See slurm.h for full details on the data structure's contents. 
-.TP 
-\fIpartition_info_msg_ptr\fP
-Specifies the pointer to the structure created by slurm_load_partitions. 
-.TP 
-\fIupdate_time\fP
-For all of the following informational calls, if update_time is equal to or greater than the last time changes where made to that information, new information is not returned.  Otherwise all the configuration. job, node, or partition records are returned.
-.SH "DESCRIPTION"
-.LP 
-\fBslurm_free_ctl_conf\fR Release the storage generated by the slurm_load_ctl_conf function.
-.LP 
-\fBslurm_free_job_info\fR Release the storage generated by the slurm_load_jobs function.
-.LP 
-\fBslurm_free_node_info\fR Release the storage generated by the slurm_load_node function.
-.LP 
-\fBslurm_free_partition_info\fR Release the storage generated by the slurm_load_partitions function.
-.LP 
-\fBslurm_load_ctl_conf\fR Returns a slurm_ctl_conf_info_msg_t that contains an slurm configuration records.
-.LP 
-\fBslurm_load_jobs\fR Returns a job_info_msg_t that contains an update time, record count, and array of job_table records for all jobs.
-.LP 
-\fBslurm_load_node\fR Returns a node_info_msg_t that contains an update time, record count, and array of node_table records for all nodes.
-.LP 
-\fBslurm_load_partitions\fR Returns a partition_info_msg_t that contains an update time, record count, and array of partition_table records for all partitions.
-.SH "RETURN VALUE"
-.LP
-On success, zero is returned. On error, -1 is returned, and Slurm error code is set appropriately.
-.SH "ERRORS"
-.LP
-\fBSLURM_NO_CHANGE_IN_DATA\fR Data has not changed since \fBupdate_time\fR.
-.LP
-\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
-.SH "EXAMPLE"
-.eo
-.LP 
-#include <stdio.h>
-.br
-#include <slurm.h>
-.br
-#include <slurm_errno.h>
-.LP 
-int main (int argc, char *argv[])
-.br 
-{
-.br 
-	int i, j, k;
-.br
-	slurm_ctl_conf_info_msg_t * conf_info_msg_ptr = NULL;
-.br
-	job_info_msg_t	* job_info_msg = NULL;
-.br
-	node_info_msg_t *node_info_ptr = NULL;
-.br
-	partition_info_msg_t *part_info_ptr = NULL;
-.LP
-	/* get and print some configuration information */
-.br
-	if ( slurm_load_ctl_conf ((time_t) NULL, &conf_info_msg_ptr ) ) {
-.br
-		printf ("slurm_load_ctl_conf errno %d\n", slurm_get_errno());
-.br
-		exit (1);
-.br
-	}
-.br
-	printf ("control_machine = %s\n", slurm_ctl_conf_ptr->control_machine);
-.br
-	printf ("server_timeout = %u\n", slurm_ctl_conf_ptr->server_timeout);
-.br
-	slurm_free_ctl_conf (conf_info_msg_ptr);
-.LP
-	/* get and dump some job information */
-.br
-	if ( slurm_load_jobs ((time_t) NULL, &job_buffer_ptr) ) {
-.br
-		printf ("slurm_load_jobs errno %d\n", slurm_get_errno());
-.br
-		exit (1);
-.br
-	}
-.br
-	printf ("Jobs updated at %lx, record count %d\n",
-.br
-		job_buffer_ptr->last_update, job_buffer_ptr->record_count);
-.br
-	for (i = 0; i < job_buffer_ptr->record_count; i++) {
-.br
-		printf ("JobId=%u UserId=%u\n", 
-.br
-			job_buffer_ptr->job_array[i].job_id, 
-.br
-			job_buffer_ptr->job_array[i].user_id);
-.br
-	}			
-.br
-	slurm_free_job_info (job_buffer_ptr);
-.LP
-	/* get and dump some node information */
-.br
-	if ( slurm_load_node ((time_t) NULL, &node_buffer_ptr) ) {
-.br
-		printf ("slurm_load_node errno %d\n", slurm_get_errno());
-.br
-		exit (1);
-.br
-	}
-.br
-	for (i = 0; i < node_buffer_ptr->node_count; i++) {
-.br
-		printf ("NodeName=%s CPUs=%u\n", 
-.br
-			node_buffer_ptr->node_array[i].name, 
-.br
-			node_buffer_ptr->node_array[i].cpus);
-.br
-	}			
-.LP
-	/* get and dump some partition information */
-.br
-	/* note that we use the node information loaded above and */
-.br
-	/* we assume the node table entries have not changed since */
-.br
-	if ( slurm_load_partitions ((time_t) NULL, &part_buffer_ptr) ) {
-.br
-		printf ("slurm_load_part errno %d\n", slurm_get_errno());
-.br
-		exit (1);
-.br
-	}
-.br
-	printf("Partitions updated at %lx, record count %d\n",
-.br
-		part_buffer_ptr->last_update, part_buffer_ptr->record_count);
-.br
-	for (i = 0; i < part_buffer_ptr->record_count; i++) {
-.br
-		printf ("PartitionName=%s MaxTime=%u Nodes=%s:", 
-.br
-			part_info_ptr->partition_array[i].name, 
-.br
-			part_info_ptr->partition_array[i].max_time,
-.br
-			part_info_ptr->partition_array[i].nodes );
-.br
-		for (j = 0; part_info_ptr->partition_array[i].node_inx; j+=2) {
-.br
-			if (part_info_ptr->partition_array[i].node_inx[j] == -1)
-.br
-				break;
-.br
-			for (k = part_info_ptr->partition_array[i].node_inx[j];
-.br
-			     k <= part_info_ptr->partition_array[i].node_inx[j+1]; 
-.br
-			     k++) {
-.br
-				printf ("%s ", node_buffer_ptr->node_array[k].name);
-.br
-			}
-.br
-		}
-.br
-		printf("\n\n");
-.br
-	}
-.br
-	slurm_free_node_info (node_buffer_ptr);
-.br
-	slurm_free_partition_info (part_buffer_ptr);
-.br
-	exit (0);
-.br 
-}
-.ec
-.SH "COPYING"
-Copyright (C) 2002 The Regents of the University of California.
-Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
-UCRL-CODE-2002-040.
-.LP
-This file is part of SLURM, a resource management program.
-For details, see <http://www.llnl.gov/linux/slurm/>.
-.LP
-SLURM is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your option)
-any later version.
-.LP
-SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
-details.
-.SH "SEE ALSO"
-.LP 
-\fBscontrol\fR(1), \fBsqueue\fR(1), \fBslurm_confirm_allocation\fR(3), 
-\fBslurm_get_errno\fR(3), \fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
-
diff --git a/doc/man/man3/slurm_init_job_desc_msg.3 b/doc/man/man3/slurm_init_job_desc_msg.3
new file mode 100644
index 00000000000..6534eeb96c7
--- /dev/null
+++ b/doc/man/man3/slurm_init_job_desc_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_allocate_resources.3
diff --git a/doc/man/man3/slurm_init_part_desc_msg.3 b/doc/man/man3/slurm_init_part_desc_msg.3
new file mode 100644
index 00000000000..8c2ed98140d
--- /dev/null
+++ b/doc/man/man3/slurm_init_part_desc_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_reconfigure.3
diff --git a/doc/man/man3/slurm_job_step_create.3 b/doc/man/man3/slurm_job_step_create.3
new file mode 100644
index 00000000000..907700a2c50
--- /dev/null
+++ b/doc/man/man3/slurm_job_step_create.3
@@ -0,0 +1,77 @@
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm job step initiation functions"
+.SH "NAME"
+slurm_job_step_create \- Slurm job step initiation functions
+.SH "SYNTAX"
+.LP 
+#include <slurm.h>
+.LP 
+.LP
+void \fBslurm_free_job_step_create_response_msg\fR (
+.br
+	job_step_create_response_msg_t *\fIslurm_step_alloc_resp_msg_ptr\fP
+.br
+);
+.LP
+int \fBslurm_job_step_create\fR (
+.br
+	job_step_create_request_msg_t *\fIslurm_step_alloc_req_msg_ptr\fP, 
+.br
+	job_step_create_response_msg_t **\fIslurm_step_alloc_resp_msg_pptr\fP
+.br
+);
+.SH "ARGUMENTS"
+.LP 
+.TP
+\fIslurm_step_alloc_req_msg_ptr\fP
+Specifies the pointer to the structure with job spep request specification. See 
+slurm.h for full details on the data structure's contents.
+.TP
+\fIslurm_step_alloc_resp_msg_pptr\fP
+Specifies the double pointer to the structure to be created and filled with a description of the 
+created job step: node allocation, credentials, etc. See slurm.h for full details on the data 
+structure's contents. 
+.SH "DESCRIPTION"
+.LP
+\fBslurm_free_job_step_create_response_msg\fR Release the storage generated in response 
+to a call of the function \fBslurm_job_step_create\fR.
+.LP
+\fBslurm_job_step_create\fR Initialize a job step including the allocation of nodes to 
+it from those already allocate to that job. Always release the response message when no 
+longer required using the function \fBslurm_free_job_step_create_response_msg\fR.
+.SH "RETURN VALUE"
+.LP
+On success, zero is returned. On error, -1 is returned, and Slurm error code is set appropriately.
+.SH "ERRORS"
+.LP
+\fBSLURM_PROTOCOL_VERSION_ERROR\fR Protocol version has changed, re-link your code.
+.LP
+\fBESLURM_INVALID_JOB_ID\fR the requested job id does not exist. 
+.LP
+\fBESLURM_ALREADY_DONE\fR the specified job has already completed and can not be modified. 
+.LP
+\fBESLURM_ACCESS_DENIED\fR the requesting user lacks authorization for the requested action (e.g. trying to delete or modify another user's job). 
+.LP
+\fBESLURM_INTERCONNECT_FAILURE\fR failed to configure the node interconnect. 
+.LP
+\fBESLURM_BAD_DIST\fR task distribution specification is invalid. 
+.SH "COPYING"
+Copyright (C) 2002 The Regents of the University of California.
+Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+UCRL-CODE-2002-040.
+.LP
+This file is part of SLURM, a resource management program.
+For details, see <http://www.llnl.gov/linux/slurm/>.
+.LP
+SLURM is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+.LP
+SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+details.
+.SH "SEE ALSO"
+.LP 
+\fBsrun\fR(1), 
+\fBslurm_get_errno\fR(3), \fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
diff --git a/doc/man/man3/slurm_job_will_run.3 b/doc/man/man3/slurm_job_will_run.3
new file mode 100644
index 00000000000..6534eeb96c7
--- /dev/null
+++ b/doc/man/man3/slurm_job_will_run.3
@@ -0,0 +1 @@
+.so man3/slurm_allocate_resources.3
diff --git a/doc/man/man3/slurm_load_ctl_conf.3 b/doc/man/man3/slurm_load_ctl_conf.3
new file mode 100644
index 00000000000..a267130db6e
--- /dev/null
+++ b/doc/man/man3/slurm_load_ctl_conf.3
@@ -0,0 +1 @@
+.so man3/slurm_free_ctl_conf.3
diff --git a/doc/man/man3/slurm_load_jobs.3 b/doc/man/man3/slurm_load_jobs.3
new file mode 100644
index 00000000000..a77401586ea
--- /dev/null
+++ b/doc/man/man3/slurm_load_jobs.3
@@ -0,0 +1 @@
+.so man3/slurm_free_job_info.3
diff --git a/doc/man/man3/slurm_load_node.3 b/doc/man/man3/slurm_load_node.3
new file mode 100644
index 00000000000..63979eec2ec
--- /dev/null
+++ b/doc/man/man3/slurm_load_node.3
@@ -0,0 +1 @@
+.so man3/slurm_free_node_info.3
diff --git a/doc/man/man3/slurm_load_partitions.3 b/doc/man/man3/slurm_load_partitions.3
new file mode 100644
index 00000000000..0e99ece3646
--- /dev/null
+++ b/doc/man/man3/slurm_load_partitions.3
@@ -0,0 +1 @@
+.so man3/slurm_free_partition_info.3
diff --git a/doc/man/man3/slurm_perror.3 b/doc/man/man3/slurm_perror.3
new file mode 100644
index 00000000000..2f7c59f2dd1
--- /dev/null
+++ b/doc/man/man3/slurm_perror.3
@@ -0,0 +1 @@
+.so man3/slurm_get_errno.3
diff --git a/doc/man/man3/slurm_print_ctl_conf.3 b/doc/man/man3/slurm_print_ctl_conf.3
new file mode 100644
index 00000000000..a267130db6e
--- /dev/null
+++ b/doc/man/man3/slurm_print_ctl_conf.3
@@ -0,0 +1 @@
+.so man3/slurm_free_ctl_conf.3
diff --git a/doc/man/man3/slurm_print_job_info.3 b/doc/man/man3/slurm_print_job_info.3
new file mode 100644
index 00000000000..a77401586ea
--- /dev/null
+++ b/doc/man/man3/slurm_print_job_info.3
@@ -0,0 +1 @@
+.so man3/slurm_free_job_info.3
diff --git a/doc/man/man3/slurm_print_job_info_msg.3 b/doc/man/man3/slurm_print_job_info_msg.3
new file mode 100644
index 00000000000..a77401586ea
--- /dev/null
+++ b/doc/man/man3/slurm_print_job_info_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_free_job_info.3
diff --git a/doc/man/man3/slurm_print_job_step_info.3 b/doc/man/man3/slurm_print_job_step_info.3
new file mode 100644
index 00000000000..f600ff5c164
--- /dev/null
+++ b/doc/man/man3/slurm_print_job_step_info.3
@@ -0,0 +1 @@
+.so man3/slurm_free_job_step_info_response_msg.3
diff --git a/doc/man/man3/slurm_print_job_step_info_msg.3 b/doc/man/man3/slurm_print_job_step_info_msg.3
new file mode 100644
index 00000000000..f600ff5c164
--- /dev/null
+++ b/doc/man/man3/slurm_print_job_step_info_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_free_job_step_info_response_msg.3
diff --git a/doc/man/man3/slurm_print_node_info_msg.3 b/doc/man/man3/slurm_print_node_info_msg.3
new file mode 100644
index 00000000000..63979eec2ec
--- /dev/null
+++ b/doc/man/man3/slurm_print_node_info_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_free_node_info.3
diff --git a/doc/man/man3/slurm_print_node_table.3 b/doc/man/man3/slurm_print_node_table.3
new file mode 100644
index 00000000000..63979eec2ec
--- /dev/null
+++ b/doc/man/man3/slurm_print_node_table.3
@@ -0,0 +1 @@
+.so man3/slurm_free_node_info.3
diff --git a/doc/man/man3/slurm_print_partition_info.3 b/doc/man/man3/slurm_print_partition_info.3
new file mode 100644
index 00000000000..0e99ece3646
--- /dev/null
+++ b/doc/man/man3/slurm_print_partition_info.3
@@ -0,0 +1 @@
+.so man3/slurm_free_partition_info.3
diff --git a/doc/man/man3/slurm_print_partition_info_msg.3 b/doc/man/man3/slurm_print_partition_info_msg.3
new file mode 100644
index 00000000000..0e99ece3646
--- /dev/null
+++ b/doc/man/man3/slurm_print_partition_info_msg.3
@@ -0,0 +1 @@
+.so man3/slurm_free_partition_info.3
diff --git a/doc/man/man3/slurm_admin.3 b/doc/man/man3/slurm_reconfigure.3
similarity index 64%
rename from doc/man/man3/slurm_admin.3
rename to doc/man/man3/slurm_reconfigure.3
index 518d14159ad..bab7d6bb3ec 100644
--- a/doc/man/man3/slurm_admin.3
+++ b/doc/man/man3/slurm_reconfigure.3
@@ -1,10 +1,18 @@
-.TH "Slurm API" "3" "September 2002" "Morris Jette" "Slurm administrative calls"
+.TH "Slurm API" "3" "October 2002" "Morris Jette" "Slurm administrative calls"
 .SH "NAME"
-.LP 
-\fBslurm_job\fR \- Slurm administrative calls
+slurm_init_part_desc_msg,
+slurm_reconfigure, slurm_shutdown, slurm_update_job, 
+slurm_update_node, slurm_update_partition
+\- Slurm administrative functions 
 .SH "SYNTAX"
 .LP 
 #include <slurm.h>
+.LP
+void \fBslurm_init_part_desc_msg\fR (
+.br
+	update_part_msg_t *\fIupdate_part_msg_ptr\fP 
+.br 
+);
 .LP 
 int \fBslurm_reconfigure\fR ( );
 .LP 
@@ -20,12 +28,6 @@ int \fBslurm_update_job\fR (
 .br 
 );
 .LP
-void \fBslurm_init_part_desc_msg\fR (
-.br
-	update_part_msg_t *\fIupdate_part_msg_ptr\fP 
-.br 
-);
-.LP
 int \fBslurm_update_node\fR ( 
 .br 
 	update_node_msg_t *\fIupdate_node_msg_ptr\fP 
@@ -53,17 +55,34 @@ Specifies the pointer to a node update request specification. See slurm.h for fu
 Specifies the pointer to a partition update request specification. See slurm.h for full details on the data structure's contents. 
 .SH "DESCRIPTION"
 .LP 
-\fBslurm_init_part_desc_msg\fR Initialize the contents of a partition descriptor with default values. Execute this function before executing \fBslurm_update_part\fR.
+\fBslurm_init_part_desc_msg\fR Initialize the contents of a partition descriptor 
+with default values. Note: \fBslurm_init_part_desc_msg\fR is not equivalent to 
+setting the data structure values to zero. Execute this function before executing 
+\fBslurm_update_part\fR.
 .LP 
-\fBslurm_reconfigure\fR Request that the Slurm controller re-read its configuration file. The new configuration parameters take effect immediately. This function may only be successfully executed by user root.
+\fBslurm_reconfigure\fR Request that the Slurm controller re-read its configuration 
+file. The new configuration parameters take effect immediately. This function may 
+only be successfully executed by user root.
 .LP 
-\fBslurm_shutdown\fR Request that the Slurm controller terminate.
+\fBslurm_shutdown\fR Request that the Slurm controller terminate. This function may 
+only be successfully executed by user root.
 .LP 
-\fBslurm_update_job\fR Request that the configuration of a job be updated. Note that most, but not all paramters of a job may be changed by this function. Initialize the data structure using the \fBslurm_init_job_desc_msg\fR function to avoid making unanticipated changes to a job's configuration. This function may only be successfully executed by user root.
+\fBslurm_update_job\fR Request that the configuration of a job be updated. Note that 
+most, but not all paramters of a job may be changed by this function. Initialize the 
+data structure using the \fBslurm_init_job_desc_msg\fR function prior to setting 
+values of the parameters to be changed. Note: \fBslurm_init_job_desc_msg\fR is not 
+equivalent to setting the data structure values to zero. This function may only be 
+successfully executed by user root.
 .LP 
 \fBslurm_update_node\fR Request that the state of one or more nodes be updated. Note that the state of a node (e.g. DRAINING, IDLE, etc.) may be changed, but its hardware configuration may not be changed by this function. If the hardware configuration of a node changes, update the Slurm configuration file and execute the \fBslurm_reconfigure\fR function. This function may only be successfully executed by user root.
 .LP 
-\fBslurm_update_part\fR Request that the configuration of a partition be updated. Note that most, but not all paramters of a partition may be changed by this function. This function may only be successfully executed by user root.
+\fBslurm_update_part\fR Request that the configuration of a partition be updated. 
+Note that most, but not all paramters of a partition may be changed by this function. 
+Initialize the data structure using the \fBslurm_init_part_desc_msg\fR function prior 
+to setting values of the parameters to be changed. Note: \fBslurm_init_part_desc_msg\fR 
+is not equivalent to setting the data structure values to zero. If the partition 
+name specified by this function does not already exist, a new partition is created 
+with the supplied parameters. This function may only be successfully executed by user root.
 .SH "RETURN VALUE"
 .LP
 On success, zero is returned. On error, -1 is returned, and the Slurm error code is set appropriately.
@@ -92,75 +111,54 @@ int main (int argc, char *argv[])
 	update_node_msg_t update_node_msg;
 .br
 	partition_desc_msg_t update_part_msg ;
-.br 
-	resource_allocation_response_msg_t* slurm_alloc_msg_ptr ;
 .LP 
 	if (slurm_reconfigure ( )) {
 .br
-		printf ("reconfigure errno %d\n", slurm_get_errno());
+		slurm_perror ("slurm_reconfigure error");
 .br 
 		exit (1);
+.br
 	}
 .LP 
 	slurm_init_job_desc_msg( &update_job_msg );
 .br 
-	update_job_msg. job_id = 1234;
+	update_job_msg.job_id = 1234;
 .br 
-	update_job_msg. time_limit = 200;
+	update_job_msg time_limit = 200;
 .br 
 	if (slurm_update_job (&update_job_msg)) { 
 .br
-		printf ("job update errno %d\n", slurm_get_errno());
+		slurm_perror ("slurm_update_job error");
 .br 
 		exit (1);
+.br
 	}
 .LP 
 	slurm_init_part_desc_msg ( &update_part_msg );
 .br
-	update_part_msg . name = "test.partition";
+	update_part_msg.name = "test.partition";
 .br
-	update_part_msg . state_up = 0;	/* make partition down */
+	update_part_msg.state_up = 0;  /* partition down */
 .br 
 	if (slurm_update_partition (&update_part_msg)) { 
 .br
-		printf ("partition update errno %d\n", slurm_get_errno());
+		slurm_perror ("slurm_update_partition error");
 .br 
 		exit (1);
+.br
 	}
 .LP 
-	update_node_msg . node_names = "lx[10-12]";
+	update_node_msg.node_names = "lx[10-12]";
 .br
-	update_node_msg . node_state = NODE_STATE_DRAINING ;
+	update_node_msg.node_state = NODE_STATE_DRAINING ;
 .br 
 	if (slurm_update_node (&update_node_msg)) { 
 .br
-		printf ("node update errno %d\n", slurm_get_errno());
+		slurm_perror ("slurm_update_node error");
 .br 
 		exit (1);
 .br 
 	}
-.LP
-	slurm_init_part_desc_msg ( &update_part_msg );
-.br 
-	job_mesg. name = ("job01\0");
-.br 
-	job_mesg. partition = ("reserved\0");;
-.br 
-	job_mesg. num_nodes = 400;
-.br 
-	if (slurm_allocate_resources(&job_desc_msg,&slurm_alloc_msg_ptr,true)) {
-.br
-		printf ("allocate errno %d\n", slurm_get_errno());
-.br 
-		exit (1);
-.br 
-	}
-.br 
-	printf ("Allocated nodes %s to job_id %u\n", 
-.br 
-		slurm_alloc_msg_ptr->node_list, slurm_alloc_msg_ptr->job_id );
-.br
-	slurm_free_resource_allocation_response_msg ( slurm_alloc_msg_ptr );
 .br 
 	exit (0);
 .br 
@@ -185,4 +183,5 @@ FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 details.
 .SH "SEE ALSO"
 .LP 
-\fBscontrol\fR(1), \fBslurm_allocate_resources\fR(3), \fBslurm_get_errno\fR(3), \fBslurm_init_job_desc_msg\fR(3), \fBslurm_job_will_run\fR(3), \fBslurm_perror\fR(3), \fBslurm_strerror\fR(3), \fBslurm_submit_batch_job\fR(3)
+\fBscontrol\fR(1), \fBslurm_get_errno\fR(3), \fBslurm_init_job_desc_msg\fR(3),
+\fBslurm_perror\fR(3), \fBslurm_strerror\fR(3)
diff --git a/doc/man/man3/slurm_shutdown.3 b/doc/man/man3/slurm_shutdown.3
new file mode 100644
index 00000000000..8c2ed98140d
--- /dev/null
+++ b/doc/man/man3/slurm_shutdown.3
@@ -0,0 +1 @@
+.so man3/slurm_reconfigure.3
diff --git a/doc/man/man3/slurm_strerror.3 b/doc/man/man3/slurm_strerror.3
new file mode 100644
index 00000000000..2f7c59f2dd1
--- /dev/null
+++ b/doc/man/man3/slurm_strerror.3
@@ -0,0 +1 @@
+.so man3/slurm_get_errno.3
diff --git a/doc/man/man3/slurm_submit_batch_job.3 b/doc/man/man3/slurm_submit_batch_job.3
new file mode 100644
index 00000000000..6534eeb96c7
--- /dev/null
+++ b/doc/man/man3/slurm_submit_batch_job.3
@@ -0,0 +1 @@
+.so man3/slurm_allocate_resources.3
diff --git a/doc/man/man3/slurm_update_job.3 b/doc/man/man3/slurm_update_job.3
new file mode 100644
index 00000000000..8c2ed98140d
--- /dev/null
+++ b/doc/man/man3/slurm_update_job.3
@@ -0,0 +1 @@
+.so man3/slurm_reconfigure.3
diff --git a/doc/man/man3/slurm_update_node.3 b/doc/man/man3/slurm_update_node.3
new file mode 100644
index 00000000000..8c2ed98140d
--- /dev/null
+++ b/doc/man/man3/slurm_update_node.3
@@ -0,0 +1 @@
+.so man3/slurm_reconfigure.3
diff --git a/doc/man/man3/slurm_update_partition.3 b/doc/man/man3/slurm_update_partition.3
new file mode 100644
index 00000000000..8c2ed98140d
--- /dev/null
+++ b/doc/man/man3/slurm_update_partition.3
@@ -0,0 +1 @@
+.so man3/slurm_reconfigure.3
-- 
GitLab