dabbel (ul_dabbel)

	status.i4.v = dabbel(input_file_spec.i1a.r, list_file_spec.i1a.r,
			     user_name.i1a.r, run_type.i4.v, log_flag.i4.v,
			     print_stdout.i1.v, print_stderr.i1.v,
			     return_data.s.r [,lpmask.u8.v] [,options.u4.v]
			     [,callers_func.f.v])

	This routine invokes the DABBEL processor, which is the
	DAtaBase Batch Entry Language.  Unless quick-listing is selected,
	an input file is required which is coded in the DABBEL language.
	The input file can either list or modify one or more devices in
	the Acnet central database.  Output from this process will be written
	to 'stdout', or to a user-specified list file, and to various other
	files.  Except for the listing file, all files will be written to the
	directory /usr/local/userb/dabbel/<username>. The user has the option
	to allow DABBEL to direct most output to the terminal (stdout).
	Regardless of how the user sets the print_stdxxx flags, all textual
	output will continue to be directed to the list and log files (unless
	quick-listing).

	If quick-listing is enabled via DAB_OPT_QLIST, those parameters
	marked with "**" are ignored, and no files are created.
	The input command for quick-listing is contained in the
	'input_file_spec' parameter. Examples of valid quick-listing commands:
		LIST M:OUTTMP
		LIS M:OUTTMP BACKUP
		LSX M:OUTTMP
	In order to list a subset of properties in quick-listing mode, the
	caller must set the appropriate bits in parameter 'lpmask'.

	Please refer to the Dabbel user document for more information.

	input_file_spec	NUL-terminated input file specification
			(The file extension (if it exists) must not
			 be ".lis".); if DAB_OPT_QLIST specified, this
			parameter must contain a single, valid listing
			command (LIST, LIS or LSX).
	list_file_spec	** NUL-terminated listing file specification or
			"stdout" (case-insensitive)
	user_name	NUL-terminated user name, which is only used
			if running in a console environment and
			the user is CONSOLE or XCONSOLE
	run_type	** type of Dabbel run (constants are in
				'ul_dabbel:dabbel'):
			DAB_SYNTAX	(syntax-only checking)
			DAB_LIST	(listing operations only)
			DAB_MODIFY	(modifications allowed)
	log_flag	** log file flag (constants are in 'ul_dabbel:dabbel'):
			DAB_DEFAULT_LOG	(recommended - LOG file will be
					 created only if DAB_MODIFY
					 or DAB_LIST )
			DAB_NOLOG	(create no log file)
			DAB_LOG		(create a log file)
	print_stdout	** TRUE to allow printf output to stdout
	print_stderr	** TRUE to allow printf output to stderr
	return_data	returned summary data (structure of type
			DABBEL_RETURN_DATA, defined in 'ul_dabbel:dabbel')
	[lpmask]	property mask for selective listing; list all
			properties if zero
			(constants are in 'dbprops' and have the form
			 PROP_MASK_xxx)
			(default is 0)
	[options]	options mask (constants in dabbel.h)
			DAB_OPT_PDB:	List only the PDB for reading/setting
					properties.  Caller must specify
					PRREAD and/or PRSET in 'lpmask'.
			DAB_OPT_NOPDB	Do not list the PDB for reading/setting
					properties.  Caller must specify
					PRREAD and/or PRSET in 'lpmask'
			DAB_OPT_QLIST	Enable quick listing of single device
			(default is 0)
	[callers_func]	function to perform output, with two parameters:
			char*	NUL-terminated string
			int	options mask (constants in dabbel.h)
				DAB_OUT_OPT_NONE	No options selected
				DAB_OUT_OPT_NL_END
					Append new-line at end of string
				DAB_OUT_OPT_NL_BEG
					Prepend new-line at beginning of string
				DAB_OUT_OPT_NL_BOTH
					New-line at beginning and end of string

   	This function returns status values as follows:

	OK			success
	DAB_SOME_ERROR		some DBL or syntax error occurred
				while processing the input file
	DAB_NOINFILE		cannot open the input file
	DAB_CLXSRV		cannot run on node CLXSRV
	DAB_LISFILE		cannot open the listing file
	DAB_BADUSER		illegal user name
	DAB_LOGFILE		cannot open the LOG file
	DAB_IFILETYP		illegal input file type
	others			less-commmon errors (see 'ul_dabbel:dabbel')

	This function requires the following include files:

	ul_dabbel_h:dabbel_h, dbprops_h

	Related functions:

	dabbel_format_read_set_pdb_line_c

	C/C++ usage:

	static const char	input_file_spec[] = "mydab.dab";
	static const char	list_file_spec[] = "mydab.lis";
	static const char	user_name[] = "jones";
	int	status;
	int	run_type = DAB_LIST;
	int	log_flag = DAB_DEFAULT_LOG;
	char	print_stdout = TRUE;
	char	print_stderr = TRUE;
	DABBEL_RETURN_DATA	ret_data;
	unsigned long long	lpmask = 0;

	status = dabbel(input_file_spec,list_file_spec,user_name,
			run_type,log_flag,print_stdout,print_stderr,
			&ret_data,lpmask);