device_listing_c

	status.i4.v = device_listing_c(devices.g.v, num_devices.i4.v,
				       array_indices.i4a.r, format_spec.i1a.r,
				       output_type.i4.v, output_spec.g.v,
				       option_data.sa.r, num_options.i4.v,
				       data_source.i4.v [,data_src_data.g.v]
				       [,output_info.s.r] [,field_data.sp.r]
				       [,list_devices.i4p.r])

	This routine builds a formatted listing of a set of parameters
	for a list of devices.

	devices		device specification  (This can be an array
			of device indices, an array of device names, a file
			name containing device names, a database table
			(db={table_name}) or a device database search string
			of the form "tag = value".)
	num_devices	number of devices
			(>0 -> "devices" will be treated as an array of
			       "num_devices" device indices,
			 <0 -> "devices" will be treated as an array of
			       device names,
			  0 -> "devices" will either be treated as a device
			       search specification if it has the form
			       "tag = value" or a file name containing
			       device names otherwise
			       (supported search tags are:
				"file" -> list all devices in a given file,
				"db" -> list all devices from a database
					table where the device is specified
					by a device index in a field
					named "di",
				"dbname" -> list all devices from a database
					    table where the device is specified
					    by a device name in a field
					    named "name",
				"dbquery" -> list all devices from an
					     arbitrary database query
					     on tables containing device
					     indices,
				"dbqueryname" -> list all devices from an
						 arbitrary database query
						 on tables containing device
						 names,
				"devices" -> list devices from an explicit
					     delimited list of names,
				"device_query" -> list devices from a generic
						  device database query,
				"obs_device_query" -> list devices from a
						      generic device database
						      query (allow obsolete
						      devices),
				"node" -> list all devices on a given node (nd),
				"trunk" -> list all devices on a given trunk,
				"name" -> list all devices with names
					  matching a string (nm),
				"full_name" -> list all devices with full names
					       matching a string,
				"family" -> list all devices from a given
					    family device,
				"linked_devices" -> list all devices from a list
						    of linked devices,
				"text" -> list all devices with descriptive
					  text matching a string (tx),
				"full_text" -> list all devices with full
					       descriptive text matching
					       a string,
				"control_system" -> list all devices having a
						    specified control
						    system type,
				"save_list" -> list all devices from a given
					       save list (sl),
				"user_save_list" -> list all devices from a
						    given user save list (usl),
				"save_code" -> list all devices having a given
					       save code (sc),
				"type" -> list all devices of a given type,
				"class" -> list all devices of a given class,
				"transform" -> list all devices using a given
					       common transform,
				"primary_transform" -> list all devices using a
						       given primary transform,
				"crate" -> list all devices from a given crate,
				"slot" -> list all devices from a given slot,
				"madc" -> list all devices from a given MADC,
				"driver" -> list all devices with a given
					    driver code,
				"vm" -> list all devices belonging to a given
					virtual machine,
				"units" -> list all devices having a given
					   units text,
				"primary_units" -> list all devices having a
						   given primary units text,
				"alarm_list" -> list all devices from a given
						alarm list (al),
				"actual_alarm_list" -> list all devices from a
						       given alarm list (aal),
				"user_alarm_list" -> list all devices from a
						     given alarm user list (ual),
				"simple_user_alarm_list" -> list all devices
							    from a given user
							    alarm list but don't
							    expand embedded
							    lists (sual),
				"alarm_group" -> list all devices from a given
						 alarm group,
				"alarm_consolidators" -> access all consolidator
							 devices having a given
							 name pattern,
				"alarm_handler" -> list all devices having a
						   given alarm handler (ah),
				"bypassed_alarms" -> list all devices whose
						     alarms are bypassed,
				"suppressed_alarms" -> list all devices whose
						       alarms are suppressed,
				"never_used_alarms" -> list all devices whose
						       alarms have never been
						       used,
				"current_alarms" -> list all devices currently
						    in alarm,
				"current_alarms_db" -> list all devices
						       currently in alarm
						       (according to the
							database),
				"snoozed_alarms" -> list all devices currently
						    having snoozed alarms,
				"abort_alarms" -> list all devices which can
						  generate an abort according
						  to the database,
				"analog_alarm_text" -> list all devices which
						       match an analog alarm
						       text string, 
				"digital_alarm_text" -> list all devices which
							match a digital alarm
							text string, 
				"controlling_device" -> list all devices
							controlled by a given
							device,
				"expr[ession]" -> list all devices containing
						  a given string in its
						  reading expression,
				"expr_device" -> list all devices containing
						 a given device in its
						 reading expression,
				"ssdn" -> list all devices having an SSDN
					  matching a pattern,
				"oid" -> list all devices having an OID value,
				"addressing_mode" -> list all devices having a
						     given addressing mode,
				"logger_device" -> find all data logged devices
						   which match a device name,
				"logger_list" -> list all devices in a given
						 data logger list,
				"logged_on_data_event" -> list all devices being
							  logged on a given
							  data event,
				"download_list" -> list all devices from a given
						   node's download list (dl),
				"save_file" -> list all devices saved in a
					       particular save file (sf),
				"sda_case" -> list all devices configured for a
					      particular SDA case,
				"sda_set" -> list all devices saved in a
					     particular SDA set,
				"sibling_list" -> list all siblings descended
						  from a given device
						  (siblings),
				"parameter_page" -> list all devices on a
						    specific parameter page
						    subpage,
				"sequencer_file" -> list all active devices
						    from a Sequencer file,
				"lex_sa" -> list all devices on a specific
					    Lex SA display,
				"wg_list" -> list all devices from a
					     waveform generator list (I14/I15),
					     (wglist),
				"console_class" -> list all devices which are
						   settable by a console class,
				"user" -> list all devices modified by a given
					  user,
				"creator" -> list all devices created by a
					     given user,
				"modifier" -> list all devices modified by a
					      given user,
				"user_created" -> list all devices created
						  by a given user,
				"foreign_device" -> list all devices mapped
						    to a particular
						    foreign device,
				"structure" -> list all devices described by a
					       given data structure,
				"department" -> list all devices belonging to a
						given department,
				"maintainer" -> list all devices whose equipment
						is maintained by given user,
				"machine" -> list all devices associated with a
					     given machine,
				"area" -> list all devices associated with a
					  given area,
				"device_range" -> list all devices in a given
						  device index range,
				"device_name_range" -> list all devices in a
						       given device name range,
				"xmlrpc" -> list all device currently being
					    accessed by XML-RPC)
	array_indices	array of device array indices
			(Note: If the first value is less than zero, all
			 devices will be submitted with the starting element
			 requested equal to the absolute value of that value.)
			(If a value of NULL is passed for this argument,
			 a value of 0 will be used for each device.)
	format_spec	output format specification (If no format specifiers
			(%) are found in this string, this string will be
			treated as a file name containing a format
			specification.)
			format specifiers include:
			("name" -> display device name (nm, device, cnv_device),
			 "full_name" -> display full device name (fn, fullname),
			 "previous_name" -> display previous device name
					    (pn, prev_name),
			 "di" -> display device index (cnv_device_index),
			 "device_state" -> display device state
					   (cnv_device_state),
			 "is_obsolete" -> display whether or not the device
					  is obsolete,
					  (isobs, cnv_device_is_obsolete)
			 "is_deleted" -> display whether or not the device
					 has been deleted,
					 (isdel, cnv_device_is_deleted)
			 "is_documented" -> display whether or not the device
					    has been documented,
					    (isdoc, cnv_device_is_documented)
			 "text" -> display device descriptive text
				   (tx, txt, cnv_device_description),
			 "full_text" -> display full device descriptive text
					(fd, full_descr),
			 "type_p" -> display device type
				     (device_type, cnv_device_type),
			 "type_long_p" -> display device type (long description)
					  (device_type_long,
					   cnv_device_type_long),
			 "type_id_p" -> display device type ID
					(device_type_id, cnv_device_type_id),
			 "db_type_p" -> display database device type
					(db_device_type, cnv_db_device_type),
			 "db_type_long_p" -> display database device type
					     (long description)
					     (db_device_type_long,
					      cnv_db_device_type_long),
			 "db_type_id_p" -> display database device type ID
					   (db_device_type_id,
					    cnv_db_device_type_id),
			 "class_p" -> display device class
				      (device_class, cnv_device_class),
			 "class_long_p" -> display device class (long text)
					   (cnv_device_class_long),
			 "class_id_p" -> display device class ID
					 (device_class_id, cnv_device_class_id),
			 "db_class_p" -> display database device class
					 (db_device_class, cnv_db_device_class),
			 "db_class_long_p" -> display database device class
					      (long description)
					      (db_device_class_long,
					       cnv_db_device_class_long),
			 "db_class_id_p" -> display database device class ID
					    (db_device_class_id,
					     cnv_db_device_class_id),
			 "comp_type" -> display component type
					(component_type),
			 "comp_type_long" -> display component type
					     (long description)
					     (component_type_long),
			 "cnv_device_driver_p" -> display device driver value,
			 "read" -> display device reading (rd, cnv_reading),
			 "long_read" -> display device reading (long_rd)
					(allows twice as many output characters),
			 "read_units" -> display device reading units,
			 "min_reading" -> display the minimum possible reading
					  value,
			 "max_reading" -> display the maximum possible reading
					  value,
			 "db_min_reading" -> display the minimum possible
					     reading value (from the database),
			 "db_max_reading" -> display the maximum possible
					     reading value (from the database),
			 "set" -> display device setting (cnv_setting),
			 "long_set" -> display device setting
				       (allows twice as many output characters),
			 "set_units" -> display device setting units,
			 "min_setting" -> display the minimum possible setting
					  value,
			 "max_setting" -> display the maximum possible setting
					  value,
			 "db_min_setting" -> display the minimum possible
					     setting value (from the database),
			 "db_max_setting" -> display the maximum possible
					     setting value (from the database),
			 "status" -> display device basic status (sts),
			 "raw_p" -> display a raw reading value,
			 "primary_p" -> display a reading value in
					primary units,
			 "help_url" -> device help URL
				       (cnv_device_help_url),
			 "analog_alarm_min" -> display analog alarm minimum
					       (aa_min, cnv_analog_alarm_min),
			 "analog_alarm_max" -> display analog alarm maximum
					       (aa_max, cnv_analog_alarm_max),
			 "analog_alarm_nom" -> display analog alarm nominal
					       (aa_nom, cnv_analog_alarm_nom),
			 "analog_alarm_tol" -> display analog alarm tolerance
					       (aa_tol, cnv_analog_alarm_tol),
			 "analog_alarm_limlen" -> display analog alarm
						  limit length (aa_ll),
			 "analog_alarm_lt" -> display analog alarm
					      limit type (aa_lt),
			 "analog_alarm_ldt" -> display analog alarm
					       limit data type (aa_ldt),
			 "analog_alarm_status" -> display analog alarm status
						  (aa_status),
			 "analog_alarm_highlow" -> display analog alarm
						   high/low status (aa_hl),
			 "analog_alarm_ena" -> display analog alarm
					       enable status (aa_ena),
			 "analog_alarm_abort" -> display analog alarm
						 abort status (aa_abort),
			 "analog_alarm_abtena" -> display analog alarm
						  abort enable status
						  (aa_abtena),
			 "analog_alarm_pri" -> display analog alarm priority
					       (aap, aa_pri),
			 "analog_alarm_text" -> display analog alarm text
						(aat, aa_text),
			 "trunc_aa_text" -> display analog alarm text
					    truncated to a limited number
					    of characters,
			 "analog_alarm_disp" -> display analog alarm
						display enable status
						(aa_disp),
			 "analog_alarm_log" -> display analog alarm
					       logging enable status
					       (aa_log),
			 "analog_alarm_tries_needed" -> display analog alarm
							tries needed
							(aa_triesneeded),
			 "analog_alarm_tries_now" -> display analog alarm
						     tries now
						     (aa_triesnow),
			 "analog_alarm_event_1" -> display analog alarm
						   event 1 (aa_evt1),
			 "analog_alarm_event_2" -> display analog alarm
						   event 2 (aa_evt2),
			 "analog_alarm_ftd" -> display analog alarm FTD
					       (aa_ftd),
			 "analog_alarm_pm" -> display analog alarm
					      post method (aa_pm),
			 "analog_alarm_data" -> display analog alarm
						special data (aa_data),
			 "analog_alarm_flags" -> display analog alarm
						 flags word (aa_flags),
			 "analog_alarm_url" -> analog alarm URL
					       (cnv_analog_alarm_url),
			 "alarm_limit_type" -> analog alarm limit type (alt),
			 "alarm_limit_data_type" -> analog alarm limit data type
						    (aldt),
			 "digital_alarm_nom" -> display digital alarm nominal
					       (da_nom, cnv_digital_alarm_nom),
			 "digital_alarm_mask" -> display digital alarm mask
						 (da_mask, cnv_digital_alarm_mask),
			 "digital_alarm_limlen" -> display digital alarm
						   limit length (da_ll),
			 "digital_alarm_status" -> display digital alarm status
						   (da_status),
			 "digital_alarm_ena" -> display digital alarm
						enable status (da_ena),
			 "digital_alarm_abort" -> display digital alarm
						  abort status (da_abort),
			 "digital_alarm_abtena" -> display digital alarm
						   abort enable status
						   (da_abtena),
			 "digital_alarm_priority[_mask]" -> display digital
							    alarm priority
							    (dap),
			 "digital_alarm_text[_mask]" -> display digital alarm
							text (dat, da_text),
			 "digital_alarm_disp" -> display digital alarm
						 display enable status
						 (da_disp),
			 "digital_alarm_log" -> display digital alarm
						logging enable status
						(da_log),
			 "digital_alarm_tries_needed" -> display digital alarm
							 tries needed
							 (da_triesneeded),
			 "digital_alarm_tries_now" -> display digital alarm
						      tries now
						      (da_triesnow),
			 "digital_alarm_event_1" -> display digital alarm
						    event 1 (da_evt1),
			 "digital_alarm_event_2" -> display digital alarm
						    event 2 (da_evt2),
			 "digital_alarm_ftd" -> display digital alarm FTD
						(da_ftd),
			 "digital_alarm_pm" -> display digital alarm
					       post method (da_pm),
			 "digital_alarm_data" -> display digital alarm
						 special data (da_data),
			 "digital_alarm_flags" -> display digital alarm
						  flags word (da_flags),
			 "alarm_priority_p[_mask]" -> display analog or digital
						      alarm priority (ap),
			 "dbset_p" -> display saved database setting values,
			 "dbset_raw_p" -> display raw saved database
					  setting values,
			 "units_p" -> display common units text
				      (cu, cnv_units_text),
			 "units_readset -> display reading common units text
					   if the reading property exists, or
					   display the setting units text
					   otherwise,
			 "primary_units_p" -> display primary units text
					      (pu, cnv_primary_units_text),
			 "pt_p" -> display primary transform
				   (cnv_primary_transform),
			 "pt_index_p" -> display primary transform index
					 (cnv_primary_transform_index),
			 "ct_p" -> display common transform
				   (cnv_common_transform),
			 "ct_index_p" -> display common transform index
					 (cnv_common_transform_index),
			 "const_p(_n)" -> display scaling constants
					  (cnv_scaling_constant)
					  (If "n" is specified, only the
					   corresponding constant will be
					   displayed.  Otherwise, all of the
					   constants will be displayed.),
			 "fe_units_p" -> display front end common units text
					 (fe_cu, cnv_fe_units_text),
			 "fe_primary_units_p" -> display front end
						 primary units text
						 (fe_pu,
						  cnv_fe_primary_units_text),
			 "fe_pt_p" -> display front end primary transform
				      (cnv_fe_primary_transform),
			 "fe_pt_index_p" -> display front end
					    primary transform index
					    (cnv_fe_primary_transform_index),
			 "fe_ct_p" -> display front end common transform
				      (cnv_fe_common_transform),
			 "fe_ct_index_p" -> display front end
					    common transform index
					    (cnv_fe_common_transform_index),
			 "fe_const_p(_n)" -> display front end scaling constants
					     (cnv_fe_scaling_constant)
					     (If "n" is specified, only the
					      corresponding constant will be
					      displayed.  Otherwise, all of the
					      constants will be displayed.),
			 "dl_p" -> display scaled display length
				   (cnv_display_length),
			 "df_p" -> display scaled display format
				   (cnv_display_format),
			 "structure_p" -> display structure name (struct_p),
			 "node[_p]" -> display device node (nd, cnv_node),
			 "trunk_node[_p]" -> display device trunk and node
					     (tn, cnv_trunk_node),
			 "first_audit_date" -> display device creation date
					       (fa_date),
			 "first_audit_date_p" -> display property creation date
						 (fa_date_p),
			 "first_audit_author" -> display device creator
						 (fa_author),
			 "first_audit_author_p" -> display property creator
						   (fa_author_p),
			 "last_audit_date" -> display last device modify date
					      (la_date),
			 "last_audit_date_p" -> display last property modify date
						(la_date_p),
			 "last_audit_author" -> display last device modifier
						(la_author),
			 "last_audit_author_p" -> display last property modifier
						  (la_author_p),
			 "last_audit_author" -> display last device modifier
						(la_author),
			 "previous_sibling" -> display previous sibling
					       (ps, cnv_previous_sibling),
			 "next_sibling" -> display next sibling
					   (ns, cnv_next_sibling),
			 "save_list" -> display save list (sl, cnv_save_list),
			 "save_list_number" -> display save list number
					       (sln, cnv_save_list_number),
			 "save_code" -> display save code (sc, cnv_save_code),
			 "save_properties" -> display save properties
					      (sp, cnv_save_properties),
			 "save_mask" -> display save property mask
					(sm, cnv_save_mask),
			 "display_code" -> display S/R display code
					   (dc, cnv_display_code),
			 "protection_mask" -> display device setting
					      protection mask
					      (pm, cnv_protection_mask),
			 "class_can_set_c" -> display whether or not a console
					      class can set the device
			 "virtual_machine" -> display device virtual machine
					      information
					      (vm, cnv_virtual_machine),
			 "broken_status" -> display device broken status
					    (oos, broken, cnv_broken_status),
			 "broken_user" -> display the user who marked the
					  device as broken,
			 "broken_process" -> display the process which marked
					     the device as broken,
			 "broken_date" -> display the date when the device was
					  marked as broken,
			 "broken_comment" -> display the comment entered when
					     the device was marked as broken,
			 "obsolete_user" -> display the user who marked the
					    device as obsolete,
			 "obsolete_date" -> display the date when the device was
					    marked as obsolete,
			 "obsolete_comment" -> display the comment entered when
					       the device was marked as obsolete,
			 "document_user" -> display the user who marked the
					    device as documented,
			 "document_date" -> display the date when the device was
					    marked as documented,
			 "document_comment" -> display the comment entered when
					       the device was marked as documented,
			 "edit_comment_user" -> display the user who made the
						last device edit comment,
			 "edit_comment_date" -> display the date when the last
						device edit comment was made,
			 "edit_comment" -> display the last device edit comment,
			 "ssdn_p(_n)" -> display device SSDN (cnv_ssdn)
					 (If "n" is specified, only the
					 corresponding word will be displayed.),
			 "ssdn_p(_byte_n)" -> display device SSDN (cnv_ssdn)
					      (If "n" is specified, only the
					       corresponding byte will be
					       displayed.),
			 "oid_p" -> display device property OID (cnv_oid),
			 "ds_p" -> display device default size
				   (default_size, cnv_default_size),
			 "as_p" -> display device atomic size
				   (atomic_size, cnv_atomic_size),
			 "ms_p" -> display device maximum size
				   (maximum_size, cnv_maximum_size),
			 "ss_p" -> display device scaling size
				   (scaling_size, cnv_scaling_size),
			 "fe_ss_p" -> display front end device scaling size
				      (fe_scaling_size, cnv_fe_scaling_size),
			 "ne_p" -> display device number of elements
				   (num_elements, cnv_num_elements),
			 "addr_mode_p" -> display the device/property
					  addressing mode,
			 "struct_p" -> display device structure name
				       (structure, cnv_device_structure_name)
			 "emc_p" -> display device EMC (cnv_emc),
			 "crate_p" -> display device crate (cr, cnv_crate),
			 "slot_p" -> display device slot (slt, cnv_slot),
			 "madc_ch_p" -> display device MADC channel
					property value is optional)
					(ch, madc_channel, cnv_madc_channel),
			 "madc_num_p" -> display device MADC number
					 property value is optional)
					 (madc_number, cnv_madc_number),
			 "location_string_p" -> display the device location
						string (ls),
			 "rack_text_p" -> display the device rack text (rt),
			 "ftd_p" -> display device default FTD (cnv_ftd),
			 "ftd_dabbel_p" -> display device default FTD
					   (DABBEL format) (cnv_ftd_dabbel),
			 "data_event_p" -> display device default data event
					   (dataevent, cnv_data_event),
			 "state_value" -> display state value text (sv),
			 "fermi_name" -> FermiName for device
					 (fermiName, cnv_fermi_name),
			 "fermi_index" -> FermiName atom index for device
					  (fi, cnv_fermi_index),
			 "ftp_class" -> display FTP class (cnv_ftp_class),
			 "ftp_class_index" -> display FTP class index
					      (cnv_ftp_class_index),
			 "snp_class" -> display SNP class (cnv_snp_class),
			 "snp_class_index" -> display SNP class index
					      (cnv_snp_class_index),
			 "is_cntrl_set[_p]" -> display controlled setting status
					       (is_controlled_set,
						cnv_is_controlled_set),
			 "is_motor" -> display motor controller status
				       (is_motor_controller,
					cnv_is_motor_controller),
			 "data_type_p" -> display device data type
					  (cnv_device_data_type),
			 "data_type_id_p" -> display device data type ID
					     (cnv_device_data_type_id),
			 "raw_data_type_p" -> display device raw data type
					      (cnv_device_raw_data_type),
			 "alarm_list" -> display alarm list
					 (al, cnv_alarm_list),
			 "alarm_list_long" -> display alarm list (long text)
					      (cnv_alarm_list_long),
			 "actual_alarm_list" -> display actual alarm list
						(aal, cnv_actual_alarm_list),
			 "actual_alarm_list_long" -> display actual alarm list
						     (long text)
						     (cnv_actual_alarm_list_long),
			 "alarm_list_number" -> display alarm list number
						(aln, cnv_alarm_list_number),
			 "actual_alarm_list_number" -> display actual alarm
						       list number
						       (aaln,
							cnv_actual_alarm_list_number),
			 "alarm_group" -> display alarm group
					  (ag, cnv_alarm_group),
			 "alarm_group_number" -> display alarm group number
						 (agn, cnv_alarm_group_number),
			 "is_alarm_consolidator" -> display whether or not a
						    device is an alarm
						    consolidator
						    (iac, cnv_is_alarm_consolidator),
			 "alarm_control_list" -> display alarm control list
						 (acl, cnv_alarm_control_list),
			 "alarm_handler_p[_mask]" -> display alarm handler
						     (ah,
						      cnv_alarm_handler_code),
			 "alarm_handler_number_p[_mask]" -> display alarm
							    handler number
							    (ahn,
							     cnv_alarm_handler_number),
			 "alarm_sound_id_p[_mask]" -> display alarm sound ID
						      (asid, cnv_alarm_sound_id),
			 "alarm_speech_id_p[_mask]" -> display alarm speech ID
						       (aspid,
							cnv_alarm_speech_id),
			 "alarm_ack_mask" -> display alarm acknowledge mask
					     (aam, cnv_alarm_ack_mask),
			 "controlling_device" -> display controlling device
						 (cd, cnv_controlling_device),
			 "expression[_p]" -> display expression used to
					     calculate the device's reading value
					     (expr, cnv_device_expression),
			 "trunc_expr" -> display expression used to calculate
					 the device's reading value truncated
					 to a limited number of characters,
			 "status_xxx" -> display basic status mask values where
					 "xxx" is replaced by "onoff",
					 "readytripped", "localremote",
					 "polarity" or "rampdc",
			 "status_invert_xxx" -> display basic status data invert
						flag values where "xxx" is
						replaced by "onoff",
						"readytripped", "localremote",
						"polarity" or "rampdc",
			 "status_chars_xxx" -> display basic status attribute
					       display characters where "xxx" is
					       replaced by "onoff",
					       "readytripped", "localremote",
					       "polarity" or "rampdc",
			 "status_colors_xxx" -> display basic status attribute
						display colors where "xxx" is
						replaced by "onoff",
						"readytripped", "localremote",
						"polarity" or "rampdc",
			 "status_scaling_text[_index]" -> display status scaling
							  text (sst),
			 "status_scaling_short_text[_index]" -> display status
								scaling short
								text (ssst),
			 "status_scaling_mask[_index]" -> display status scaling
							  mask value (ssmsk),
			 "status_scaling_match_value[_index]" -> display status
								 scaling
								 match value
								 (ssmtch),
			 "status_scaling_invert_data[_index]" -> display status
								 scaling invert
								 data value
								 (ssi),
			 "status_scaling_match_string[_index]" -> display status
								  scaling
								  match string
								  (ssmstr),
			 "status_scaling_match_color[_index]" -> display status
								 scaling
								  match color
								  (ssmclr),
			 "status_scaling_match_char[_index]" -> display status
								scaling
								match character
								(ssmchr),
			 "status_scaling_nonmatch_string[_index]" -> display
								     status
								     scaling
								     nonmatch
								     string
								     (ssnmstr),
			 "status_scaling_nonmatch_color[_index]" -> display
								    status
								    scaling
								    nonmatch
								    color
								    (ssnmclr),
			 "status_scaling_nonmatch_char[_index]" -> display
								   status
								   scaling
								   nonmatch
								   character
								   (ssnmchr),
			 "command_xxx" -> display basic control command values
					  where "xxx" is replaced by "reset",
					  "on", "off", "positive", "negative",
					  "ramp", or "dc",
			 "digital_control_text[_index]" -> display digital
							   control text
							   (dct),
			 "digital_control_short_text[_index]" -> display digital
								 control short
								 text (dcst),
			 "digital_control_value[_index]" -> display digital
							    control value
							    (dcv),
			 "bit_text[_bit] -> display bit descriptive text (bt)
			 "bit_true_string[_bit] -> display bit text if the
						   bit value is 1 (btt)
			 "bit_true_color[_bit] -> display bit text color if the
						  bit value is 1 (btc)
			 "bit_false_string[_bit] -> display bit text if the
						    bit value is 0 (bft)
			 "bit_false_color[_bit] -> display bit text color if the
						   bit value is 0 (bfc)
			 "control_system" -> device control system type (cst),
			 "foreign_name_p" -> display the foreign device name
					     that an ACNET device is mapped to
					     (fdn, cnv_foreign_device_name),
			 "foreign_system_p" -> display the system type of a
					       foreign device mapping
					       (fst, cnv_foreign_system_type),
			 "foreign_data_type_p" -> display the data type of a
						  foreign device mapping
						  (fdt, cnv_foreign_data_type),
			 "department" -> display the department responsible
					 for the device
					 (dept, cnv_device_department),
			 "maintainer" -> display the equipment maintainer's
					 user name
					 (cnv_device_maintainer),
			 "machine" -> display the machine for the device
				      (mach, cnv_device_machine),
			 "machine_long" -> display the machine for the device
					   (long text)
					   (cnv_device_machine_long),
			 "area" -> display the area associated with the device
				   (cnv_device_area),
			 "num_props" -> display the number of properties a
					device has (np, num_properties),
			 "num_save_props" -> display the number of save
					     properties for a device,
					     (nsp, num_save_properties)
			 "num_dnld_props" -> display the number of download
					     properties for a device,
					     (ndp, num_dnld_properties)
			 "num_foreign_props" -> display the number of foreign
						device properties for a device
						(nfp, num_foreign_properties),
			 "has_reading" -> display whether or not the device
					  has a reading property,
			 "has_setting" -> display whether or not the device
					  has a setting property,
			 "has_status" -> display whether or not the device
					 has a status property,
			 "has_control" -> display whether or not the device
					  has a control property,
			 "has_analog_alarm" -> display whether or not the device
					       has an analog alarm property,
			 "has_digital_alarm" -> display whether or not the device
						has a digital alarm property,
			 "has_save_info" -> display whether or not the device
					    has save information defined,
			 "has_reading_scaling" -> display whether or not the
						  device has reading scaling,
			 "has_setting_scaling" -> display whether or not the
						  device has setting scaling,
			 "has_status_scaling" -> display whether or not the
						 device has status scaling,
			 "has_control_scaling" -> display whether or not the
						  device has control scaling,
			 "has_setting_record[_p]" -> display whether or not
						     the device has a database
						     setting record for the
						     corresponding property
						     (hsr[_p]),
			 "has_enum_values_p" -> display whether or not a device
						has reading/setting enumerated
						values,
			 "has_ext_text" -> display whether or not a device has
					   extended (bit) text,
			 "has_alarm_text_p" -> display whether or not a device
					       has alarm text,
			 "has_foreign_info_p" -> display whether or not a device
						 property has foreign device
						 info,
			 "is_knobable" -> display whether or not a setting
					  is knobable,
			 "is_dest_read[_p]" -> display whether or not a property
					       is a destructive read,
			 "dnld_loc_p" -> device download location value,
			 "dnld_loc_name_p" -> device download location name,
			 "dnld_order_num_p" -> device download order number)
			(Suffixes of "_p" mean that a property string
			 should be inserted in place of the "p".  The
			 property strings for this are "read", "rd", "set",
			 "status", "control", "analog_alarm", "aa",
			 "digital_alarm", and "da".  A suffix of "_c"
			 means that a console class string should be
			 inserted in place of the "c".)
	output_type	type of output desired
			(DEVLST_OUTPUT_FILE -> write output to a file
					       specified by "output_spec"
					       (a value of "stdout" can be
						passed for standard output),
			 DEVLST_OUTPUT_MAIL -> mail output to the user
					       specified by "output_spec", 
			 DEVLST_OUTPUT_PRINTER -> print output on the printer
						  specified by "output_spec", 
			 DEVLST_OUTPUT_MEMORY -> return the output in a
						 structure of type
						 DEVLST_OUTPUT_MEMORY_DATA
						 provided by the caller
						 in "output_spec")
	output_spec	output specifier whose interpretation depends
			upon the value of "output_type"
	option_data	device listing options
			(array of structures of type DEVLST_OPTION_DATA)
			(DEVLST_TITLE_OPTION -> specifies whether or not
						to provide a title in the
						output  (If a title is
						desired and a value of NULL
						is passed for the title, a
						default title will be
						constructed.),
			 DEVLST_HEADINGS_OPTION -> specifies whether or not
						   to provide column headers in
						   the output,
			 DEVLST_FOOTERS_OPTION -> specifies whether or not
						  to provide footers in
						  the output,
			 DEVLST_COMMENTS_OPTION -> allows the caller to
						   insert a comment line
						   in the output,
			 DEVLST_SKIP_INVALID_OPTION -> specifies that invalid
						       device names in an input
						       file should be skipped,
			 DEVLST_ORDER_DEVICE_OPTION -> device ordering option
						       (DEVLST_ORDER_DEVICE_BY_NONE,
							DEVLST_ORDER_DEVICE_BY_NAME_ASC,
							DEVLST_ORDER_DEVICE_BY_NAME_DESC,
							DEVLST_ORDER_DEVICE_BY_DI_ASC,
							DEVLST_ORDER_DEVICE_BY_DI_DESC,
							DEVLST_ORDER_DEVICE_BY_FULL_NAME_ASC,
							DEVLST_ORDER_DEVICE_BY_FULL_NAME_DESC,
							DEVLST_ORDER_DEVICE_BY_DESCR_ASC,
							DEVLST_ORDER_DEVICE_BY_DESCR_DESC,
							DEVLST_ORDER_DEVICE_BY_FULL_DESCR_ASC,
							DEVLST_ORDER_DEVICE_BY_FULL_DESCR_DESC),
			 DEVLST_FILTER_OPERATOR_OPTION -> filter operator
							  (DEVLST_FILTER_OPERATOR_AND
							   (default),
							   DEVLST_FILTER_OPERATOR_OR)
			 DEVLST_FILTER_ANALOG_ALARM -> only include devices in
						       alarm (analog),
			 DEVLST_FILTER_DIGITAL_ALARM -> only include devices in
							alarm (digital),
			 DEVLST_FILTER_BROKEN -> only include devices which are
						 broken (out of service),
			 DEVLST_FILTER_ANALOG_BYPASSED -> only include devices
							  whose alarm is
							  bypassed (analog),
			 DEVLST_FILTER_DIGITAL_BYPASSED -> only include devices
							   whose alarm is
							   bypassed (digital),
			 DEVLST_FILTER_READ_ARRAY -> only include devices whose
						     reading property is an
						     array device,
			 DEVLST_FILTER_SET_ARRAY -> only include devices whose
						    setting property is an
						    array device,
			 DEVLST_FILTER_STATUS_ARRAY -> only include devices
						       whose status property
						       is an array device,
			 DEVLST_FILTER_READ_SIZE_MISMATCH -> only include
							     devices whose
							     reading size does
							     not match its PDB,
			 DEVLST_FILTER_SET_SIZE_MISMATCH -> only include
							    devices whose
							    setting size does
							    not match its PDB,
			 DEVLST_FILTER_PROP_READING -> only include devices
						       which have a reading
						       property,
			 DEVLST_FILTER_PROP_SETTING -> only include devices
						       which have a setting
						       property,
			 DEVLST_FILTER_PROP_STATUS -> only include devices
						      which have a basic status
						      property,
			 DEVLST_FILTER_PROP_CONTROL -> only include devices
						       which have a
						       basic control property,
			 DEVLST_FILTER_PROP_ANALOG_ALARM -> only include devices
							    which have an analog
							    alarm property,
			 DEVLST_FILTER_PROP_DIGITAL_ALARM -> only include devices
							     which have a digital
							     alarm property,
			 DEVLST_ALLOW_OBSOLETE_OPTION -> specifies whether or
							 not to allow obsolete
							 devices in the output,
			 DEVLST_EXCLUDE_STRING_FIELD_DATA_OPTION -> specifies
								    whether or
								    not to
								    exclude
								    string field
								    data)
	num_options	number of options passed
	data_source	source of any "live" data
			(DIO_SOURCE_ACCELERATOR -> get data from the
						   accelerator,
			 DIO_SOURCE_DATABASE -> get data from the database,
			 DIO_SOURCE_SAVERESTORE -> get data from a save/restore
						   file specified by
						   "data_src_data",
			 DIO_SOURCE_SDA -> get data from an SDA file specified
					   by "data_src_data",
			 DIO_SOURCE_DATALOGGER -> get data from a data logger,
			 DIO_SOURCE_MEMORY -> get data from a DIO memory pool)
	[data_src_data]	data to further specify the data source
			(DIO_SOURCE_SAVERESTORE -> structure of type
						   DEVLST_SR_SOURCE_DATA,
			 DIO_SOURCE_SDA -> structure of type
					   DEVLST_SDA_SOURCE_DATA,
			 DIO_SOURCE_DATALOGGER -> structure of type
						  DEVLST_LOGGER_SOURCE_DATA,
			 DIO_SOURCE_MEMORY -> structure of type
					      DEVLST_MEMORY_SOURCE_DATA)
			(default is NULL)
	[output_info]	returned output information
			(structure of type DEVLST_OUTPUT_INFO)
			(default is NULL)
	[field_data]	returned output field data
			(array of structures of type DEVLST_OUTPUT_FIELD_DATA)
			(The memory for this argument is allocated by this
			 routine and should be freed by the caller.)
			(default is NULL)
	[list_devices]	returned listed device indices
			(The memory for this argument is allocated by this
			 routine and should be freed by the caller.)
			(default is NULL)

	This function returns status values as follows:

	OK			success
	DIO_MEMFAIL		memory allocation failure
	DIO_INVDEV		at least one entry is not a valid array device
	DIO_BADARG		invalid number of elements or starting element
	DIO_NOTENB		writes not allowed on this console
	CLIB_SYNTAX		invalid search string requested
^	CLIB_EXTRANEOUS_VALUE	extraneous value(s) in search string
	negative value		other ACNET format error
	positive value		number of devices in error

	This function requires the following include files:

	cbslib_h, cns_data_structs_h, diolib_h, acnet_errors_h, dbprops_h, tclk_events_h

	Related functions:

	dio_get_lst, dio_build_get_array_list_c, dio_get_array_device_c,
	dio_can_get_lst, dio_bld_get_raw(_c), td_build(_c)

	C/C++ usage:

	static const char	devices[] = "node = BOOSTR";
	static const char	format_spec[] = "%name %di %text";
	static const char	output_spec[] = "stdout";
	int	status;
	int	num_devices = 0;
	int	array_indices = 0;
	int	output_type = DEVLST_OUTPUT_FILE;
	int	num_options = 1;
	int	data_source = DIO_SOURCE_DATAPOOL;
	int	*list_devices;
	void	*data_source_data = (void *) NULL;
	static const DEVLST_OPTION_DATA	option_data =
	{DEVLST_TITLE_OPTION, TRUE, (void *) NULL};
	DEVLST_OUTPUT_INFO	output_info;
	DEVLST_OUTPUT_FIELD_DATA	*field_data;

	status = device_listing_c((void *) devices,num_devices,&array_indices,
				  format_spec,output_type,(void *) output_spec,
				  &option_data,num_options,data_source,
				  data_source_data,&output_info,&field_data,
				  &list_devices);