status.i4.v = bpm_house_info(house_names.i1a.r [,nodes.u2a.r]
				     [,types.i4a.r] [,prefixes.i1a.r]

	This routine returns information concerning the currently active
	BPM nodes.  If all arguments passed have a value of NULL, only the
	number of BPM houses is returned.

	house_names	returned house names
			(HOUSE_NAME_LEN characters per entry)
	[nodes]		returned BPM node values (default is NULL)
	[types]		returned BPM house types (default is NULL)
			(BPM_400_MEV -> 400 MeV line BPM,
			 BPM_BOOSTER -> Booster BPM,
			 BPM_UNKNOWN_HOUSE -> undefined house)
	[prefixes]	returned device prefixes (default is NULL)
			(DEVICE_PREFIX_LEN characters per entry)
	[dwnload_files]	download device file names
			(BPM_DWNLD_FILE_LEN + 1 characters per entry)

	This function returns status values as follows:

	DIO_MEMFAIL		memory allocation failure
	DIO_GENERR		couldn't access BPM house information
	DIO_BUGCHK		BPM house information is corrupted
	otherwise		number of BPM houses

	This function requires the following include files:

	cnsparam_h, ul_cbsaux_h:bpmuti_h, acnet_errors_h

	Related functions:

	bpm_house_select_init_c, bpm_house_select_update_c,
	bpm_house_select_set_c, bpm_house_select_delete_c, bpm_house_menu_c,
	bpm_next_house_c, bpm_verify_house_c

	C/C++ usage:

	char	*house_names = (char *) NULL;
	char	*prefixes = (char *) NULL;
	char	*dwnload_files = (char *) NULL;
	unsigned short	*nodes = (unsigned short *) NULL;
	int	status;
	int	*types = (int *) NULL;

	status = bpm_house_info((char *) NULL,(unsigned short *) NULL,
				(int *) NULL,(char *) NULL,(char *) NULL);

	if (status > 0)
	    house_names = (char *) malloc(status*HOUSE_NAME_LEN);
	    nodes = (unsigned short *) malloc(status*(sizeof(unsigned short)));
	    types = (int *) malloc(status*(sizeof(int)));
	    prefixes = (char *) malloc(status*DEVICE_PREFIX_LEN);
	    dwnload_files = (char *) malloc(status*(BPM_DWNLD_FILE_LEN+1));
	    status = bpm_house_info(house_names,nodes,types,prefixes,