DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦49d7171bd⟧ TextFile

    Length: 21930 (0x55aa)
    Types: TextFile
    Notes: UNIX file
    Names: »MrmPublic.h«

Derivation

└─⟦d3dcb20dd⟧ Bits:30004636/disk4.imd INTERACTIVE Motif Environment Development System
└─⟦d3dcb20dd⟧ UNIX Filesystem
    └─⟦this⟧ »xt/new/usr/include/Mrm/MrmPublic.h« 

TextFile

#ifdef REV_INFO
#ifndef lint
static char SCCSID[] = "OSF/Motif: @(#)MrmPublic.h	1.1 - 89/08/30 - 12:19:46";
#endif /* lint */
#endif /* REV_INFO */
/******************************************************************************
*******************************************************************************
*
*  (c) Copyright 1989, OPEN SOFTWARE FOUNDATION, INC.
*  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
*  ALL RIGHTS RESERVED
*  
*  	THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
*  AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND
*  WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR
*  ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
*  AVAILABLE TO ANY OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE
*  SOFTWARE IS HEREBY TRANSFERRED.
*  
*  	THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
*  NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY OPEN SOFTWARE
*  FOUNDATION, INC. OR ITS THIRD PARTY SUPPLIERS  
*  
*  	OPEN SOFTWARE FOUNDATION, INC. AND ITS THIRD PARTY SUPPLIERS,
*  ASSUME NO RESPONSIBILITY FOR THE USE OR INABILITY TO USE ANY OF ITS
*  SOFTWARE .   OSF SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
*  KIND, AND OSF EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING
*  BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
*  FITNESS FOR A PARTICULAR PURPOSE.
*  
*  Notice:  Notwithstanding any other lease or license that may pertain to,
*  or accompany the delivery of, this computer software, the rights of the
*  Government regarding its use, reproduction and disclosure are as set
*  forth in Section 52.227-19 of the FARS Computer Software-Restricted
*  Rights clause.
*  
*  (c) Copyright 1989, Open Software Foundation, Inc.  Unpublished - all
*  rights reserved under the Copyright laws of the United States.
*  
*  RESTRICTED RIGHTS NOTICE:  Use, duplication, or disclosure by the
*  Government is subject to the restrictions as set forth in subparagraph
*  (c)(1)(ii) of the Rights in Technical Data and Computer Software clause
*  at DFARS 52.227-7013.
*  
*  Open Software Foundation, Inc.
*  11 Cambridge Center
*  Cambridge, MA   02142
*  (617)621-8700
*  
*  RESTRICTED RIGHTS LEGEND:  This computer software is submitted with
*  "restricted rights."  Use, duplication or disclosure is subject to the
*  restrictions as set forth in NASA FAR SUP 18-52.227-79 (April 1985)
*  "Commercial Computer Software- Restricted Rights (April 1985)."  Open
*  Software Foundation, Inc., 11 Cambridge Center, Cambridge, MA  02142.  If
*  the contract contains the Clause at 18-52.227-74 "Rights in Data General"
*  then the "Alternate III" clause applies.
*  
*  (c) Copyright 1989, Open Software Foundation, Inc.
*  ALL RIGHTS RESERVED 
*  
*  
* Open Software Foundation is a trademark of The Open Software Foundation, Inc.
* OSF is a trademark of Open Software Foundation, Inc.
* OSF/Motif is a trademark of Open Software Foundation, Inc.
* Motif is a trademark of Open Software Foundation, Inc.
* DEC is a registered trademark of Digital Equipment Corporation
* DIGITAL is a registered trademark of Digital Equipment Corporation
* X Window System is a trademark of the Massachusetts Institute of Technology
*
*******************************************************************************
******************************************************************************/

#ifndef MrmPublic
#define MrmPublic

/*
 * Success or other non-error return codes
 */
#define	MrmSUCCESS	1
#define MrmCREATE_NEW	3
#define	MrmINDEX_RETRY	5	/* Retry on entering index required */
#define	MrmINDEX_GT	7	/* Index orders greater-than entry */
#define	MrmINDEX_LT	9	/* Index orders less-than entry */

/*
 * Failure return codes
 */
#define	MrmFAILURE	0
#define	MrmNOT_FOUND	2
#define	MrmEXISTS	4
#define	MrmNUL_GROUP	6
#define	MrmNUL_TYPE	8
#define	MrmWRONG_GROUP	10
#define	MrmWRONG_TYPE	12
#define	MrmOUT_OF_RANGE	14	/* Record number too big */
#define	MrmBAD_RECORD	16	/* Record number wrong type */
#define	MrmNULL_DATA	18	/* No data for entry */
#define	MrmBAD_DATA_INDEX	20	/* Data index in RID out of range */
#define	MrmBAD_ORDER	22	/* Bad ordering specifier */
#define	MrmBAD_CONTEXT	24	/* Invalid MRM context */
#define	MrmNOT_VALID	26	/* Validation failure */
#define	MrmBAD_B_TREE	28	/* GT/LT pointer error in BTree */
#define	MrmBAD_WIDGET	30	/* Validation failure on widget record */
#define	MrmBAD_CLASS	32	/* Class type not a valid MRMwc... value */
#define	MrmNO_CLASS_NAME	34	/* User class name is null */
#define	MrmTOO_MANY	36	/* Too many entries requested in some list */
#define	MrmBAD_IF_MODULE	38	/* invalid interface module */
#define	MrmNULL_DESC	40	/* Arglist or children descriptor null */
#define	MrmOUT_OF_BOUNDS	42	/* Argument index out of arglist bounds */
#define	MrmBAD_COMPRESS	44	/* Invalid compression code */
#define	MrmBAD_ARG_TYPE	46	/* Invalid type, not in RGMrType... */
#define	MrmNOT_IMP	48	/* Not yet implemented */
#define	MrmNULL_INDEX	50	/* empty index string */
#define	MrmBAD_KEY_TYPE	52	/* key must be MRMrIndex or MRMrRID */
#define	MrmBAD_CALLBACK	54	/* Invalid callback descriptor */
#define	MrmNULL_ROUTINE	56	/* Empty callback routine name string */
#define	MrmVEC_TOO_BIG	58	/* too many elements in vector */
#define	MrmBAD_HIERARCHY	60	/* invalid MRM file hierarchy */
#define	MrmBAD_CLASS_CODE	62	/* Class code not found in MRMwc... */

/*
 * Resource classes and types
 */
#define	MRMgNul		0
#define	MRMgWidget	1		/* types in MRMwc... */
#define	MRMgLiteral	2		/* types in RGMrType... */
#define	MRMgResourceSet	3		/* type in MRMrs... */
/*			4		unused */
#define	MRMgMessage	5

#define MRMgMin		1		/* lowest legal group value */
#define	MRMgMax		5		/* highest legal group value */
#define	MRMgVecSize	MRMgMax+1	/* To size any vectors */

/*
 * The null resource type
 */
#define	MRMtNul		0


/*
 * Access types
 */
#define	MRMaPublic	1
#define	MRMaPrivate	2

/*
 * Index types. Immediate is included for the convenience of the UIL compiler
 */
#define	MRMrIndex	1
#define	MRMrRID		2
#define	MRMrImmediate	3

/*
 * Maximum number of characters in an index
 */
#define	MRMMaxIndexLen	31
#define	MRMMaxIndexLen1	(MRMMaxIndexLen + 1)	/* to size vectors */


/*
 * File open access types
 */
#define	MRMReadAccess	1
#define	MRMWriteAccess	2

/*
 * Standard date string length
 */
#define	MRMhsDate		29		/* any date string */


\f


/*
 * Definitions associated with widget representations
 */

/*
 * Code for unknown (user-defined) classes. All Digital classes are
 * privately defined elsewhere.
 */
#define	MRMwcUnknown		1


/*
 * The following define the representation type in widget arglist
 * arguments, i.e. specify the actual representation of values
 * in an argument. A subset of these is used to define literal types
 * for RGMgLiteral resources.
 */
#define	RGMrTypeMin		1
#define	RGMrTypeInteger		1	/* int */
#define	RGMrTypeBoolean		2
#define	RGMrTypeChar8		3	/* a nul-terminated string */
#define	RGMrTypeChar8Vector	4	/* a vector of char_8 strings */
#define	RGMrTypeCString		5	/* a compound string (DDIS) */
#define	RGMrTypeCStringVector	6	/* a vector of compound strings */
#define	RGMrTypeFloat		7
					/* 8 = TypeCompressed now unused */
#define	RGMrTypeCallback	9	/* code for a callback descriptor */
#define	RGMrTypePixmapImage	10	/* Pixmap in image form */
#define	RGMrTypePixmapDDIF	11	/* Pixmap in DDIF form */
#define	RGMrTypeResource	12	/* MRM resource descriptor */
#define	RGMrTypeNull		13	/* no value given */
#define	RGMrTypeAddrName	14	/* nul-terminated string to be
					   interpreted as runtime address */
#define	RGMrTypeIconImage	15	/* UIL/DWICS/MRM icon image */
#define	RGMrTypeFont		16	/* MRM font structure */
#define	RGMrTypeFontList	17	/* MRM font list */
#define	RGMrTypeColor		18	/* MRM color descriptor */
#define	RGMrTypeColorTable	19	/* MRM color table */
#define	RGMrTypeAny		20	/* Any is allowed in UID file */
#define RGMrTypeTransTable	21	/* Translation table (ASCIZ string) */
#define RGMrTypeClassRecName	22	/* class record name (ASCIZ string) */
#define RGMrTypeIntegerVector	23	/* a vector of integers */
#define RGMrTypeXBitmapFile	24	/* X bitmap file to make pixmap with */
#define RGMrTypeCountedVector	25	/* vector with associated count */
#define	RGMrTypeMax		25


/*
 * Types of resource sets.
 */
#define	MRMrsInterfaceModule	1	/* Interface module */


\f


/*
 * MRM typedefs
 */

/*
 * MRM primitive types
 */
typedef	short int	MrmCode ;	/* Used for codes, e.g. MRMcr... */
typedef	char		MrmSCode ;	/* Short code for small ranges */
typedef	short int	MrmOffset ;	/* Used for offsets in records */
typedef	short int	MrmType ;	/* Used for types, e.g. MRMrType... */
typedef	short int	MrmSize ;	/* For size fields */
typedef	short int	MrmCount ;	/* For counter fields */
typedef	unsigned char	MrmFlag ;	/* flag fields */
typedef	long int	MrmResource_id ;	/* Resource id in IDB files */
typedef	short int	MrmGroup ;	/* For MRM resource groups */


\f


/*
 * MRM Resource context
 *
 * The following context structure is provided by MRM to cover all memory
 * management of in-memory resources. This mechanism provides:
 *	o improved memory management efficiency through buffer re-use
 *	o collection of resource attributes in one place
 *	o support for non-standard allocation routines
 */
#define	MRMResourceContextValid	232570204
typedef struct {
	unsigned	validation ;	/* validation code =
					   MRMResourceContextValid */
	char		*data_buffer ;	/* pointer to data buffer in memory */
	MrmSize		buffer_size ;	/* number of bytes in buffer */
	MrmSize		resource_size ;	/* number of bytes used by resource */
	MrmGroup	group ;		/* resource group */
	MrmType		type ;		/* resource type */
	MrmCode		access ;	/* MRMaPrivate or MRMaPublic */
	MrmCode		lock ;		/* resource locking code */
	char		*((*alloc_func) ()) ;	/* memory allocation func */
	void		(*free_func) () ;	/* deallocation func */
} MRMResourceContext, *MRMResourceContextPtr ;


/*
 * Validation macro, returns TRUE/FALSE
 */
#define	XmMrmRCValid(context) ((context)->validation==MRMResourceContextValid)


/*
 * The following are accessor macros for a resource context
 */
#define	MrmRCBuffer(context)	((context)->data_buffer)
#define XmMrmRCBufSize(context)	((context)->buffer_size)
#define MrmRCSize(context)	((context)->resource_size)
#define XmMrmRCGroup(context)	((context)->group)
#define MrmRCType(context)	((context)->type)
#define XmMrmRCAccess(context)	((context)->access)
#define XmMrmRCLock(context)	((context)->lock)


/*
 * The following are modifiers for a resource context
 */
#define	XmMrmRCSetSize(context,sizval)   {(context)->resource_size=(sizval);}
#define XmMrmRCSetGroup(context,grpval)  {(context)->group=(grpval);}
#define MrmRCSetType(context,typval)   {(context)->type=(typval);}
#define XmMrmRCSetAccess(context,accval) {(context)->access=(accval);}
#define XmMrmRCSetLock(context,lckval)	  {(context)->lock=(lckval);}


/*
 * Error reporting states
 */
#define	MRMRCErrorDefault	1	/* default - report on line */
#define	MRMRCErrorSave		2	/* save error, don't report */

/*
 * Error reporting destinations
 */
#define	MRMErrOutMemory	1	/* Save error messages in memory, no print */
#define	MRMErrOutStdout	2	/* print error messages to stdout */


\f


/*
 * IDB definitions in common use. The principal one is IDBFile; others
 * are included to make that definition valid.
 */

/*
 * Record type definitions - IDBrt...
 */
#define	IDBrtMin		1
#define	IDBrtHeader		1
#define	IDBrtIndexLeaf		2
#define	IDBrtIndexNode		3
#define	IDBrtRIDMap		4
#define	IDBrtData		5
#define	IDBrtMax		5
#define	IDBrtVecSize		6


/*
 * Sizes of fixed-length strings in the file header. Definitions are
 * provided for both the number of characters in the string and the
 * constant which gives the string length including the terminating nul.
 * IDBhs...
 */
#define	IDBhsVersion		9		/* Any version string */
#define	IDBhsVersion1		(IDBhsVersion + 1)
#define	IDBhsCreator		29		/* Creator id */
#define	IDBhsCreator1		(IDBhsCreator + 1)
#define	IDBhsDate		MRMhsDate	/* Any date string */
#define	IDBhsDate1		(IDBhsDate + 1)
#define	IDBhsModule		29		/* Module id */
#define	IDBhsModule1		(IDBhsModule + 1)


/*
 * Record number. 65k should be enough...
 */
typedef	short int	IDBRecordNumber ;


/*
 * A resource ID consists of the resource map index and the ID index
 * in the given resource map.
 */
typedef	short int	IDBResourceIndex ;
typedef union {
	unsigned		external_id ;	/* Looks like a fullword */
	struct {
	  IDBResourceIndex	map_index ;	/* resource map index */
	  IDBResourceIndex	res_index ;	/* resource index into map */
	}			internal_id ;	/* 2 fields internally */
} IDBridDesc ;

/*
 * A resource ID passed by value in a fullword.
 */
typedef	unsigned	IDBResource ;		/* a declaration for RIDs
 						   passed by value */

\f


/*
 * IDB open file information
 *
 * The following is the information retained by IDB for an open file.
 * Much of this information matches that found in the file header,
 * and is the source of for that info when the header is updated.
 */

#define	IDBOpenFileValid	421642674
typedef struct {
	unsigned	validation ;		/* validation code =
						   IDBOpenFileValid */
	int		get_count ;		/* # get operations on file */
	int		put_count ;		/* # put operations on file */
	MrmCode		access ;		/* MRMReadAccess or
						   MRMWriteAccess */
	unsigned int	lowlevel_id ;		/* open file id returned
						   by low-level routines */
	IDBRecordNumber	index_root ;		/* index root pointer */
	MrmCount	num_indexed ;		/* # entries in index */
	MrmCount	num_RID ;		/* # RID entries in file */
	IDBridDesc	next_RID ;		/* next available RID */
	IDBRecordNumber	last_record ;		/* last record used in file */
	IDBRecordNumber	last_data_record ;	/* last data record in file.
						   NULL if no records yet */
	MrmCount	RID_maps_count ;	/* number of entry in
						   RID_maps vector */
	IDBRecordNumber	*RID_maps ;		/* Pointer to vector
						   of RID index map records */
	MrmCount	group_counts[MRMgVecSize] ;
						/* vector of record counts
						   by resource group */
	MrmCount	rt_counts[IDBrtVecSize] ;
						/* vector of record counts by
						   record type (statistics) */
	unsigned long	timer ;			/* for statistics */
	char		db_version[IDBhsVersion1] ;
						/* database version */
	char		creator[IDBhsCreator1] ; /* creator id */
	char		creator_version[IDBhsVersion1] ;
						/* creator version */
	char		creation_date[IDBhsDate1] ;
						/* creation date */
	char		module[IDBhsModule1] ;	/* module id */
	char		module_version[IDBhsVersion1] ;
						/* module version */
	int		user1 ;			/* for caller use */
	int		user2 ;			/* for caller use */
} IDBOpenFile, *IDBFile ;


\f


/*
 * Operating System specific parameter struct.  Passed to low level
 * file OPEN.
 */
#define MrmOsOpenParamVersion 1
typedef struct	{
/*
 * The version of this structure. Set to MrmOsOpenParamVersion
 */
	Cardinal		version; 
/*
 * The default name, to be placed in FAB$L_DNA for RMS use.
 */
	char			*default_fname;	
/*
 * The related name, to be placed in NAM$L_RLF for RMS use.
 * Flag for file clobber (1 means OK to clobber)
 */
	union {
	    unsigned long	related_nam; 
	    Boolean		clobber_flg; 
	} nam_flg;

} MrmOsOpenParam, *MrmOsOpenParamPtr ;


\f


/*
 * Open hierarchy struct
 *
 * The following structure represents an open Mrm.hierarchy. A hierarchy
 * is principally a list of open IDB files in search order. As an aid to
 * efficient searching, a list of files by resource group is also kept.
 * Each entry in the list is the subset of the files in the hierarchy
 * which contains resources in the corresponding group.
 */

#define	MrmHIERARCHY_VALID	102214835
typedef struct {
	unsigned	validation ;		/* MrmHierarchyValid */
	MrmCount	num_file ;		/* number of files open */
	IDBFile		*file_list ;		/* list of open files */
	MrmCount	grp_num[MRMgVecSize] ;	/* vector of file counts by
						   resource group */
	IDBFile		*grp_ids[MRMgVecSize] ;	/* vectors of file ids by
						   resource group */
} MrmHierarchyDesc, *MrmHierarchy ;


/*
 * Validation macro
 */
#define	MrmHierarchyValid(hierarchy)		\
    ((hierarchy)->validation==MrmHIERARCHY_VALID)


\f


/*
 * Structure used to pass name/value pairs to DwtRegisterMRMNames
 */
typedef struct {
	String		name ;		/* case-sensitive name */
	caddr_t		value ;		/* value/address associated with name */
} MRMRegisterArg, *MrmRegisterArglist ;


\f


/*
 * RGM widget record text vector item (text vector literal)
 *
 * The following represents vectors of either ASCIZ or compound strings.
 * each member of the vector is type-tagged so that mixed vectors are possible.
 * This descriptor is a union so that a vector of these items can be over-
 * written to become an in-memory list of pointers. This avoids some
 * allocation problems at widget instantiation. Char8 items are String,
 * CString items are DwtCompString.
 *
 * Offsets are interpreted as follows:
 *	text vector as immediate in widget record - offset from beginning
 *		of record buffer.
 *	text vector as UID literal - offset from beginning of resource buffer
 */
typedef union {
	  caddr_t	pointer ;	/* for use as memory pointer */
	  struct {
	    MrmType	rep_type ;	/* RGMrTypeChar8 or RGMrTypeCString */
	    MrmOffset	offset ;	/* offset of item in record */
	} text_item ;			/* for use as item type & offset */
} RGMTextEntry, *RGMTextEntryPtr ;


/*
 * The text Vector. This is designed to allow the vector of text entries
 * to be over-written into an in-memory vector of pointers. Thus this list
 * has one extra entry to provide a terminating null.
 */
#define	MRMTextVectorValid	34966592
typedef struct {
	unsigned	validation ;	/* MRMTextVectorValid */
	MrmCount	count ;		/* Number of text items in vector */
	RGMTextEntry	item[1] ;	/* first text item in a vector of
					   n = .count+1 items. item[.count]
					   always = NULL */
} RGMTextVector, *RGMTextVectorPtr ;


/*
 * The integer Vector. This is designed to allow the vector of integers
 * to be over-written into an in-memory vector of pointers. Thus this list
 * has one extra entry to provide a terminating null.
 */
#define	MRMIntegerVectorValid	34966593
typedef struct {
	unsigned	validation ;	/* MRMIntegerVectorValid */
	MrmCount	count ;		/* Number of integer items in vector */
	int		item[1] ;	/* first integer item in a vector   */
					/* of n = .count+1 items.	    */
					/* item[.count] always = NULL	    */
} RGMIntegerVector, *RGMIntegerVectorPtr ;

/***********
What used to be in URMPublic.h
************/



/*
 * Resource classes and types
 */
#define	URMgNul		MRMgNul
#define	URMgWidget	MRMgWidget		
#define	URMgLiteral	MRMgLiteral		
#define	URMgResourceSet	MRMgResourceSet		

#define	URMgMessage	MRMgMessage

#define URMgMin		MRMgMin		
#define	URMgMax		MRMgMax		
#define	URMgVecSize	MRMgVecSize

/*
 * The null resource type
 */
#define	URMtNul		MRMtNul


/*
 * Access types
 */
#define	URMaPublic	MRMaPublic
#define	URMaPrivate	MRMaPrivate

/*
 * Index types. Immediate is included for the convenience of the UIL compiler
 */
#define	URMrIndex	MRMrIndex
#define	URMrRID		MRMrRID
#define	URMrImmediate	MRMrImmediate

/*
 * Maximum number of characters in an index
 */
#define	URMMaxIndexLen	MRMMaxIndexLen
#define	URMMaxIndexLen1	MRMMaxIndexLen1


/*
 * File open access types
 */
#define	URMReadAccess	MRMReadAccess
#define	URMWriteAccess	MRMWriteAccess

/*
 * Standard date string length
 */
#define	URMhsDate	MRMhsDate		

/*
 * Code for unknown (user-defined) classes. 
 */
#define	URMwcUnknown	MRMwcUnknown



/*
 * Types of resource sets.
 */
#define	URMrsInterfaceModule	MRMrsInterfaceModule	

/*
 * URM Resource context
 *
 * The following context structure is provided by URM to cover all memory
 * management of in-memory resources. This mechanism provides:
 *	o improved memory management efficiency through buffer re-use
 *	o collection of resource attributes in one place
 *	o support for non-standard allocation routines
 */
#define	URMResourceContextValid	MRMResourceContextValid
#define URMResourceContext	MRMResourceContext
#define URMResourceContextPtr	MRMResourceContextPtr


/*
 * Validation macro, returns TRUE/FALSE
 */
#define	UrmRCValid(context) ((context)->validation==URMResourceContextValid)


/*
 * The following are accessor macros for a resource context
 */
#define	UrmRCBuffer(context)	((context)->data_buffer)
#define UrmRCBufSize(context)	((context)->buffer_size)
#define UrmRCSize(context)	((context)->resource_size)
#define UrmRCGroup(context)	((context)->group)
#define UrmRCType(context)	((context)->type)
#define UrmRCAccess(context)	((context)->access)
#define UrmRCLock(context)	((context)->lock)


/*
 * The following are modifiers for a resource context
 */
#define	UrmRCSetSize(context,sizval)   {(context)->resource_size=(sizval);}
#define UrmRCSetGroup(context,grpval)  {(context)->group=(grpval);}
#define UrmRCSetType(context,typval)   {(context)->type=(typval);}
#define UrmRCSetAccess(context,accval) {(context)->access=(accval);}
#define UrmRCSetLock(context,lckval)	  {(context)->lock=(lckval);}


/*
 * Error reporting states
 */
#define	URMRCErrorDefault	MRMRCErrorDefault
#define	URMRCErrorSave		MRMRCErrorSave

/*
 * Error reporting destinations
 */
#define	URMErrOutMemory	MRMErrOutMemory	
#define	URMErrOutStdout	MRMErrOutStdout	


\f


/*
 * Open hierarchy struct
 *
 * is principally a list of open IDB files in search order. As an aid to
 * efficient searching, a list of files by resource group is also kept.
 * Each entry in the list is the subset of the files in the hierarchy
 * which contains resources in the corresponding group.
 */



#define URMRegisterArg		MRMRegisterArg
#define	URMTextVectorValid	MRMTextVectorValid
#define	URMIntegerVectorValid	MRMIntegerVectorValid



/*
 * Declarations of MRM public entry points
 */
#include <Mrm/MrmDecls.h>
#endif /* MrmPublic */
/* DON'T ADD STUFF AFTER THIS #endif */