musrfit 1.10.0
mud.h
Go to the documentation of this file.
1#ifndef _MUD_H_
2#define _MUD_H_
3/*
4 * mud.h Declarations for MUD
5 * v1.3
6 *
7 * Copyright (C) 1994-2021 TRIUMF (Vancouver, Canada)
8 *
9 * Authors: T. Whidden, D. Arseneau, S. Daviel
10 *
11 * Released under the GNU LGPL - see http://www.gnu.org/licenses
12 *
13 * This program is free software; you can distribute it and/or modify it under
14 * the terms of the Lesser GNU General Public License as published by the Free
15 * Software Foundation; either version 2 of the License, or any later version.
16 * Accordingly, this program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public License
19 * for more details.
20 *
21 * revisions:
22 * 01-mar-2000 DJA add UNKNOWN section, with no ID
23 * 11-oct-2000 DJA add MUD_FMT_RAL_ID; MUD_setSizes
24 * 22-Apr-2003 DJA add MUD_openReadWrite, MUD_openInOut
25 * 25-Nov-2009 DJA 64-bit linux
26 * 25-Jun-2017 DJA Allow use in C++ (ROOT); shared lib.
27 * 14-Aug-2019 DJA Use stdint.h, casts in printf
28 * 01-Jun-2021 DJA Add arm64 arch as little-endian
29 * 26-Aug-2021 DJA Declare caddr_t in all Win.
30 */
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36/*
37 * FORMAT IDs - Must be unique!
38 * format of ID is: 0xLLFFSSSS
39 * where: LL = lab identifier
40 * FF = format identifier
41 * RR = revision
42 * SS = section identifier
43 */
44
45/*
46 * Lab identifiers
47 */
48#define MUD_LAB_ALL_ID (0x01000000)
49#define MUD_LAB_TRI_ID (0x02000000)
50#define MUD_LAB_RAL_ID (0x03000000)
51#define MUD_LAB_PSI_ID (0x04000000)
52/*
53 * Format identifiers
54 */
55#define MUD_FMT_ALL_ID (MUD_LAB_ALL_ID|0x00010000)
56#define MUD_FMT_GEN_ID (MUD_LAB_ALL_ID|0x00020000)
57#define MUD_FMT_TRI_TD_ID (MUD_LAB_TRI_ID|0x00010000)
58#define MUD_FMT_TRI_TI_ID (MUD_LAB_TRI_ID|0x00020000)
59
60/*
61 * ALL Format identifiers
62 */
63#define MUD_SEC_ID (MUD_FMT_ALL_ID|0x00000001)
64#define MUD_SEC_FIXED_ID (MUD_FMT_ALL_ID|0x00000002)
65#define MUD_SEC_GRP_ID (MUD_FMT_ALL_ID|0x00000003)
66#define MUD_SEC_EOF_ID (MUD_FMT_ALL_ID|0x00000004)
67#define MUD_SEC_CMT_ID (MUD_FMT_ALL_ID|0x00000005)
68
69#define MUD_GRP_CMT_ID MUD_SEC_CMT_ID
70/*
71 * GEN Format identifiers
72 */
73#define MUD_SEC_GEN_RUN_DESC_ID (MUD_FMT_GEN_ID|0x00000001)
74#define MUD_SEC_GEN_HIST_HDR_ID (MUD_FMT_GEN_ID|0x00000002)
75#define MUD_SEC_GEN_HIST_DAT_ID (MUD_FMT_GEN_ID|0x00000003)
76#define MUD_SEC_GEN_SCALER_ID (MUD_FMT_GEN_ID|0x00000004)
77#define MUD_SEC_GEN_IND_VAR_ID (MUD_FMT_GEN_ID|0x00000005)
78#define MUD_SEC_GEN_ARRAY_ID (MUD_FMT_GEN_ID|0x00000007)
79
80#define MUD_GRP_GEN_HIST_ID (MUD_FMT_GEN_ID|0x00000002)
81#define MUD_GRP_GEN_SCALER_ID (MUD_FMT_GEN_ID|0x00000004)
82#define MUD_GRP_GEN_IND_VAR_ID (MUD_FMT_GEN_ID|0x00000005)
83#define MUD_GRP_GEN_IND_VAR_ARR_ID (MUD_FMT_GEN_ID|0x00000006)
84/*
85 * TRI_TD Format identifiers
86 */
87#define MUD_SEC_TRI_TD_HIST_ID (MUD_FMT_TRI_TD_ID|0x00000002)
88
89
90#define MUD_GRP_TRI_TD_HIST_ID (MUD_FMT_TRI_TD_ID|0x00000002)
91#define MUD_GRP_TRI_TD_SCALER_ID (MUD_FMT_TRI_TD_ID|0x00000004)
92/*
93 * TRI_TI Format identifiers
94 */
95#define MUD_SEC_TRI_TI_RUN_DESC_ID (MUD_FMT_TRI_TI_ID|0x00000001)
96#define MUD_SEC_TRI_TI_HIST_ID (MUD_FMT_TRI_TI_ID|0x00000002)
97
98#define MUD_GRP_TRI_TI_HIST_ID MUD_SEC_TRI_TI_HIST_ID
99/*
100 * RAL Format identifiers
101 */
102#define MUD_SEC_RAL_RUN_DESC_ID (MUD_FMT_RAL_ID|0x00000001)
103#define MUD_SEC_RAL_HIST_ID (MUD_FMT_RAL_ID|0x00000002)
104
105#define MUD_GRP_RAL_HIST_ID MUD_SEC_RAL_HIST_ID
106/*
107 * Add new format identifiers above this comment
108 */
109
110#include <stdio.h>
111#include <stdlib.h>
112#include <string.h>
113#include <stddef.h>
114#include <sys/types.h>
115
116#ifndef NOSTDINT
117/* If there is no stdint.h, define NOSTDINT, as with "make NOSTDINT=1" */
118#include <stdint.h>
119#endif
120
121/*
122 * MUD types
123 */
124
125#ifdef _STDINT_H
126typedef int STATUS;
127typedef int8_t INT8;
128typedef uint8_t UINT8;
129typedef int16_t INT16;
130typedef uint16_t UINT16;
131typedef int32_t INT32;
132typedef uint32_t UINT32;
133typedef float REAL32;
134typedef double REAL64;
135#else /*no stdint.h */
136typedef int STATUS;
137typedef char INT8;
138typedef unsigned char UINT8;
139typedef short INT16;
140typedef unsigned short UINT16;
141#if defined(__alpha)||defined(__linux)||defined(__MACH__) || defined(__arm64)
142typedef int INT32;
143typedef unsigned int UINT32;
144#else
145typedef long INT32;
146typedef unsigned long UINT32;
147#endif /* __alpha || __linux || __MACH__ || __arm64 */
148typedef float REAL32;
149typedef double REAL64;
150#endif /* _STDINT_H */
151#if (defined(__alpha)&&defined(vms)) || defined( __CINT__ ) || defined(_WIN32)
152typedef char* caddr_t;
153#endif
154typedef UINT32 TIME;
155#ifndef BOOL_DEFINED
156#define BOOL_DEFINED
157typedef UINT32 BOOL;
158#endif
159
160#ifndef FALSE
161#define FALSE 0
162#endif /* !FALSE */
163#ifndef TRUE
164#define TRUE 1
165#endif /* !TRUE */
166#ifndef NULL
167# define NULL 0
168#endif /* !NULL */
169
170#define SUCCESS 1
171#define FAILURE 0
172#ifndef _success
173#define _success(s) (s&1)
174#endif
175#ifndef _failure
176#define _failure(s) !(s&1)
177#endif
178/* avoid redefinitions if c_utils.h already included */
179/*#ifdef linux
180#include "c_utils.h"
181#else
182*/
183/*
184 * c_utils.h, Defines for C utilities
185 */
186#if defined(vms) || defined(__MSDOS__) || defined(_WIN32)
187#define bcopy( b1, b2, len ) memcpy(b2,b1,len)
188#define bzero( b, len ) memset(b,(char)0,len)
189#endif /* vms || __MSDOS__ || _WIN32 */
190#ifndef _C_UTILS_H_ /* conflict with c_utils.h */
191#define _max( a, b ) ( ( (a) > (b) ) ? (a) : (b) )
192#define _min( a, b ) ( ( (a) < (b) ) ? (a) : (b) )
193#define _strlen( s ) ((s!=NULL)?strlen(s):0)
194#define _swap32( l ) (((UINT32)l>>16)+((UINT32)l<<16))
195#define _swap16( s ) (((UINT16)s>>8)+((UINT16)s<<8))
196#endif
197
198#define _free(objp) if((void*)(objp)!=(void*)NULL){free((void*)(objp));objp=NULL;}
199#define _roundUp( n, r ) ( (r) * (int)( ((n)+(r)-1) / (r) ) )
200
201#define zalloc( n ) memset((void*)malloc(n),0,n)
202#if defined(vms) || (defined(mips)&&!defined(__sgi)) || (defined(__MSDOS__)&&defined(__STDC__))
203#define strdup( s ) strcpy((char*)malloc(strlen(s)+1),s)
204#endif /* vms || mips&&!sgi */
205/*#endif */
206
215
216typedef int (*MUD_PROC)(MUD_OPT, void *p1, void *p2);
217
218typedef enum {
222} MUD_IO_OPT;
223
224
225typedef struct {
226 struct _MUD_SEC* pNext; /* pointer to next section */
227 UINT32 size; /* total size occupied by the section */
228 UINT32 secID; /* Ident of section type */
229 UINT32 instanceID; /* Instance ID of section type */
230 UINT32 sizeOf; /* sizeof struct (used for FORTRAN) */
231 MUD_PROC proc; /* section handling procedure */
232} MUD_CORE;
233
234
235typedef struct _MUD_INDEX {
236 struct _MUD_INDEX* pNext; /* pointer to next section */
237 UINT32 offset; /* offset from end of group section */
238 UINT32 secID; /* Ident of section type */
239 UINT32 instanceID; /* Instance ID of section type */
241
242
248
249
250/*
251 * (Normally) for internal use only
252 */
253typedef struct {
254 caddr_t buf;
255 int pos;
256 unsigned int size;
257} BUF;
258
259
263
264/* the stub of a section used when we hit an unknown section type */
268
269
270/* First section of all MUD format files */
277
278
279/* Generalized group section */
280typedef struct _MUD_SEC_GRP {
282
283 UINT32 num; /* number of group members */
286 MUD_SEC* pMem; /* pointer to list of group members */
290
291
292/* Section indicating EOF */
293typedef struct {
296
297
309
310
332
333/* Generic histogram header structure */
351
352
353/* Generic (packed,integer) histogram data structure */
354typedef struct {
356
358 caddr_t pData; /* pointer to the histogram data */
360
361
362/* Generic (packed) array data structure */
363typedef struct {
365
366 UINT32 num; /* number of elements */
367 UINT32 elemSize; /* size of element in bytes */
368 UINT32 type; /* 1=integer, 2=real, 3=string */
369 BOOL hasTime; /* TRUE if there is time data */
370 UINT32 nBytes; /* bytes in pData - needed for packing */
371 caddr_t pData; /* pointer to the array data */
372 TIME* pTime; /* pointer to time data */
374
375
376typedef struct {
378
380 char* label;
382
383
384typedef struct {
386
387 double low;
388 double high;
389 double mean;
390 double stddev;
391 double skewness;
392 char* name;
394 char* units;
396
397
421
422
423#define MUD_pNext( pM ) (((MUD_SEC*)pM)->core.pNext)
424#define MUD_sizeOf( pM ) (((MUD_SEC*)pM)->core.sizeOf)
425#define MUD_size( pM ) (((MUD_SEC*)pM)->core.size)
426#define MUD_secID( pM ) (((MUD_SEC*)pM)->core.secID)
427#define MUD_instanceID( pM ) (((MUD_SEC*)pM)->core.instanceID)
428
429
430#if defined(__MSDOS__) || defined(_WIN32) || defined(__i386__) || defined(__i586__) || defined(__i686__) || defined(vax) || defined(__alpha) || defined(__amd64) || defined(__arm64) || (defined(__mips)&&!defined(__sgi))
431#define MUD_LITTLE_ENDIAN 1
432#else
433#define MUD_BIG_ENDIAN 1
434#endif
435
436#define _swap2bytes(s) ((s>>8)+(s<<8))
437#define _swap4bytes(l) ((l>>24)+(l<<24)+((l&0xff0000)>>8)+((l&0xff00)<<8))
438
439#define bdecode_obj( b, p, s ) bcopy( b, p, s )
440#define bencode_obj( b, p, s ) bcopy( p, b, s )
441#define bdecode_1( b, p ) bcopy( b, p, 1 )
442#define bencode_1( b, p ) bcopy( p, b, 1 )
443
444#define _decode_obj( b, p, s ) bcopy( &b->buf[b->pos], p, s );\
445 b->pos+=s, b->size+=s
446#define _encode_obj( b, p, s ) bcopy( p, &b->buf[b->pos], s );\
447 b->pos+=s, b->size+=s
448
449#define decode_2( b, p ) bdecode_2(&b->buf[b->pos],p);\
450 b->pos+=2, b->size+=2
451#define encode_2( b, p ) bencode_2(&b->buf[b->pos],p);\
452 b->pos+=2, b->size+=2
453
454#define decode_4( b, p ) bdecode_4(&b->buf[b->pos],p);\
455 b->pos+=4, b->size+=4
456#define encode_4( b, p ) bencode_4(&b->buf[b->pos],p);\
457 b->pos+=4, b->size+=4
458
459#define decode_8( b, p ) bdecode_8(&b->buf[b->pos],p);\
460 b->pos+=8, b->size+=8
461#define encode_8( b, p ) bencode_8(&b->buf[b->pos],p);\
462 b->pos+=8, b->size+=8
463
464#define decode_packed( b, p, n ) bdecode_packed(&b->buf[b->pos],p,n);\
465 b->pos+=n, b->size+=n
466#define encode_packed( b, p, n ) bencode_packed(&b->buf[b->pos],p,n);\
467 b->pos+=n, b->size+=n
468
469#define _buf_pos( b ) b->pos
470#define _buf_addr( b ) &b->buf[b->pos]
471#define _set_buf_pos( b, pos ) b->pos = pos
472#define _incr_buf_pos( b, incr ) b->pos += incr
473
477
478
479#undef _ANSI_ARGS_
480#if ((defined(__STDC__) || defined(SABER)) && !defined(NO_PROTOTYPE)) || defined(__cplusplus)
481#define _ANSI_ARGS_(x) x
482#else
483#define _ANSI_ARGS_(x) ()
484#define NO_STDARG
485#endif /* STDC */
486
487
488/* mud.c */
489FILE *MUD_openInput _ANSI_ARGS_(( char *inFile ));
490FILE *MUD_openOutput _ANSI_ARGS_(( char *outFile ));
491FILE *MUD_openInOut _ANSI_ARGS_(( char *inFile ));
492void decode_str _ANSI_ARGS_(( BUF *pB , char **ps ));
493void encode_str _ANSI_ARGS_(( BUF *pB , char **ps ));
494void MUD_free _ANSI_ARGS_(( void* pMUD ));
495BOOL MUD_encode _ANSI_ARGS_(( BUF *pBuf , void* pMUD , MUD_IO_OPT io_opt ));
496void* MUD_decode _ANSI_ARGS_(( BUF *pBuf ));
497int MUD_getSize _ANSI_ARGS_(( void* pMUD ));
498void MUD_show _ANSI_ARGS_(( void* pMUD , MUD_IO_OPT io_opt ));
499void MUD_heads _ANSI_ARGS_(( void* pMUD , MUD_IO_OPT io_opt ));
501BOOL MUD_writeFile _ANSI_ARGS_(( FILE *fout , void* pMUD_head ));
502BOOL MUD_write _ANSI_ARGS_(( FILE *fout , void* pMUD , MUD_IO_OPT io_opt ));
503BOOL MUD_writeGrpStart _ANSI_ARGS_(( FILE *fout , MUD_SEC_GRP *pMUD_parentGrp , MUD_SEC_GRP *pMUD_grp , int numMems ));
504void addIndex _ANSI_ARGS_(( MUD_SEC_GRP *pMUD_grp , void* pMUD ));
505BOOL MUD_writeGrpMem _ANSI_ARGS_(( FILE *fout , MUD_SEC_GRP *pMUD_grp , void* pMUD ));
506BOOL MUD_writeGrpEnd _ANSI_ARGS_(( FILE *fout , MUD_SEC_GRP *pMUD_grp ));
507void* MUD_readFile _ANSI_ARGS_(( FILE *fin ));
508void* MUD_read _ANSI_ARGS_(( FILE *fin , MUD_IO_OPT io_opt ));
509UINT32 MUD_setSizes _ANSI_ARGS_(( void* pMUD ));
510MUD_SEC* MUD_peekCore _ANSI_ARGS_(( FILE *fin ));
511void* MUD_search _ANSI_ARGS_(( void* pMUD_head , ...));
512int MUD_fseek _ANSI_ARGS_(( FILE *fio , ...));
513MUD_SEC *fseekNext _ANSI_ARGS_(( FILE *fio , MUD_SEC_GRP *pMUD_parent , UINT32 secID , UINT32 instanceID ));
514int MUD_fseekFirst _ANSI_ARGS_(( FILE *fio ));
515void MUD_add _ANSI_ARGS_(( void** ppMUD_head , void* pMUD_new ));
516int MUD_totSize _ANSI_ARGS_(( void* pMUD ));
517void MUD_addToGroup _ANSI_ARGS_(( MUD_SEC_GRP *pMUD_grp , void* pMUD ));
518void MUD_assignCore _ANSI_ARGS_(( MUD_SEC *pMUD1 , MUD_SEC *pMUD2 ));
519int MUD_CORE_proc _ANSI_ARGS_(( MUD_OPT op , BUF *pBuf , MUD_SEC *pMUD ));
520int MUD_INDEX_proc _ANSI_ARGS_(( MUD_OPT op , BUF *pBuf , MUD_INDEX *pMUD ));
521
522/* mud_encode.c */
523void bdecode_2 _ANSI_ARGS_(( void *b , void *p ));
524void bencode_2 _ANSI_ARGS_(( void *b , void *p ));
525void bdecode_4 _ANSI_ARGS_(( void *b , void *p ));
526void bencode_4 _ANSI_ARGS_(( void *b , void *p ));
527void bdecode_8 _ANSI_ARGS_(( void *b , void *p ));
528void bencode_8 _ANSI_ARGS_(( void *b , void *p ));
529void decode_str _ANSI_ARGS_(( BUF *pB , char **ps ));
530void encode_str _ANSI_ARGS_(( BUF *pB , char **ps ));
531void bencode_float _ANSI_ARGS_(( char *buf , float *fp ));
532void encode_float _ANSI_ARGS_(( BUF *pBuf , float *fp ));
533void bdecode_float _ANSI_ARGS_(( char *buf , float *fp ));
534void decode_float _ANSI_ARGS_(( BUF *pBuf , float *fp ));
535void bencode_double _ANSI_ARGS_(( char *buf , double *dp ));
536void encode_double _ANSI_ARGS_(( BUF *pBuf , double *fp ));
537void bdecode_double _ANSI_ARGS_(( char *buf , double *dp ));
538void decode_double _ANSI_ARGS_(( BUF *pBuf , double *fp ));
539
540/* mud_new.c */
541MUD_SEC *MUD_new _ANSI_ARGS_(( UINT32 secID , UINT32 instanceID ));
542
543/* mud_all.c */
544int MUD_SEC_proc _ANSI_ARGS_(( MUD_OPT op , BUF *pBuf , MUD_SEC *pMUD ));
550
551/* mud_gen.c */
558int MUD_SEC_GEN_HIST_pack _ANSI_ARGS_(( int num , int inBinSize , void* inHist , int outBinSize , void* outHist ));
559int MUD_SEC_GEN_HIST_unpack _ANSI_ARGS_(( int num , int inBinSize , void* inHist , int outBinSize , void* outHist ));
560
561/* mud_tri_ti.c */
563
564/* gmf_time.c */
565void GMF_MKTIME _ANSI_ARGS_(( TIME* out , INT32* input ));
566void GMF_TIME _ANSI_ARGS_(( TIME* out ));
567void GMF_LOCALTIME _ANSI_ARGS_(( TIME* in , INT32 *out ));
568
569/* mud_friendly.c */
570int MUD_openRead _ANSI_ARGS_(( char* filename, UINT32* pType ));
571int MUD_openWrite _ANSI_ARGS_(( char* filename, UINT32 type ));
572int MUD_openReadWrite _ANSI_ARGS_(( char* filename, UINT32* pType ));
574int MUD_closeWrite _ANSI_ARGS_(( int fd ));
575int MUD_closeWriteFile _ANSI_ARGS_(( int fd, char* outfile ));
576
577int MUD_getRunDesc _ANSI_ARGS_(( int fd, UINT32* pType ));
578int MUD_getExptNumber _ANSI_ARGS_(( int fd, UINT32* pExptNumber ));
579int MUD_getRunNumber _ANSI_ARGS_(( int fd, UINT32* pRunNumber ));
580int MUD_getElapsedSec _ANSI_ARGS_(( int fd, UINT32* pElapsedSec ));
581int MUD_getTimeBegin _ANSI_ARGS_(( int fd, UINT32* TimeBegin ));
582int MUD_getTimeEnd _ANSI_ARGS_(( int fd, UINT32* TimeEnd ));
583int MUD_getTitle _ANSI_ARGS_(( int fd, char* title, int strdim ));
584int MUD_getLab _ANSI_ARGS_(( int fd, char* lab, int strdim ));
585int MUD_getArea _ANSI_ARGS_(( int fd, char* area, int strdim ));
586int MUD_getMethod _ANSI_ARGS_(( int fd, char* method, int strdim ));
587int MUD_getApparatus _ANSI_ARGS_(( int fd, char* apparatus, int strdim ));
588int MUD_getInsert _ANSI_ARGS_(( int fd, char* insert, int strdim ));
589int MUD_getSample _ANSI_ARGS_(( int fd, char* sample, int strdim ));
590int MUD_getOrient _ANSI_ARGS_(( int fd, char* orient, int strdim ));
591int MUD_getDas _ANSI_ARGS_(( int fd, char* das, int strdim ));
592int MUD_getExperimenter _ANSI_ARGS_(( int fd, char* experimenter, int strdim ));
593int MUD_getTemperature _ANSI_ARGS_(( int fd, char* temperature, int strdim ));
594int MUD_getField _ANSI_ARGS_(( int fd, char* field, int strdim ));
595int MUD_getSubtitle _ANSI_ARGS_(( int fd, char* subtitle, int strdim ));
596int MUD_getComment1 _ANSI_ARGS_(( int fd, char* comment1, int strdim ));
597int MUD_getComment2 _ANSI_ARGS_(( int fd, char* comment2, int strdim ));
598int MUD_getComment3 _ANSI_ARGS_(( int fd, char* comment3, int strdim ));
599
600int MUD_setRunDesc _ANSI_ARGS_(( int fd, UINT32 type ));
601int MUD_setExptNumber _ANSI_ARGS_(( int fd, UINT32 exptNumber ));
602int MUD_setRunNumber _ANSI_ARGS_(( int fd, UINT32 runNumber ));
603int MUD_setElapsedSec _ANSI_ARGS_(( int fd, UINT32 elapsedSec ));
604int MUD_setTimeBegin _ANSI_ARGS_(( int fd, UINT32 timeBegin ));
605int MUD_setTimeEnd _ANSI_ARGS_(( int fd, UINT32 timeEnd ));
606int MUD_setTitle _ANSI_ARGS_(( int fd, char* title ));
607int MUD_setLab _ANSI_ARGS_(( int fd, char* lab ));
608int MUD_setArea _ANSI_ARGS_(( int fd, char* area ));
609int MUD_setMethod _ANSI_ARGS_(( int fd, char* method ));
610int MUD_setApparatus _ANSI_ARGS_(( int fd, char* apparatus ));
611int MUD_setInsert _ANSI_ARGS_(( int fd, char* insert ));
612int MUD_setSample _ANSI_ARGS_(( int fd, char* sample ));
613int MUD_setOrient _ANSI_ARGS_(( int fd, char* orient ));
614int MUD_setDas _ANSI_ARGS_(( int fd, char* das ));
615int MUD_setExperimenter _ANSI_ARGS_(( int fd, char* experimenter ));
616int MUD_setTemperature _ANSI_ARGS_(( int fd, char* temperature ));
617int MUD_setField _ANSI_ARGS_(( int fd, char* field ));
618int MUD_setSubtitle _ANSI_ARGS_(( int fd, char* subtitle ));
619int MUD_setComment1 _ANSI_ARGS_(( int fd, char* comment1 ));
620int MUD_setComment2 _ANSI_ARGS_(( int fd, char* comment2 ));
621int MUD_setComment3 _ANSI_ARGS_(( int fd, char* comment3 ));
622
623int MUD_getComments _ANSI_ARGS_(( int fd, UINT32* pType, UINT32* pNum ));
624int MUD_getCommentPrev _ANSI_ARGS_(( int fd, int num, UINT32* pPrev ));
625int MUD_getCommentNext _ANSI_ARGS_(( int fd, int num, UINT32* pNext ));
626int MUD_getCommentTime _ANSI_ARGS_(( int fd, int num, UINT32* pTime ));
627int MUD_getCommentAuthor _ANSI_ARGS_(( int fd, int num, char* author, int strdim ));
628int MUD_getCommentTitle _ANSI_ARGS_(( int fd, int num, char* title, int strdim ));
629int MUD_getCommentBody _ANSI_ARGS_(( int fd, int num, char* body, int strdim ));
630
631int MUD_setComments _ANSI_ARGS_(( int fd, UINT32 type, UINT32 num ));
632int MUD_setCommentPrev _ANSI_ARGS_(( int fd, int num, UINT32 prev ));
633int MUD_setCommentNext _ANSI_ARGS_(( int fd, int num, UINT32 next ));
634int MUD_setCommentTime _ANSI_ARGS_(( int fd, int num, UINT32 time ));
635int MUD_setCommentAuthor _ANSI_ARGS_(( int fd, int num, char* author ));
636int MUD_setCommentTitle _ANSI_ARGS_(( int fd, int num, char* title ));
637int MUD_setCommentBody _ANSI_ARGS_(( int fd, int num, char* body ));
638
639int MUD_getHists _ANSI_ARGS_(( int fd, UINT32* pType, UINT32* pNum ));
640int MUD_getHistType _ANSI_ARGS_(( int fd, int num, UINT32* pType ));
641int MUD_getHistNumBytes _ANSI_ARGS_(( int fd, int num, UINT32* pNumBytes ));
642int MUD_getHistNumBins _ANSI_ARGS_(( int fd, int num, UINT32* pNumBins ));
643int MUD_getHistBytesPerBin _ANSI_ARGS_(( int fd, int num, UINT32* pBytesPerBin ));
644int MUD_getHistFsPerBin _ANSI_ARGS_(( int fd, int num, UINT32* pFsPerBin ));
645int MUD_getHistSecondsPerBin _ANSI_ARGS_(( int fd, int num, REAL64* pSecondsPerBin ));
646int MUD_getHistT0_Ps _ANSI_ARGS_(( int fd, int num, UINT32* pT0_ps ));
647int MUD_getHistT0_Bin _ANSI_ARGS_(( int fd, int num, UINT32* pT0_bin ));
648int MUD_getHistGoodBin1 _ANSI_ARGS_(( int fd, int num, UINT32* pGoodBin1 ));
649int MUD_getHistGoodBin2 _ANSI_ARGS_(( int fd, int num, UINT32* pGoodBin2 ));
650int MUD_getHistBkgd1 _ANSI_ARGS_(( int fd, int num, UINT32* pBkgd1 ));
651int MUD_getHistBkgd2 _ANSI_ARGS_(( int fd, int num, UINT32* pBkgd2 ));
652int MUD_getHistNumEvents _ANSI_ARGS_(( int fd, int num, UINT32* pNumEvents ));
653int MUD_getHistTitle _ANSI_ARGS_(( int fd, int num, char* title, int strdim ));
654int MUD_getHistData _ANSI_ARGS_(( int fd, int num, void* pData ));
655int MUD_getHistpData _ANSI_ARGS_(( int fd, int num, void** ppData ));
656int MUD_getHistTimeData _ANSI_ARGS_(( int fd, int num, UINT32* pTimeData ));
657int MUD_getHistpTimeData _ANSI_ARGS_(( int fd, int num, UINT32** ppTimeData ));
658
659int MUD_setHists _ANSI_ARGS_(( int fd, UINT32 type, UINT32 num ));
660int MUD_setHistType _ANSI_ARGS_(( int fd, int num, UINT32 type ));
661int MUD_setHistNumBytes _ANSI_ARGS_(( int fd, int num, UINT32 numBytes ));
662int MUD_setHistNumBins _ANSI_ARGS_(( int fd, int num, UINT32 numBins ));
663int MUD_setHistBytesPerBin _ANSI_ARGS_(( int fd, int num, UINT32 bytesPerBin ));
664int MUD_setHistFsPerBin _ANSI_ARGS_(( int fd, int num, UINT32 fsPerBin ));
665int MUD_setHistSecondsPerBin _ANSI_ARGS_(( int fd, int num, REAL64 secondsPerBin ));
666int MUD_setHistT0_Ps _ANSI_ARGS_(( int fd, int num, UINT32 t0_ps ));
667int MUD_setHistT0_Bin _ANSI_ARGS_(( int fd, int num, UINT32 t0_bin ));
668int MUD_setHistGoodBin1 _ANSI_ARGS_(( int fd, int num, UINT32 goodBin1 ));
669int MUD_setHistGoodBin2 _ANSI_ARGS_(( int fd, int num, UINT32 goodBin2 ));
670int MUD_setHistBkgd1 _ANSI_ARGS_(( int fd, int num, UINT32 bkgd1 ));
671int MUD_setHistBkgd2 _ANSI_ARGS_(( int fd, int num, UINT32 bkgd2 ));
672int MUD_setHistNumEvents _ANSI_ARGS_(( int fd, int num, UINT32 numEvents ));
673int MUD_setHistTitle _ANSI_ARGS_(( int fd, int num, char* title ));
674int MUD_setHistData _ANSI_ARGS_(( int fd, int num, void* pData ));
675int MUD_setHistpData _ANSI_ARGS_(( int fd, int num, void* pData ));
676int MUD_setHistTimeData _ANSI_ARGS_(( int fd, int num, UINT32* pTimeData ));
677int MUD_setHistpTimeData _ANSI_ARGS_(( int fd, int num, UINT32* pTimeData ));
678
679int MUD_pack _ANSI_ARGS_(( int num, int inBinSize, void* inArray, int outBinSize, void* outArray ));
680int MUD_unpack _ANSI_ARGS_(( int num, int inBinSize, void* inArray, int outBinSize, void* outArray ));
681
682int MUD_getScalers _ANSI_ARGS_(( int fd, UINT32* pType, UINT32* pNum ));
683int MUD_getScalerLabel _ANSI_ARGS_(( int fd, int num, char* label, int strdim ));
684int MUD_getScalerCounts _ANSI_ARGS_(( int fd, int num, UINT32* pCounts ));
685
686int MUD_setScalers _ANSI_ARGS_(( int fd, UINT32 type, UINT32 num ));
687int MUD_setScalerLabel _ANSI_ARGS_(( int fd, int num, char* label ));
688int MUD_setScalerCounts _ANSI_ARGS_(( int fd, int num, UINT32* pCounts ));
689
690int MUD_getIndVars _ANSI_ARGS_(( int fd, UINT32* pType, UINT32* pNum ));
691int MUD_getIndVarLow _ANSI_ARGS_(( int fd, int num, double* pLow ));
692int MUD_getIndVarHigh _ANSI_ARGS_(( int fd, int num, double* pHigh ));
693int MUD_getIndVarMean _ANSI_ARGS_(( int fd, int num, double* pMean ));
694int MUD_getIndVarStddev _ANSI_ARGS_(( int fd, int num, double* pStddev ));
695int MUD_getIndVarSkewness _ANSI_ARGS_(( int fd, int num, double* pSkewness ));
696int MUD_getIndVarName _ANSI_ARGS_(( int fd, int num, char* name, int strdim ));
697int MUD_getIndVarDescription _ANSI_ARGS_(( int fd, int num, char* description, int strdim ));
698int MUD_getIndVarUnits _ANSI_ARGS_(( int fd, int num, char* units, int strdim ));
699int MUD_getIndVarNumData _ANSI_ARGS_(( int fd, int num, UINT32* pNumData ));
700int MUD_getIndVarElemSize _ANSI_ARGS_(( int fd, int num, UINT32* pElemSize ));
701int MUD_getIndVarDataType _ANSI_ARGS_(( int fd, int num, UINT32* pDataType ));
702int MUD_getIndVarHasTime _ANSI_ARGS_(( int fd, int num, UINT32* pHasTime ));
703int MUD_getIndVarData _ANSI_ARGS_(( int fd, int num, void* pData ));
704int MUD_getIndVarTimeData _ANSI_ARGS_(( int fd, int num, UINT32* pTimeData ));
705int MUD_getIndVarpData _ANSI_ARGS_(( int fd, int num, void** ppData ));
706int MUD_getIndVarpTimeData _ANSI_ARGS_(( int fd, int num, UINT32** ppTimeData ));
707
708int MUD_setIndVars _ANSI_ARGS_(( int fd, UINT32 type, UINT32 num ));
709int MUD_setIndVarLow _ANSI_ARGS_(( int fd, int num, double low ));
710int MUD_setIndVarHigh _ANSI_ARGS_(( int fd, int num, double high ));
711int MUD_setIndVarMean _ANSI_ARGS_(( int fd, int num, double mean ));
712int MUD_setIndVarStddev _ANSI_ARGS_(( int fd, int num, double stddev ));
713int MUD_setIndVarSkewness _ANSI_ARGS_(( int fd, int num, double skewness ));
714int MUD_setIndVarName _ANSI_ARGS_(( int fd, int num, char* name ));
715int MUD_setIndVarDescription _ANSI_ARGS_(( int fd, int num, char* description ));
716int MUD_setIndVarUnits _ANSI_ARGS_(( int fd, int num, char* units ));
717int MUD_setIndVarNumData _ANSI_ARGS_(( int fd, int num, UINT32 numData ));
718int MUD_setIndVarElemSize _ANSI_ARGS_(( int fd, int num, UINT32 elemSize ));
719int MUD_setIndVarDataType _ANSI_ARGS_(( int fd, int num, UINT32 dataType ));
720int MUD_setIndVarHasTime _ANSI_ARGS_(( int fd, int num, UINT32 hasTime ));
721int MUD_setIndVarData _ANSI_ARGS_(( int fd, int num, void* pData ));
722int MUD_setIndVarTimeData _ANSI_ARGS_(( int fd, int num, UINT32* pTimeData ));
723int MUD_setIndVarpData _ANSI_ARGS_(( int fd, int num, void* pData ));
724int MUD_setIndVarpTimeData _ANSI_ARGS_(( int fd, int num, UINT32* pTimeData ));
725
726#ifdef __cplusplus
727}
728#endif
729
730#endif /* _MUD_H_ */
731
void * MUD_read(FILE *fin, MUD_IO_OPT io_opt)
Definition mud.c:407
int MUD_getSize(void *pMUD)
Definition mud.c:194
int MUD_CORE_proc(MUD_OPT op, BUF *pBuf, MUD_SEC *pMUD)
Definition mud.c:952
void MUD_show(void *pMUD, MUD_IO_OPT io_opt)
Definition mud.c:202
void * MUD_readFile(FILE *fin)
Definition mud.c:398
BOOL MUD_writeGrpMem(FILE *fout, MUD_SEC_GRP *pMUD_grp, void *pMUD)
Definition mud.c:351
BOOL MUD_writeGrpStart(FILE *fout, MUD_SEC_GRP *pMUD_parentGrp, MUD_SEC_GRP *pMUD_grp, int numMems)
Definition mud.c:312
int MUD_totSize(void *pMUD)
Definition mud.c:913
BOOL MUD_encode(BUF *pBuf, void *pMUD, MUD_IO_OPT io_opt)
Definition mud.c:100
void MUD_assignCore(MUD_SEC *pMUD1, MUD_SEC *pMUD2)
Definition mud.c:944
int MUD_INDEX_proc(MUD_OPT op, BUF *pBuf, MUD_INDEX *pMUD)
Definition mud.c:989
FILE * MUD_openInput(char *inFile)
Definition mud.c:41
MUD_SEC * fseekNext(FILE *fio, MUD_SEC_GRP *pMUD_parent, UINT32 secID, UINT32 instanceID)
Definition mud.c:815
BOOL MUD_write(FILE *fout, void *pMUD, MUD_IO_OPT io_opt)
Definition mud.c:283
int MUD_fseekFirst(FILE *fio)
Definition mud.c:884
FILE * MUD_openOutput(char *outFile)
Definition mud.c:69
void MUD_addToGroup(MUD_SEC_GRP *pMUD_grp, void *pMUD)
Definition mud.c:922
FILE * MUD_openInOut(char *inFile)
Definition mud.c:55
int MUD_fseek(va_alist)
Definition mud.c:726
void MUD_heads(void *pMUD, MUD_IO_OPT io_opt)
Definition mud.c:225
BOOL MUD_writeGrpEnd(FILE *fout, MUD_SEC_GRP *pMUD_grp)
Definition mud.c:376
BOOL MUD_writeEnd(FILE *fout)
Definition mud.c:250
MUD_SEC * MUD_peekCore(FILE *fin)
Definition mud.c:593
void MUD_add(void **ppMUD_head, void *pMUD_new)
Definition mud.c:898
UINT32 MUD_setSizes(void *pMUD)
Definition mud.c:542
void * MUD_decode(BUF *pBuf)
Definition mud.c:151
void MUD_free(void *pMUD)
Definition mud.c:83
void addIndex(MUD_SEC_GRP *pMUD_grp, void *pMUD)
Definition mud.c:332
void * MUD_search(va_alist)
Definition mud.c:628
BOOL MUD_writeFile(FILE *fout, void *pMUD_head)
Definition mud.c:271
UINT16 MUD_STR_LEN_TYPE
Definition mud.h:474
unsigned short UINT16
Definition mud.h:140
unsigned long UINT32
Definition mud.h:146
long INT32
Definition mud.h:145
int STATUS
Definition mud.h:136
struct _SEEK_ENTRY SEEK_ENTRY
UINT8 MUD_VAR_BIN_SIZ_TYPE
Definition mud.h:476
char INT8
Definition mud.h:137
UINT16 MUD_VAR_BIN_LEN_TYPE
Definition mud.h:475
MUD_OPT
Definition mud.h:207
@ MUD_FREE
Definition mud.h:210
@ MUD_ENCODE
Definition mud.h:208
@ MUD_HEADS
Definition mud.h:213
@ MUD_SHOW
Definition mud.h:212
@ MUD_GET_SIZE
Definition mud.h:211
@ MUD_DECODE
Definition mud.h:209
struct _MUD_SEC_GRP MUD_SEC_GRP
short INT16
Definition mud.h:139
int(* MUD_PROC)(MUD_OPT, void *p1, void *p2)
Definition mud.h:216
struct _MUD_SEC MUD_SEC
struct _MUD_SEC_UNKNOWN MUD_SEC_UNKNOWN
double REAL64
Definition mud.h:149
struct _MUD_INDEX MUD_INDEX
unsigned char UINT8
Definition mud.h:138
float REAL32
Definition mud.h:148
UINT32 BOOL
Definition mud.h:157
MUD_IO_OPT
Definition mud.h:218
@ MUD_ALL
Definition mud.h:220
@ MUD_GRP
Definition mud.h:221
@ MUD_ONE
Definition mud.h:219
#define _ANSI_ARGS_(x)
Definition mud.h:483
UINT32 TIME
Definition mud.h:154
int MUD_SEC_FIXED_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_FIXED *pMUD)
Definition mud_all.c:76
int MUD_SEC_UNKNOWN_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_UNKNOWN *pMUD)
Definition mud_all.c:236
int MUD_SEC_CMT_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_CMT *pMUD)
Definition mud_all.c:165
int MUD_SEC_GRP_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GRP *pMUD)
Definition mud_all.c:107
int MUD_SEC_proc(MUD_OPT op, BUF *pBuf, MUD_SEC *pMUD)
Definition mud_all.c:30
int MUD_SEC_EOF_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_EOF *pMUD)
Definition mud_all.c:53
void encode_str(BUF *pB, char **ps)
Definition mud_encode.c:140
void bdecode_float(char *buf, float *fp)
Definition mud_encode.c:252
void bdecode_double(char *buf, double *dp)
Definition mud_encode.c:415
void encode_float(BUF *pBuf, float *fp)
Definition mud_encode.c:244
void bencode_4(void *b, void *p)
Definition mud_encode.c:73
void bdecode_4(void *b, void *p)
Definition mud_encode.c:60
void bdecode_8(void *b, void *p)
Definition mud_encode.c:86
void bencode_float(char *buf, float *fp)
Definition mud_encode.c:208
void encode_double(BUF *pBuf, double *fp)
Definition mud_encode.c:407
void bencode_2(void *b, void *p)
Definition mud_encode.c:41
void decode_double(BUF *pBuf, double *fp)
Definition mud_encode.c:454
void bdecode_2(void *b, void *p)
Definition mud_encode.c:28
void bencode_8(void *b, void *p)
Definition mud_encode.c:100
void decode_str(BUF *pB, char **ps)
Definition mud_encode.c:115
void decode_float(BUF *pBuf, float *fp)
Definition mud_encode.c:293
void bencode_double(char *buf, double *dp)
Definition mud_encode.c:368
int MUD_getScalerCounts(int fd, int num, UINT32 *pCounts)
int MUD_getHistSecondsPerBin(int fd, int num, REAL64 *pSecondsPerBin)
int MUD_getScalers(int fd, UINT32 *pType, UINT32 *pNum)
int MUD_setComments(int fd, UINT32 type, UINT32 num)
int MUD_getIndVarTimeData(int fd, int num, UINT32 *pData)
int MUD_getIndVarData(int fd, int num, void *pData)
int MUD_setHistTimeData(int fd, int num, UINT32 *pTimeData)
int MUD_setHistData(int fd, int num, void *pData)
int MUD_openWrite(char *filename, UINT32 type)
int MUD_getHistpTimeData(int fd, int num, UINT32 **ppTimeData)
int MUD_getRunDesc(int fd, UINT32 *pType)
int MUD_setHistSecondsPerBin(int fd, int num, REAL64 secondsPerBin)
int MUD_pack(int num, int inBinSize, void *inArray, int outBinSize, void *outArray)
int MUD_closeWriteFile(int fd, char *outname)
int MUD_getIndVars(int fd, UINT32 *pType, UINT32 *pNum)
int MUD_setHists(int fd, UINT32 type, UINT32 num)
int MUD_setHistpData(int fd, int num, void *pData)
int MUD_setHistpTimeData(int fd, int num, UINT32 *pTimeData)
int MUD_closeWrite(int fd)
int MUD_setIndVars(int fd, UINT32 type, UINT32 num)
int MUD_setIndVarTimeData(int fd, int num, UINT32 *pData)
int MUD_setIndVarData(int fd, int num, void *pData)
int MUD_getScalerLabel(int fd, int num, char *label, int strdim)
int MUD_getHistTimeData(int fd, int num, UINT32 *pTimeData)
int MUD_setScalerLabel(int fd, int num, char *label)
int MUD_setRunDesc(int fd, UINT32 type)
int MUD_openRead(char *filename, UINT32 *pType)
int MUD_setScalerCounts(int fd, int num, UINT32 *pCounts)
int MUD_setIndVarpTimeData(int fd, int num, UINT32 *pData)
int MUD_getIndVarpTimeData(int fd, int num, UINT32 **ppData)
int MUD_unpack(int num, int inBinSize, void *inArray, int outBinSize, void *outArray)
int MUD_openReadWrite(char *filename, UINT32 *pType)
int MUD_setIndVarpData(int fd, int num, void *pData)
int MUD_setScalers(int fd, UINT32 type, UINT32 num)
int MUD_getHistData(int fd, int num, void *pData)
int MUD_closeRead(int fd)
int MUD_SEC_GEN_ARRAY_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_ARRAY *pMUD)
Definition mud_gen.c:419
int MUD_SEC_GEN_HIST_HDR_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_HIST_HDR *pMUD)
Definition mud_gen.c:196
int MUD_SEC_GEN_SCALER_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_SCALER *pMUD)
Definition mud_gen.c:316
int MUD_SEC_GEN_IND_VAR_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_IND_VAR *pMUD)
Definition mud_gen.c:357
int MUD_SEC_GEN_HIST_DAT_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_HIST_DAT *pMUD)
Definition mud_gen.c:283
int MUD_SEC_GEN_RUN_DESC_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_RUN_DESC *pMUD)
Definition mud_gen.c:45
int MUD_SEC_GEN_HIST_pack(int num, int inBinSize, void *inHist, int outBinSize, void *outHist)
Definition mud_gen.c:534
int MUD_SEC_GEN_HIST_unpack(int num, int inBinSize, void *inHist, int outBinSize, void *outHist)
Definition mud_gen.c:541
MUD_SEC * MUD_new(UINT32 secID, UINT32 instanceID)
Definition mud_new.c:34
int MUD_SEC_TRI_TI_RUN_DESC_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_TRI_TI_RUN_DESC *pMUD)
Definition mud_tri_ti.c:30
Definition mud.h:253
unsigned int size
Definition mud.h:256
int pos
Definition mud.h:255
caddr_t buf
Definition mud.h:254
struct _MUD_SEC * pNext
Definition mud.h:226
UINT32 secID
Definition mud.h:228
UINT32 instanceID
Definition mud.h:229
UINT32 size
Definition mud.h:227
UINT32 sizeOf
Definition mud.h:230
MUD_PROC proc
Definition mud.h:231
char * title
Definition mud.h:306
char * comment
Definition mud.h:307
UINT32 nextReplyID
Definition mud.h:303
TIME time
Definition mud.h:304
MUD_CORE core
Definition mud.h:299
char * author
Definition mud.h:305
UINT32 ID
Definition mud.h:301
UINT32 prevReplyID
Definition mud.h:302
MUD_CORE core
Definition mud.h:294
MUD_CORE core
Definition mud.h:272
UINT32 fileSize
Definition mud.h:274
UINT32 formatID
Definition mud.h:275
caddr_t pData
Definition mud.h:371
MUD_CORE core
Definition mud.h:364
UINT32 num
Definition mud.h:366
UINT32 nBytes
Definition mud.h:370
TIME * pTime
Definition mud.h:372
UINT32 type
Definition mud.h:368
UINT32 elemSize
Definition mud.h:367
MUD_CORE core
Definition mud.h:355
caddr_t pData
Definition mud.h:358
MUD_CORE core
Definition mud.h:335
UINT32 bytesPerBin
Definition mud.h:340
UINT32 fsPerBin
Definition mud.h:341
UINT32 histType
Definition mud.h:337
UINT32 goodBin2
Definition mud.h:345
UINT32 goodBin1
Definition mud.h:344
MUD_CORE core
Definition mud.h:385
char * description
Definition mud.h:393
double skewness
Definition mud.h:391
double stddev
Definition mud.h:390
char * temperature
Definition mud.h:329
char * apparatus
Definition mud.h:323
char * experimenter
Definition mud.h:328
UINT32 exptNumber
Definition mud.h:314
UINT32 runNumber
Definition mud.h:315
MUD_CORE core
Definition mud.h:312
UINT32 elapsedSec
Definition mud.h:318
UINT32 counts[2]
Definition mud.h:379
MUD_CORE core
Definition mud.h:377
char * label
Definition mud.h:380
struct _MUD_INDEX * pNext
Definition mud.h:236
UINT32 secID
Definition mud.h:238
UINT32 instanceID
Definition mud.h:239
UINT32 offset
Definition mud.h:237
MUD_SEC * pMem
Definition mud.h:286
INT32 pos
Definition mud.h:287
MUD_CORE core
Definition mud.h:281
MUD_INDEX * pMemIndex
Definition mud.h:285
UINT32 num
Definition mud.h:283
struct _MUD_SEC_GRP * pParent
Definition mud.h:288
UINT32 memSize
Definition mud.h:284
MUD_CORE core
Definition mud.h:266
MUD_CORE core
Definition mud.h:261
Definition mud.h:243
UINT32 secID
Definition mud.h:245
struct _SEEK_ENTRY * pNext
Definition mud.h:244
UINT32 instanceID
Definition mud.h:246