spawn_acl_script_c

	status.i4.v = spawn_acl_script_c(file_name.i1a.r, file_type.i4.v,
					 subst_devices.i1a.r, num_devices.i4.v,
					 default_ftd.i2.v,
					 subst_strings.i1pa.r,
					 num_subst_str.i4.v,
					 log_file.i1a.r, shared_log.i1a.r
					 [,node.i4.v] [,acl_options.u4.v]
					 [,spawn_options.u4.v]
					 [,spawn_name.i1a.r]
					 [,message_info.s.r]
					 [,lock_name.i1a.r]
					 [,orig_requestor.i1a.r]
					 [,orig_req_node.i4.v]
					 [,connect_node.i4.v])

	This routine spawns off Accelerator Command Language scripts for
	asynchronous execution.

	file_name	null terminated file name or source code
	file_type	type of file
			(ACL_FLAT_FILE -> ASCII text file,
			 ACL_DB_FILE -> "file_name" should be the database
					table name from ACL_DB_TABLE,
			 ACL_SOURCE_CODE -> file name is actually ACL
					    source code)
	subst_devices	array of substitute device names which replace
			device names in the source code of the form "G:DEVnnn"
			(dio_get_terse_name_length characters per entry)
			(If the option ACL_OPT_SUBST_ARRAY_DEVICES is
			 selected, there should be C_STYLE_DEVICE_NAME_LEN
			 characters per entry.)
			(A value of NULL can be passed for this argument
			 if no substitute device names are needed.)
	num_devices	number of substitute devices
	default_ftd	default reading FTD for any devices in the code
			(constants are in 'diolib')
	subst_strings	array of null terminated strings which will replace
			strings in the source code of the form "STRINGnnn"
	num_subst_str	number of substitute strings supplied
	log_file	fully specified name of log file to generate
	shared_log	shared log file to send messages to
			(LOG_NAMLEN characters)
	[node]		node to execute script on
			(default is the local node)
	[acl_options]	ACL execution options
			(ACL_OPT_NONE -> no options selected, parse and
					 execute the code (default),
			 ACL_OPT_PARSE_ONLY -> parse, but do not execute code,
			 ACL_OPT_DELETE_SYMBOLS -> delete all existing ACL
						   symbols before executing
						   the code,
			 ACL_OPT_DONT_CLOSE -> leave database connection
					       open upon exit (close later
					       with db_close),
			 ACL_OPT_NO_STALE -> ignore stale data errors,
			 ACL_OPT_NO_SETS -> suppress settings,
			 ACL_OPT_SAVE_SOURCE -> save source code with
						compiled code,
			 ACL_OPT_CLEAR_STATUS -> clear global status symbols,
			 ACL_OPT_CANCEL_REQUESTS -> cancel data requests,
			 ACL_OPT_SUBST_ARRAY_DEVICES -> substitute device names
							can include array
							indices
							(C_STYLE_LONG_DEVICE_NAME_LEN
							 characters per entry),
			 ACL_OPT_VERBOSE_OUTPUT -> display verbose output)
	[spawn_options]	spawned execution options
			(SPAWN_OPT_NONE -> no options selected (default),
			 SPAWN_OPT_SEND_STATUS -> send final execution
						  status to the calling program,
			 SPAWN_OPT_SEND_CLIENT_MESSAGE -> send a message to
							  the requestor)
	[spawned_name]	returned name of the spawned process
			(allow PROCESS_NAME_LEN + 1 characters)
			(default is NULL)
	[message_info]	client message request information
			(structure of type SPAWNED_ACL_REMOTE_MESSAGE_INFO)
			(default is NULL)
	[lock_name]	lock to hold while the spawned process is running
			(default is NULL)
	[orig_requestor] null terminated original requestor process name
			 (default is NULL)
	[orig_req_node]	original requestor node
			(default is LOCAL)
	[connect_node]	node that spawned script should connect as
			(default is LOCAL)

	This function returns ACNET status values as follows:

	OK			success
	CLIB_MEMFAIL		failed in allocating dynamic memory
	CLIB_NOTOPN		failed to open file
	CLIB_GENERIC_ERROR	error spawning process
	CLIB_TOO_BIG		file name/source code is too long
	otherwise		other ACNET format error code

	This function requires the following include files:

	cbslib_h, cns_data_structs_h, acnet_errors_h

	Related functions:

	intro_acl, acl_file_execute_c, acl_execute_c, acl_file_read_c,
	acl_file_write_c, acl_compile_c, acl_free_c, acl_read_symbol_c,
	acl_read_symbol_info_c, acl_read_symbol_names, acl_delete_symbol,
	acl_info_c, acl_cancel_requests_c, acl_set_symbol_c,
	acl_default_data_source_c, acl_log_file_c, acl_default_script_path_c,
	db_close, spawn_shotlog_comment_c, spawn_shotlog_image_entry_c,
	spawn_shotlog_insert_url_c, spawn_shotlog_insert_chapter_c,
	dio_get_terse_name_length

	C/C++ usage:

	static const char	file_name[] = "my_path:acl_file.acl";
	char	spawned_name[PROCESS_NAME_LEN+1];
	char	*subst_devices = (char *) NULL;
	char	*log_file = (char *) NULL;
	char	*shared_log = (char *) NULL;
	char	*lock_name = (char *) NULL;
	char	*orig_requestor = (char *) NULL;
	char	**subst_strings = (char **) NULL;
	short	default_ftd = FTD_ONESHOT;
	int	status;
	int	file_type = ACL_FLAT_FILE;
	int	num_devices = 0;
	int	num_subst_str = 0;
	int	node = LOCAL;
	int	orig_req_node = LOCAL;
	int	connect_node = LOCAL;
	unsigned int	acl_options = ACL_OPT_NONE;
	unsigned int	spawn_options = SPAWN_OPT_NONE;
	SPAWNED_ACL_REMOTE_MESSAGE_INFO	*message_info = (SPAWNED_ACL_REMOTE_MESSAGE_INFO *) NULL;

	status = spawn_acl_script_c(file_name,file_type,subst_devices,
				    num_devices,default_ftd,
				    subst_strings,num_subst_str,
				    log_file,shared_log,node,acl_options,
				    spawn_options,spawned_name,message_info,
				    lock_name,orig_requestor,orig_req_node,
				    connect_node);