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)
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)
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)
69#define MUD_GRP_CMT_ID MUD_SEC_CMT_ID
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)
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)
87#define MUD_SEC_TRI_TD_HIST_ID (MUD_FMT_TRI_TD_ID|0x00000002)
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)
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)
98#define MUD_GRP_TRI_TI_HIST_ID MUD_SEC_TRI_TI_HIST_ID
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)
105#define MUD_GRP_RAL_HIST_ID MUD_SEC_RAL_HIST_ID
114#include <sys/types.h>
128typedef uint8_t
UINT8;
129typedef int16_t
INT16;
131typedef int32_t
INT32;
141#if defined(__alpha)||defined(__linux)||defined(__MACH__) || defined(__arm64)
143typedef unsigned int UINT32;
151#if (defined(__alpha)&&defined(vms)) || defined( __CINT__ ) || defined(_WIN32)
152typedef char* caddr_t;
173#define _success(s) (s&1)
176#define _failure(s) !(s&1)
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)
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))
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) ) )
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)
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)
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
433#define MUD_BIG_ENDIAN 1
436#define _swap2bytes(s) ((s>>8)+(s<<8))
437#define _swap4bytes(l) ((l>>24)+(l<<24)+((l&0xff0000)>>8)+((l&0xff00)<<8))
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 )
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
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
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
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
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
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
480#if ((defined(__STDC__) || defined(SABER)) && !defined(NO_PROTOTYPE)) || defined(__cplusplus)
481#define _ANSI_ARGS_(x) x
483#define _ANSI_ARGS_(x) ()
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 ));
592int MUD_getExperimenter
_ANSI_ARGS_((
int fd,
char* experimenter,
int strdim ));
593int MUD_getTemperature
_ANSI_ARGS_((
int fd,
char* temperature,
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 ));
615int MUD_setExperimenter
_ANSI_ARGS_((
int fd,
char* experimenter ));
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 ));
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 ));
653int MUD_getHistTitle
_ANSI_ARGS_((
int fd,
int num,
char* title,
int strdim ));
655int MUD_getHistpData
_ANSI_ARGS_((
int fd,
int num,
void** ppData ));
673int MUD_setHistTitle
_ANSI_ARGS_((
int fd,
int num,
char* title ));
680int MUD_unpack _ANSI_ARGS_((
int num,
int inBinSize,
void* inArray,
int outBinSize,
void* outArray ));
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 ));
705int MUD_getIndVarpData
_ANSI_ARGS_((
int fd,
int num,
void** ppData ));
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 ));
void * MUD_read(FILE *fin, MUD_IO_OPT io_opt)
int MUD_getSize(void *pMUD)
int MUD_CORE_proc(MUD_OPT op, BUF *pBuf, MUD_SEC *pMUD)
void MUD_show(void *pMUD, MUD_IO_OPT io_opt)
void * MUD_readFile(FILE *fin)
BOOL MUD_writeGrpMem(FILE *fout, MUD_SEC_GRP *pMUD_grp, void *pMUD)
BOOL MUD_writeGrpStart(FILE *fout, MUD_SEC_GRP *pMUD_parentGrp, MUD_SEC_GRP *pMUD_grp, int numMems)
int MUD_totSize(void *pMUD)
BOOL MUD_encode(BUF *pBuf, void *pMUD, MUD_IO_OPT io_opt)
void MUD_assignCore(MUD_SEC *pMUD1, MUD_SEC *pMUD2)
int MUD_INDEX_proc(MUD_OPT op, BUF *pBuf, MUD_INDEX *pMUD)
FILE * MUD_openInput(char *inFile)
MUD_SEC * fseekNext(FILE *fio, MUD_SEC_GRP *pMUD_parent, UINT32 secID, UINT32 instanceID)
BOOL MUD_write(FILE *fout, void *pMUD, MUD_IO_OPT io_opt)
int MUD_fseekFirst(FILE *fio)
FILE * MUD_openOutput(char *outFile)
void MUD_addToGroup(MUD_SEC_GRP *pMUD_grp, void *pMUD)
FILE * MUD_openInOut(char *inFile)
void MUD_heads(void *pMUD, MUD_IO_OPT io_opt)
BOOL MUD_writeGrpEnd(FILE *fout, MUD_SEC_GRP *pMUD_grp)
BOOL MUD_writeEnd(FILE *fout)
MUD_SEC * MUD_peekCore(FILE *fin)
void MUD_add(void **ppMUD_head, void *pMUD_new)
UINT32 MUD_setSizes(void *pMUD)
void * MUD_decode(BUF *pBuf)
void MUD_free(void *pMUD)
void addIndex(MUD_SEC_GRP *pMUD_grp, void *pMUD)
void * MUD_search(va_alist)
BOOL MUD_writeFile(FILE *fout, void *pMUD_head)
struct _SEEK_ENTRY SEEK_ENTRY
UINT8 MUD_VAR_BIN_SIZ_TYPE
UINT16 MUD_VAR_BIN_LEN_TYPE
struct _MUD_SEC_GRP MUD_SEC_GRP
int(* MUD_PROC)(MUD_OPT, void *p1, void *p2)
struct _MUD_SEC_UNKNOWN MUD_SEC_UNKNOWN
struct _MUD_INDEX MUD_INDEX
int MUD_SEC_FIXED_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_FIXED *pMUD)
int MUD_SEC_UNKNOWN_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_UNKNOWN *pMUD)
int MUD_SEC_CMT_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_CMT *pMUD)
int MUD_SEC_GRP_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GRP *pMUD)
int MUD_SEC_proc(MUD_OPT op, BUF *pBuf, MUD_SEC *pMUD)
int MUD_SEC_EOF_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_EOF *pMUD)
void encode_str(BUF *pB, char **ps)
void bdecode_float(char *buf, float *fp)
void bdecode_double(char *buf, double *dp)
void encode_float(BUF *pBuf, float *fp)
void bencode_4(void *b, void *p)
void bdecode_4(void *b, void *p)
void bdecode_8(void *b, void *p)
void bencode_float(char *buf, float *fp)
void encode_double(BUF *pBuf, double *fp)
void bencode_2(void *b, void *p)
void decode_double(BUF *pBuf, double *fp)
void bdecode_2(void *b, void *p)
void bencode_8(void *b, void *p)
void decode_str(BUF *pB, char **ps)
void decode_float(BUF *pBuf, float *fp)
void bencode_double(char *buf, double *dp)
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)
int MUD_SEC_GEN_HIST_HDR_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_HIST_HDR *pMUD)
int MUD_SEC_GEN_SCALER_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_SCALER *pMUD)
int MUD_SEC_GEN_IND_VAR_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_IND_VAR *pMUD)
int MUD_SEC_GEN_HIST_DAT_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_HIST_DAT *pMUD)
int MUD_SEC_GEN_RUN_DESC_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_GEN_RUN_DESC *pMUD)
int MUD_SEC_GEN_HIST_pack(int num, int inBinSize, void *inHist, int outBinSize, void *outHist)
int MUD_SEC_GEN_HIST_unpack(int num, int inBinSize, void *inHist, int outBinSize, void *outHist)
MUD_SEC * MUD_new(UINT32 secID, UINT32 instanceID)
int MUD_SEC_TRI_TI_RUN_DESC_proc(MUD_OPT op, BUF *pBuf, MUD_SEC_TRI_TI_RUN_DESC *pMUD)
struct _MUD_INDEX * pNext
struct _MUD_SEC_GRP * pParent
struct _SEEK_ENTRY * pNext