gcc causing bus-error on solaris
Heiko Klein
hklein@ikp.uni-koeln.de
Tue Oct 5 01:19:00 GMT 1999
Hi,
I have the following:
Reading specs from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/specs
gcc version 2.95.1 19990816 (release)
Running on an SUN-ULTRA Enterprise 4000
I get with a program using about 250Mb of memory a bus error when I
compile it with gcc2.95, with gcc2.8 or earlier it works, and with the
sun workshop-compilers, it works to.
Even when I create the *.o - file with gcc and link it with cc I get the
bus-error.
Even when I create the *.o - file with cc and link it with gcc I get the
bus-error.
There seems to be an intrinsic problem and I'm sorry that I can't go
further investigating it. I can't recreate it with a smaller program.
Sincerly,
--
Heiko Klein
Institut fuer Kernphysik Tel : +49 0221/470-3617
Universitaet zu Koeln FAX : +49 0221/470-5168
Zuelpicher Str. 77 email : Heiko.Klein@ikp.uni-koeln.de
D-50937 Koeln WWW : http://www.ikp.uni-koeln.de/~hklein
# 1 "x_two.cc"
static char rcsid[] = "$Id: x_two.cc,v 1.4 1999/06/28 10:57:16 hklein Exp hklein $";
# 1 "x_two.h" 1
# 1 "/usr/include/stdio.h" 1 3 4
#pragma ident "@(#)stdio.h 1.39 95/12/04 SMI"
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
#pragma ident "@(#)feature_tests.h 1.7 94/12/06 SMI"
extern "C" {
}
# 17 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/sys/va_list.h" 1 3 4
#pragma ident "@(#)va_list.h 1.6 96/01/26 SMI"
extern "C" {
# 41 "/usr/include/sys/va_list.h" 3 4
typedef void *__va_list;
}
# 18 "/usr/include/stdio.h" 2 3 4
extern "C" {
typedef unsigned int size_t;
typedef long fpos_t;
# 76 "/usr/include/stdio.h" 3 4
typedef struct
{
int _cnt;
unsigned char *_ptr;
unsigned char *_base;
unsigned char _flag;
unsigned char _file;
} FILE;
extern FILE __iob[20 ];
extern FILE *_lastbuf; /usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/cc1plus x_two.ii -quiet -dumpbase x_two.cc -version -o x_two.s
GNU C++ version 2.95.1 19990816 (release) (sparc-sun-solaris2.5.1) compiled by GNU C version 2.95.1 19990816 (release).
In file included from x_two.h:20,
from x_two.cc:42:
/usr/include/stdio.h:147: parse error before `/'
/usr/include/stdio.h:147: malformed floating constant
/usr/include/stdio.h:147: malformed floating constant
/usr/include/stdio.h:148: malformed floating constant
/usr/include/stdio.h:148: malformed floating constant
/usr/include/stdio.h:148: malformed floating constant
const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, __va_list);
extern int vprintf(const char *, __va_list);
extern int vsprintf(char *, const char *, __va_list);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern int getc(FILE *);
extern int getchar(void);
extern char *gets(char *);
extern int putc(int, FILE *);
extern int putchar(int);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
# 234 "/usr/include/stdio.h" 3 4
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
# 338 "/usr/include/stdio.h" 3 4
# 392 "/usr/include/stdio.h" 3 4
}
# 20 "x_two.h" 2
# 1 "/usr/include/stdlib.h" 1 3 4
#pragma ident "@(#)stdlib.h 1.27 95/08/28 SMI"
extern "C" {
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
typedef struct {
long long quot;
long long rem;
} lldiv_t;
typedef long uid_t;
typedef long wchar_t;
extern unsigned char __ctype[];
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);
extern int rand(void);
extern void srand(unsigned int);
extern void *calloc(size_t, size_t);
extern void free(void *);
extern void *malloc(size_t);
extern void *realloc(void *, size_t);
extern void abort(void);
extern int atexit(void (*)(void));
extern void exit(int);
extern char *getenv(const char *);
extern int system(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));
extern void qsort(void *, size_t, size_t,
int (*)(const void *, const void *));
extern int abs(int);
extern div_t div(int, int);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern int mbtowc(wchar_t *, const char *, size_t);
extern int mblen(const char *, size_t);
extern int wctomb(char *, wchar_t);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);
extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(const char *);
extern void setkey(const char *);
extern void swab(const char *, char *, int);
extern long a64l(const char *);
extern int dup2(int, int);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern int getpw(uid_t, char *);
extern char *gcvt(double, int, char *);
extern int isatty(int);
extern char *l64a(long);
extern void *memalign(size_t, size_t);
extern char *mktemp(char *);
extern char *realpath(char *, char *);
extern char *ttyname(int);
extern int ttyslot(void);
extern void *valloc(size_t);
extern char *ptsname(int);
extern int grantpt(int);
extern int unlockpt(int);
extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);
# 276 "/usr/include/stdlib.h" 3 4
}
# 21 "x_two.h" 2
# 1 "/usr/include/string.h" 1 3 4
#pragma ident "@(#)string.h 1.17 95/08/28 SMI"
extern "C" {
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char *, const char *);
extern char *strncpy(char *, const char *, size_t);
extern char *strcat(char *, const char *);
extern char *strncat(char *, const char *, size_t);
extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);
extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern size_t strcspn(const char *, const char *);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern size_t strspn(const char *, const char *);
extern char *strstr(const char *, const char *);
extern char *strtok(char *, const char *);
extern void *memset(void *, int, size_t);
extern char *strerror(int);
extern size_t strlen(const char *);
extern void *memccpy(void *, const void *, int, size_t);
extern char *strdup(const char *);
extern char *strsignal(int);
extern int ffs(const int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);
# 119 "/usr/include/string.h" 3 4
}
# 22 "x_two.h" 2
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/include/stdarg.h" 1 3 4
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/include/va-sparc.h" 1 3 4
typedef void * __gnuc_va_list;
# 47 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/include/va-sparc.h" 3 4
void va_end (__gnuc_va_list);
enum __va_type_classes {
__no_type_class = -1,
__void_type_class,
__integer_type_class,
__char_type_class,
__enumeral_type_class,
__boolean_type_class,
__pointer_type_class,
__reference_type_class,
__offset_type_class,
__real_type_class,
__complex_type_class,
__function_type_class,
__method_type_class,
__record_type_class,
__union_type_class,
__array_type_class,
__string_type_class,
__set_type_class,
__file_type_class,
__lang_type_class
};
# 134 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/include/va-sparc.h" 3 4
# 159 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/include/va-sparc.h" 3 4
# 30 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/include/stdarg.h" 2 3 4
# 135 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 207 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.95.1/include/stdarg.h" 3 4
# 24 "x_two.h" 2
# 1 "/usr/include/sys/types.h" 1 3 4
#pragma ident "@(#)types.h 1.38 95/11/14 SMI"
# 1 "/usr/include/sys/isa_defs.h" 1 3 4
#pragma ident "@(#)isa_defs.h 1.7 94/10/26 SMI"
extern "C" {
# 211 "/usr/include/sys/isa_defs.h" 3 4
}
# 14 "/usr/include/sys/types.h" 2 3 4
# 1 "/usr/include/sys/machtypes.h" 1 3 4
#pragma ident "@(#)machtypes.h 1.9 94/11/05 SMI"
extern "C" {
typedef struct _physadr_t { int r[1]; } *physadr_t;
typedef struct _label_t { int val[2]; } label_t;
typedef unsigned char lock_t;
}
# 19 "/usr/include/sys/types.h" 2 3 4
extern "C" {
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef char * caddr_t;
typedef long daddr_t;
typedef long off_t;
typedef short cnt_t;
typedef ulong_t paddr_t;
typedef uchar_t use_t;
typedef short sysid_t;
typedef short index_t;
typedef enum { B_FALSE, B_TRUE } boolean_t;
typedef long long longlong_t;
typedef unsigned long long u_longlong_t;
# 66 "/usr/include/sys/types.h" 3 4
typedef longlong_t offset_t;
typedef longlong_t diskaddr_t;
# 88 "/usr/include/sys/types.h" 3 4
typedef union {
offset_t _f;
struct {
long _u;
off_t _l;
} _p;
} lloff_t;
# 108 "/usr/include/sys/types.h" 3 4
typedef union {
diskaddr_t _f;
struct {
long _u;
daddr_t _l;
} _p;
} lldaddr_t;
typedef ulong_t k_fltset_t;
typedef long id_t;
typedef ulong_t major_t;
typedef ulong_t minor_t;
typedef short pri_t;
typedef ushort_t o_mode_t;
typedef short o_dev_t;
typedef ushort_t o_uid_t;
typedef o_uid_t o_gid_t;
typedef short o_nlink_t;
typedef short o_pid_t;
typedef ushort_t o_ino_t;
typedef int key_t;
typedef ulong_t mode_t;
typedef uid_t gid_t;
typedef ulong_t nlink_t;
typedef ulong_t dev_t;
typedef ulong_t ino_t;
typedef long pid_t;
typedef int ssize_t;
typedef long time_t;
typedef long clock_t;
typedef int clockid_t;
typedef int timer_t;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
# 234 "/usr/include/sys/types.h" 3 4
typedef long hostid_t;
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef struct _quad { long val[2]; } quad;
# 1 "/usr/include/sys/select.h" 1 3 4
#pragma ident "@(#)select.h 1.10 92/07/14 SMI"
# 1 "/usr/include/sys/time.h" 1 3 4
#pragma ident "@(#)time.h 2.47 95/08/24 SMI"
extern "C" {
struct timeval {
long tv_sec;
long tv_usec;
};
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
}
# 1 "/usr/include/sys/types.h" 1 3 4
# 302 "/usr/include/sys/types.h" 3 4
# 61 "/usr/include/sys/time.h" 2 3 4
extern "C" {
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
typedef struct timespec {
time_t tv_sec;
long tv_nsec;
} timespec_t;
typedef struct timespec timestruc_t;
# 172 "/usr/include/sys/time.h" 3 4
typedef struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
} itimerspec_t;
typedef longlong_t hrtime_t;
# 236 "/usr/include/sys/time.h" 3 4
int adjtime(struct timeval *, struct timeval *);
int getitimer(int, struct itimerval *);
int setitimer(int, const struct itimerval *, struct itimerval *);
int gettimeofday(struct timeval *, void *);
int settimeofday(struct timeval *, void *);
hrtime_t gethrtime(void);
hrtime_t gethrvtime(void);
# 278 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
#pragma ident "@(#)time.h 1.23 95/08/28 SMI"
extern "C" {
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
extern clock_t clock(void);
extern double difftime(time_t, time_t);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern char *asctime(const struct tm *);
extern char *ctime(const time_t *);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);
extern char *strptime(const char *, const char *, struct tm *);
# 1 "/usr/include/sys/time.h" 1 3 4
# 290 "/usr/include/sys/time.h" 3 4
# 89 "/usr/include/time.h" 2 3 4
# 1 "/usr/include/sys/siginfo.h" 1 3 4
#pragma ident "@(#)siginfo.h 1.36 95/08/24 SMI"
extern "C" {
union sigval {
int sival_int;
void *sival_ptr;
};
struct sigevent {
int sigev_notify;
union {
int _sigev_signo;
void (*_sigev_notify_function)(union sigval);
} _sigev_un;
union sigval sigev_value;
int _sigev_pad1;
void *_sigev_notify_attributes;
int _sigev_pad2;
};
# 1 "/usr/include/sys/machsig.h" 1 3 4
#pragma ident "@(#)machsig.h 1.10 94/11/05 SMI"
extern "C" {
}
# 71 "/usr/include/sys/siginfo.h" 2 3 4
# 1 "/usr/include/sys/time.h" 1 3 4
# 290 "/usr/include/sys/time.h" 3 4
# 124 "/usr/include/sys/siginfo.h" 2 3 4
typedef struct
siginfo
{
int si_signo;
int si_code;
int si_errno;
union {
int _pad[((128 / sizeof (int)) - 3) ];
struct {
pid_t _pid;
union {
struct {
uid_t _uid;
union sigval _value;
} _kill;
struct {
clock_t _utime;
int _status;
clock_t _stime;
} _cld;
} _pdata;
} _proc;
struct {
caddr_t _addr;
int _trapno;
} _fault;
struct {
int _fd;
long _band;
} _file;
struct {
caddr_t _faddr;
timestruc_t _tstamp;
short _syscall;
char _nsysarg;
char _fault;
long _sysarg[8];
long _mstate[17];
} _prof;
} _data;
} siginfo_t;
typedef struct k_siginfo {
int si_signo;
int si_code;
int si_errno;
union {
struct {
pid_t _pid;
union {
struct {
uid_t _uid;
union sigval _value;
} _kill;
struct {
clock_t _utime;
int _status;
clock_t _stime;
} _cld;
} _pdata;
} _proc;
struct {
caddr_t _addr;
int _trapno;
} _fault;
struct {
int _fd;
long _band;
} _file;
struct {
caddr_t _faddr;
timestruc_t _tstamp;
short _syscall;
char _nsysarg;
char _fault;
} _prof;
} _data;
} k_siginfo_t;
typedef struct sigqueue {
struct sigqueue *sq_next;
k_siginfo_t sq_info;
void (*sq_func)(struct sigqueue *);
void *sq_backptr;
} sigqueue_t;
}
# 90 "/usr/include/time.h" 2 3 4
extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);
extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_getoverrun(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_settime(timer_t, int, const struct itimerspec *,
struct itimerspec *);
extern int nanosleep(const struct timespec *, struct timespec *);
extern void tzset(void);
extern char *tzname[2];
extern long _sysconf(int);
extern long timezone;
extern int daylight;
extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern long altzone;
extern struct tm *getdate(const char *);
extern int getdate_err;
# 171 "/usr/include/time.h" 3 4
# 249 "/usr/include/time.h" 3 4
}
# 280 "/usr/include/sys/time.h" 2 3 4
}
# 14 "/usr/include/sys/select.h" 2 3 4
extern "C" {
typedef long fd_mask;
typedef struct fd_set {
fd_mask fds_bits[((( 1024 )+(( (sizeof (fd_mask) * 8 ) )-1))/( (sizeof (fd_mask) * 8 ) )) ];
} fd_set;
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
}
# 278 "/usr/include/sys/types.h" 2 3 4
}
# 29 "x_two.h" 2
# 1 "/usr/include/sys/stat.h" 1 3 4
#pragma ident "@(#)stat.h 1.26 95/08/14 SMI"
extern "C" {
# 70 "/usr/include/sys/stat.h" 3 4
struct stat {
dev_t st_dev;
long st_pad1[3];
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
long st_pad2[2];
off_t st_size;
long st_pad3;
timestruc_t st_atim;
timestruc_t st_mtim;
timestruc_t st_ctim;
long st_blksize;
long st_blocks;
char st_fstype[16 ];
long st_pad4[8];
};
extern int fstat(int, struct stat *);
extern int stat(const char *, struct stat *);
extern int lstat(const char *, struct stat *);
extern int mknod(const char *, mode_t, dev_t);
extern int fchmod(int, mode_t);
extern int chmod(const char *, mode_t);
extern int mkdir(const char *, mode_t);
extern int mkfifo(const char *, mode_t);
extern mode_t umask(mode_t);
# 195 "/usr/include/sys/stat.h" 3 4
}
# 30 "x_two.h" 2
# 1 "/usr/include/sys/param.h" 1 3 4
#pragma ident "@(#)param.h 1.34 95/11/05 SMI"
extern "C" {
# 256 "/usr/include/sys/param.h" 3 4
}
# 370 "/usr/include/sys/param.h" 3 4
# 1 "/usr/include/sys/unistd.h" 1 3 4
#pragma ident "@(#)unistd.h 1.24 95/08/24 SMI"
extern "C" {
}
# 380 "/usr/include/sys/param.h" 2 3 4
extern "C" {
extern long _sysconf(int);
}
# 31 "x_two.h" 2
extern "C" {
# 1 "/usr/local/include/local/mfile.h" 1 3
# 1 "/usr/include/unistd.h" 1 3 4
#pragma ident "@(#)unistd.h 1.33 95/08/28 SMI"
extern "C" {
extern int access(const char *, int);
extern int acct(const char *);
extern unsigned alarm(unsigned);
extern int brk(void *);
extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);
extern int chroot(const char *);
extern int close(int);
extern char *ctermid(char *);
extern char *cuserid(char *);
extern int dup(int);
extern int dup2(int, int);
extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void _exit(int);
extern int fattach(int, const char *);
extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);
extern int fchroot(int);
extern int fdatasync(int);
extern int fdetach(const char *);
extern pid_t fork(void);
extern pid_t fork1(void);
extern long fpathconf(int, int);
extern int fsync(int);
extern int ftruncate(int, off_t);
extern char *getcwd(char *, size_t);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);
extern char *getlogin(void);
extern pid_t getpgid(pid_t);
extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);
char *gettxt(const char *, const char *);
extern pid_t getsid(pid_t);
extern uid_t getuid(void);
extern int ioctl(int, int, ...);
extern int isatty(int);
extern int link(const char *, const char *);
extern int lchown(const char *, uid_t, gid_t);
extern offset_t llseek(int, offset_t, int);
extern int lockf(int, int, long);
extern off_t lseek(int, off_t, int);
extern int mincore(caddr_t, size_t, char *);
extern int nice(int);
extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);
extern ssize_t pread(int, void *, size_t, off_t);
extern void profil(unsigned short *, unsigned int, unsigned int, unsigned int);
extern int ptrace(int, pid_t, int, int);
extern ssize_t pwrite(int, const void *, size_t, off_t);
extern ssize_t read(int, void *, unsigned);
extern int readlink(const char *, void *, int);
extern int rename(const char *, const char *);
extern int rmdir(const char *);
extern void *sbrk(int);
extern int setgid(gid_t);
extern int setegid(gid_t);
extern int setgroups(int, const gid_t *);
extern int setpgid(pid_t, pid_t);
extern pid_t setpgrp(void);
extern pid_t setsid(void);
extern int setuid(uid_t);
extern int seteuid(uid_t);
extern unsigned sleep(unsigned);
extern int stime(const time_t *);
extern int symlink(const char *, const char *);
extern void sync(void);
extern long sysconf(int);
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);
extern int truncate(const char *, off_t);
extern char *ttyname(int);
extern int unlink(const char *);
extern pid_t vfork(void);
extern void vhangup(void);
extern ssize_t write(int, const void *, unsigned);
extern void yield(void);
# 448 "/usr/include/unistd.h" 3 4
#pragma unknown_control_flow(vfork)
# 540 "/usr/include/unistd.h" 3 4
}
# 104 "/usr/local/include/local/mfile.h" 2 3
typedef struct minfo {
int filetype;
u_int levels;
u_int lines;
u_int columns;
u_int version;
u_int status;
char *name;
char *comment;
} minfo;
typedef struct accessmethod *amp;
typedef struct matfile {
amp ap;
char *name;
char *comment;
int mode;
u_int version;
u_int status;
int filetype;
u_int levels;
u_int lines;
u_int columns;
int (*mflushf)();
int (*muninitf)();
int (*mgeti4f)();
int (*mgetf4f)();
int (*mgetf8f)();
int (*mputi4f)();
int (*mputf4f)();
int (*mputf8f)();
union {
void *p;
int i;
} specinfo;
} MFILE;
MFILE *mopen (char *name, char *mode) ;
int mclose (MFILE *mat) ;
int mflush (MFILE *mat) ;
int mgetinfo (MFILE *mat, minfo *info) ;
int msetinfo (MFILE *mat, minfo *info) ;
int msetfmt (MFILE *mat, char *format) ;
char* mgetfmt (MFILE *mat, char *format) ;
int mgetint (MFILE* mat, int buf[], int lev, int lin, int col, int num) ;
int mputint (MFILE* mat, int buf[], int lev, int lin, int col, int num) ;
int mgetflt (MFILE* mat, float buf[], int lev, int lin, int col, int num) ;
int mputflt (MFILE* mat, float buf[], int lev, int lin, int col, int num) ;
int mgetdbl (MFILE* mat, double buf[], int lev, int lin, int col, int num) ;
int mputdbl (MFILE* mat, double buf[], int lev, int lin, int col, int num) ;
int load_spec (const char *name, unsigned long *buf, int num) ;
int save_spec (const char *name, unsigned long *buf, int num) ;
# 276 "/usr/local/include/local/mfile.h" 3
# 37 "x_two.h" 2
# 1 "/usr/local/include/local/sysdep/config.h" 1 3
# 115 "/usr/local/include/local/sysdep/config.h" 3
# 141 "/usr/local/include/local/sysdep/config.h" 3
# 185 "/usr/local/include/local/sysdep/config.h" 3
# 209 "/usr/local/include/local/sysdep/config.h" 3
# 233 "/usr/local/include/local/sysdep/config.h" 3
# 259 "/usr/local/include/local/sysdep/config.h" 3
# 302 "/usr/local/include/local/sysdep/config.h" 3
# 39 "x_two.h" 2
# 1 "/usr/local/include/local/sysdep/types.h" 1 3
# 38 "/usr/local/include/local/sysdep/types.h" 3
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned long UINT32;
typedef signed char INT8;
typedef signed short INT16;
typedef signed long INT32;
typedef int FLAG;
# 40 "x_two.h" 2
# 1 "/usr/local/include/local/sysdep/print.h" 1 3
typedef struct {
int (*vprintf_msg)(const char*,va_list);
int (*vprintf_err)(const char*,va_list);
int (*puts_msg)(const char*);
int (*puts_err)(const char*);
int (*flush_msg)(void);
int (*flush_err)(void);
} PRINT_ROUTINES;
extern int print_string(int,const char*);
extern int print_formatted(int,const char*,...);
extern int vprint_formatted(int,const char*,va_list);
extern int flush_output(int);
extern int set_print_routines(void(*)(PRINT_ROUTINES*));
extern void standard_print_routines(PRINT_ROUTINES*);
# 83 "/usr/local/include/local/sysdep/print.h" 3
# 41 "x_two.h" 2
# 1 "/usr/local/include/local/sysdep/bits.h" 1 3
extern unsigned count_bits(UINT32);
extern int lowest_bit(unsigned);
extern int highest_bit(unsigned);
extern int *ini_lowest_bit_table(int);
extern int *ini_highest_bit_table(int);
# 61 "/usr/local/include/local/sysdep/bits.h" 3
# 42 "x_two.h" 2
# 1 "/usr/local/include/local/sysdep/file.h" 1 3
extern int create_empty_file(char*,int,int);
extern void prepend_to_filename(char*,char*,char*);
extern char *base_filename(char*);
extern void build_filename(char*,...);
extern void vbuild_filename(char*,va_list);
extern char *vget_filename(va_list);
extern int max_open_files(void);
extern int adjust_file_offset(int);
# 69 "/usr/local/include/local/sysdep/file.h" 3
extern char null_device[];
# 43 "x_two.h" 2
# 1 "/usr/local/include/local/sysdep/date.h" 1 3
extern const char *date_time();
extern int is_leapyear(int);
extern const char *date_to_string(int,int);
extern int days_of_month(int,int);
# 57 "/usr/local/include/local/sysdep/date.h" 3
# 44 "x_two.h" 2
# 1 "/usr/local/include/local/sysdep/error.h" 1 3
typedef struct __error {
int mode;
time_t time;
const char *modul;
const char *message;
struct __error *next_error;
} ERROR;
extern void add_error(int,const char*,const char*,...);
extern void vadd_error(int,const char*,const char*,va_list);
extern int error_level(void);
extern int error_attributes(int);
extern ERROR *get_error(int);
extern void print_error(int);
extern void free_error(int);
# 75 "/usr/local/include/local/sysdep/error.h" 3
# 45 "x_two.h" 2
# 1 "/usr/local/include/local/sysdep/vmemem.h" 1 3
extern int initialize_vme(void);
extern int vme_memset(void *s, int c, size_t n);
extern int vme_memcpy(void *dest, const void *src, size_t n, int direction);
extern int vme_meminc(void *s);
extern int vme_memdec(void *s);
extern int vme_memsize(void);
extern int set_presort_length(int l);
extern void presort_flush_inc_buffer(void);
extern void presort_flush_dec_buffer(void);
# 56 "/usr/local/include/local/sysdep/vmemem.h" 3
# 46 "x_two.h" 2
# 1 "/usr/local/include/local/fera/fera.h" 1 3
# 1 "/usr/local/include/local/fera/resource.h" 1 3
typedef struct {
UINT16 data[16 ];
UINT16 pattern;
int count;
UINT16 special_bits;
} FERA_MODUL_DATA;
typedef struct {
int (*open)(const char*,int);
int (*read)(UINT16**);
int (*close)(int);
} FERA_INPUT;
# 75 "/usr/local/include/local/fera/resource.h" 3
typedef void (*FERA_INPUT_FUNCTION)(FERA_INPUT*);
typedef int (*FERA_EOF_FUNCTION)(int);
typedef struct {
UINT16 data_word;
int max_errors;
int buffersize;
FERA_INPUT func;
FERA_EOF_FUNCTION eof_f;
UINT16 *buf;
UINT16 *buf_end;
} RESOURCE;
extern int initialize_resource(const char*,int,int);
extern int set_resource(int,...);
extern int reset_resource(void);
extern int __get_data_block(void);
# 182 "/usr/local/include/local/fera/resource.h" 3
# 211 "/usr/local/include/local/fera/resource.h" 3
extern double __random;
extern RESOURCE __resource;
# 85 "/usr/local/include/local/fera/fera.h" 2 3
# 1 "/usr/local/include/local/fera/statistic.h" 1 3
typedef volatile struct {
char id[64 ];
unsigned long count;
} USER_EVENT;
typedef volatile struct {
int status;
unsigned long words_read;
time_t last_time;
double last_cpu_time;
unsigned errors;
unsigned long correct;
unsigned long bad_sync;
unsigned long bad_pattern;
unsigned long bad_data;
unsigned long bad_vector;
USER_EVENT user_event[5 ];
} FERA_STATISTIC;
extern int initialize_fera_statistic(int);
extern USER_EVENT *define_user_event(char*);
extern void print_fera_statistic(int);
extern void clear_fera_statistic();
extern void reset_fera_statistic();
extern int get_error_count();
# 96 "/usr/local/include/local/fera/statistic.h" 3
extern FERA_STATISTIC *__fera_statistic;
# 88 "/usr/local/include/local/fera/fera.h" 2 3
extern const char *fera_error;
extern int initialize_fera(char*,int,int,...);
extern int load_fera_modul(int,int,FERA_MODUL_DATA*);
extern int read_header(void);
extern int read_fera_event(void);
extern int reset_fera(void);
extern int set_fera_resource(int,...);
# 131 "/usr/local/include/local/fera/fera.h" 3
# 220 "/usr/local/include/local/fera/fera.h" 3
# 48 "x_two.h" 2
# 1 "/usr/local/include/local/fera/fstdinp.h" 1 3
extern void fera_std_input(FERA_INPUT*);
# 49 "x_two.h" 2
# 1 "/usr/local/include/local/fera/fbufinp.h" 1 3
typedef volatile struct {
int status;
int no_words;
union {
UINT16 listmode[(65536) /sizeof(UINT16)];
struct {
int flag;
char string[(65536) /sizeof(char)-sizeof(int)];
} error;
int close_cmd;
} buffer;
} SINGLE_BUFFER;
typedef volatile struct {
struct {
pid_t pid;
int status;
} read, write;
SINGLE_BUFFER buffer[3 ];
} MULTI_BUFFER;
extern void fera_buffered_input(FERA_INPUT*);
extern SINGLE_BUFFER *next_single_buffer(MULTI_BUFFER*,SINGLE_BUFFER*);
# 50 "x_two.h" 2
# 1 "/usr/local/include/local/fera/spec.h" 1 3
typedef struct __spectrum {
INT32 *channel;
int no_channels;
int flags;
char *file_name;
struct __spectrum *next_spectrum;
} SPECTRUM;
extern SPECTRUM *define_spectrum(int,...);
extern int define_array_of_spectrum(int,SPECTRUM**,...);
extern void clear_all_spectra();
extern int read_spectrum(SPECTRUM*);
extern int read_all_spectra();
extern int read_little_endian_longs(const char*,INT32*,int);
extern int write_spectrum(SPECTRUM*);
extern int write_all_spectra();
extern int write_little_endian_longs(const char*,const INT32*,int);
extern void revoke_spectrum(SPECTRUM*);
extern void revoke_all_spectra();
extern void spectra_name_replacement(int*);
extern void set_spectra_read_write
(int(*)(const char*,unsigned long*,int),int(*)(const char*,unsigned long*,int));
# 106 "/usr/local/include/local/fera/spec.h" 3
# 51 "x_two.h" 2
# 1 "/usr/local/include/local/fera/u4bit.h" 1 3
typedef UINT8 U4BIT_BASE;
extern size_t u4bit_size(int);
extern unsigned get_u4bit(U4BIT_BASE*,int);
extern void set_u4bit(U4BIT_BASE*,int,int);
extern void use_u4bit(U4BIT_BASE*,int);
extern int next_nonzero_u4bit(int);
extern int inc_u4bit(U4BIT_BASE*,int);
extern void fill_u4bit(U4BIT_BASE*,int,int,int);
# 65 "/usr/local/include/local/fera/u4bit.h" 3
# 52 "x_two.h" 2
# 1 "/usr/local/include/local/fera/u6bit.h" 1 3
typedef UINT8 U6BIT_BASE[3];
extern size_t u6bit_size(int);
extern unsigned get_u6bit(U6BIT_BASE*,int);
extern void set_u6bit(U6BIT_BASE*,int,int);
extern void use_u6bit(U6BIT_BASE*,int);
extern int next_nonzero_u6bit(int);
extern int inc_u6bit(U6BIT_BASE*,int);
# 61 "/usr/local/include/local/fera/u6bit.h" 3
# 53 "x_two.h" 2
# 1 "/usr/local/include/local/fera/u8bit.h" 1 3
typedef UINT8 U8BIT_BASE;
extern size_t u8bit_size(int);
extern unsigned get_u8bit(U8BIT_BASE*,int);
extern void set_u8bit(U8BIT_BASE*,int,int);
extern void use_u8bit(U8BIT_BASE*,int);
extern int next_nonzero_u8bit(int);
extern int inc_u8bit(U8BIT_BASE*,int);
# 61 "/usr/local/include/local/fera/u8bit.h" 3
# 54 "x_two.h" 2
# 1 "/usr/local/include/local/fera/matfmt.h" 1 3
typedef struct {
int type;
int x_size;
int y_size;
int size;
int y_shift;
UINT32 overflow_increment;
int memory_size;
int memory_element_bits;
int disk_size;
int disk_element_bits;
} MATRIX_FORMAT;
extern int sscan_matfmt(char*,MATRIX_FORMAT*,char**);
extern void sprint_matfmt(char*,MATRIX_FORMAT*,char*);
extern int set_matfmt(MATRIX_FORMAT*,int,int,int);
# 72 "/usr/local/include/local/fera/matfmt.h" 3
# 55 "x_two.h" 2
# 1 "/usr/local/include/local/fera/matrix.h" 1 3
typedef volatile struct {
unsigned long total;
unsigned long overflow;
unsigned long overflow_in;
unsigned long overflow_out;
} MATRIX_COUNTS;
typedef volatile struct {
int type;
char id[64 ];
int x_size;
int y_size;
int memory_size;
int overflow_table_size;
int status;
MATRIX_COUNTS counts;
} MATRIX_STATISTIC;
typedef struct __matrix {
int number;
MATRIX_FORMAT fmt;
char *name;
char *file;
int file_descriptor;
union {
U4BIT_BASE *u4bit;
U6BIT_BASE *u6bit;
U8BIT_BASE *u8bit;
} data;
int (*inc_func)(__matrix*, int, int);
MATRIX_STATISTIC *statistic;
struct __matrix *next_matrix;
} MATRIX;
extern MATRIX *create_matrix(int,int,int,...);
extern int create_array_of_matrix(int,int,int,MATRIX**,...);
extern int debug_matrices(void);
extern int initialize_matrices(int);
extern void print_matrix_inc_error(MATRIX*,int,int);
extern int finish_matrices(void);
extern void abort_matrices(void);
extern void print_matrix_statistic(int);
# 156 "/usr/local/include/local/fera/matrix.h" 3
# 56 "x_two.h" 2
# 1 "/usr/local/include/local/fera/recal.h" 1 3
# 1 "/usr/local/include/local/fera/reference.h" 1 3
typedef struct {
UINT16 *data;
UINT16 *pattern;
UINT16 pattern_mask;
int *count;
} FERA_DATA_REFERENCE;
extern int set_fera_data_reference
(FERA_DATA_REFERENCE*,FERA_MODUL_DATA*,int);
# 32 "/usr/local/include/local/fera/recal.h" 2 3
typedef float RECAL_TABLE_ELEMENT;
typedef struct __operation {
int operation;
char *file_name;
struct __operation *next_table_operation;
} RECAL_TABLE_OPERATION;
typedef struct __recal_special_correction {
int (*ini)(struct __recal_special_correction*);
void (*reset)(struct __recal_special_correction*);
double (*recal)(void*,double);
void *data;
} RECAL_SPECIAL_CORRECTION;
typedef struct __recal_add_polynom {
char *file_name;
float *coeff;
int degree;
struct __recal_add_polynom *next_add_polynom;
} RECAL_ADD_POLYNOM;
typedef struct __recal {
int mode;
FERA_DATA_REFERENCE fera;
RECAL_TABLE_OPERATION *first_table_operation;
RECAL_TABLE_ELEMENT *table;
unsigned table_size;
RECAL_SPECIAL_CORRECTION special;
RECAL_ADD_POLYNOM *first_add_polynom;
int check_min;
int check_max;
int (*raw_data_function)(struct __recal*,UINT16*);
double recal_data;
struct __recal *next_recal;
} RECAL;
extern RECAL *define_recal(int,int,...);
extern int define_array_of_recal
(int,int,RECAL**,...);
extern int define_1dim_array_of_recal
(int,int,RECAL**,...);
extern int define_simple_array_of_recal
(int,int,RECAL**,FERA_MODUL_DATA*,int,int);
extern int assign_to_recal(int,RECAL*,...);
extern int assign_to_array_of_recal(int,RECAL**,...);
extern int build_recal_table(RECAL*);
extern int build_all_recal_tables(int);
extern int recalibrate_data(RECAL*);
extern int recalibrate_all_data(void);
extern void remove_from_recal(RECAL*);
extern void remove_from_array_of_recal(RECAL**,int,...);
extern void revoke_recal(RECAL*);
extern int revoke_all_recals(int);
extern void recal_name_replacement(int*);
# 144 "/usr/local/include/local/fera/recal.h" 3
# 57 "x_two.h" 2
# 1 "/usr/local/include/local/fera/gate_matrix.h" 1 3
typedef struct {
int x;
int y;
} GATE_MATRIX_POLYGON_POINT;
typedef struct __gate_matrix_polygon {
int index;
int no_points;
GATE_MATRIX_POLYGON_POINT *points;
struct __gate_matrix_polygon *next_polygon;
} GATE_MATRIX_POLYGON;
typedef struct __gate_matrix {
char *file_name;
GATE_MATRIX_POLYGON *first_polygon;
int x_size;
int y_size;
int y_shift;
U4BIT_BASE *data_base;
int background_index;
struct __gate_matrix *next_gate_matrix;
} GATE_MATRIX;
extern GATE_MATRIX *define_gate_matrix(int,int,...);
extern int define_array_of_gate_matrix(int,int,GATE_MATRIX**,...);
extern int set_gate_matrix_background(GATE_MATRIX*,int);
extern int add_gate_matrix_polygon
(GATE_MATRIX*,int,int,GATE_MATRIX_POLYGON_POINT*);
extern int fill_gate_matrix(GATE_MATRIX*);
extern int fill_all_gate_matrices(void);
extern int delete_gate_matrix_polygon(GATE_MATRIX*,int);
extern void delete_all_gate_matrix_polygons(GATE_MATRIX*);
extern int read_gate_matrix_file(GATE_MATRIX*);
extern int read_all_gate_matrix_files(void);
extern int write_gate_matrix_file(GATE_MATRIX*);
extern int write_all_gate_matrix_files(void);
extern int gate_matrix_index(GATE_MATRIX*,int,int);
extern void set_gate_matrix_index(GATE_MATRIX*,int,int,int);
extern void revoke_gate_matrix(GATE_MATRIX*);
extern void revoke_all_gate_matrices(void);
extern void gate_matrix_name_replacement(int*);
# 122 "/usr/local/include/local/fera/gate_matrix.h" 3
# 58 "x_two.h" 2
# 1 "/usr/local/include/local/fera/multi_file.h" 1 3
typedef struct {
int max;
int actual;
} MULTI_FILE_PARAMETER;
typedef struct {
char *generic_file_name;
MULTI_FILE_PARAMETER *parameter;
int file_count;
char file_name_buffer[2][512 ];
} MULTI_FILE;
extern MULTI_FILE *define_multi_file(va_list);
extern const char *next_multi_file(MULTI_FILE*);
extern void revoke_multi_file(MULTI_FILE*);
# 79 "/usr/local/include/local/fera/multi_file.h" 3
# 59 "x_two.h" 2
# 1 "/usr/local/include/local/fera/window.h" 1 3
typedef struct __window {
int mode;
FERA_DATA_REFERENCE fera;
UINT16 min;
UINT16 max;
struct __window *next_window;
} WINDOW;
typedef struct __window_file {
char *file_name;
WINDOW **array_of_windows;
int no_windows;
struct __window_file *next_window_file;
} WINDOW_FILE;
extern void window_name_replacement(int*);
extern WINDOW *define_window(int,FERA_MODUL_DATA *,int);
extern int define_1dim_array_of_windows(WINDOW**,int,int,FERA_MODUL_DATA**,int*);
extern int define_simple_array_of_windows
(WINDOW**,int,FERA_MODUL_DATA*,int,int);
extern WINDOW_FILE *define_window_file(WINDOW**,int,...);
extern int set_window(WINDOW*,int,int);
extern int read_window_file(WINDOW_FILE*);
extern int read_all_window_files(void);
extern int write_window_file(WINDOW_FILE*);
extern int write_all_window_files(void);
extern int check_window(WINDOW*);
extern int check_all_auto_windows(void);
extern void revoke_window_file(WINDOW_FILE*);
extern void revoke_all_window_files(void);
extern int revoke_window(WINDOW*);
extern int revoke_all_windows(void);
extern void revoke_all_windows_and_files(void);
# 113 "/usr/local/include/local/fera/window.h" 3
# 60 "x_two.h" 2
# 1 "/usr/local/include/local/fera/toolbox.h" 1 3
# 102 "/usr/local/include/local/fera/toolbox.h" 3
# 118 "/usr/local/include/local/fera/toolbox.h" 3
# 61 "x_two.h" 2
# 1 "/usr/local/include/local/fera/poly.h" 1 3
extern double horner(double*,int,double);
extern double fhorner(float*,int,double);
extern int read_polynom(int,void*,int,const char*,...);
extern int vread_polynom(int,void*,int,const char*,va_list);
extern int fread_polynom(int,void*,int,FILE*);
# 56 "/usr/local/include/local/fera/poly.h" 3
# 62 "x_two.h" 2
}
extern int skip_files;
# 42 "x_two.cc" 2
# 1 "end_of_file.h" 1
extern "C" {
# 1 "/usr/local/include/local/fera/workshop.h" 1 3
# 62 "/usr/local/include/local/fera/workshop.h" 3
# 82 "/usr/local/include/local/fera/workshop.h" 3
# 95 "/usr/local/include/local/fera/workshop.h" 3
# 43 "end_of_file.h" 2
}
extern int run_no;
extern int end_run_no;
extern int run_no_list[1000];
extern int max_list_element;
extern int list_no;
extern char input[255];
extern int skip_files;
extern int read_run_list(char*);
extern int end_of_run_function(int);
extern int list_eof_function(int);
extern int linear_eof_function(int);
# 43 "x_two.cc" 2
int evt_count = 0;
int bad_pattern = 0;
int bad_sync = 0;
int bad_data = 0;
int correct = 0;
char *expname = "96Ru";
SPECTRUM *prge[10 ];
SPECTRUM *prge_pup[10 ];
SPECTRUM *prge_a[10 ];
SPECTRUM *prge_a_pup[10 ];
SPECTRUM *tdc_stat,*adc_stat;
SPECTRUM *tdc[10 ];
SPECTRUM *t[(10 * (10 -1)) / 2];
MATRIX *mat[4];
MATRIX *cormat[4];
MATRIX *cormat_del[4];
USER_EVENT *mixed;
USER_EVENT *matcount;
USER_EVENT *nicht_correl;
USER_EVENT *high_en;
USER_EVENT *bigtime;
RECAL *adc_rec[10 ];
RECAL *tdc_rec[10 ];
FERA_MODUL_DATA tdcm;
FERA_MODUL_DATA nfi[10 ];
WINDOW *ggt_win[3];
int
main(int argc, char** argv)
{
int status;
int (*eof_function)(int);
int ini_fera_flag =
(001000) | (000004) | (000010) ;
printf("Starting x_two, Version: %s\n", rcsid);
if (argc < 3) {
fprintf ((&__iob[2]) , "usage: %s inputfile [start_run_no end_run_no]\n",
argv[0]);
fprintf ((&__iob[2]) , " [-run_list_file]\n");
fprintf ((&__iob[2]) , "\trun_list_file needs \"eof\" at the end!\n");
exit (-1);
}
if (argc <4) {
strcpy (input, argv[1]);
if (argv[2][0] != '-') {
fprintf ((&__iob[2]) , "usage: %s inputfile [start_run_no end_run_no]\n",
argv[0]);
fprintf ((&__iob[2]) , " [-run_list_file]\n");
fprintf ((&__iob[2]) , "\trun_list_file needs \"eof\" at the end!\n");
exit (-1);
}
else {
read_run_list (argv[2]);
eof_function = list_eof_function;
}
}
else {
eof_function = linear_eof_function;
sscanf (argv[2], "%d", &run_no);
sscanf (argv[3], "%d", &end_run_no);
}
# 236 "x_two.cc"
if (set_resource ((3) , 10) ||
set_resource((2) , 16384) ||
set_resource ((1) , fera_buffered_input) ||
set_resource ((4) , *eof_function)) {
print_error ((1) );
revoke_all_spectra ();
}
if (initialize_fera (argv[1], ini_fera_flag, 10 + 1 ) ||
load_fera_modul(101 , 0, &tdcm ) ||
load_fera_modul(401 , 4|(1<<15), &nfi[0]) ||
load_fera_modul(401 , 5|(1<<15), &nfi[1]) ||
load_fera_modul(401 , 6|(1<<15), &nfi[2]) ||
load_fera_modul(401 , 7|(1<<15), &nfi[3]) ||
load_fera_modul(401 , 8|(1<<15), &nfi[4]) ||
load_fera_modul(401 , 9|(1<<15), &nfi[5]) ||
load_fera_modul(401 ,10|(1<<15), &nfi[6]) ||
load_fera_modul(401 ,11|(1<<15), &nfi[7]) ||
load_fera_modul(401 ,12|(1<<15), &nfi[8]) ||
load_fera_modul(401 ,13|(1<<15), &nfi[9]) ||
(mixed = define_user_event ("Anreg+Zerf")) == 0 ||
(matcount = define_user_event ("Mat_Count")) == 0 ||
(high_en = define_user_event ("High_Energie")) == 0 ||
(nicht_correl = define_user_event ("Nicht_Correl")) == 0 ||
(bigtime = define_user_event ("tdcmzugross")) == 0 ||
0){
perror(expname);
print_error((1) );
reset_fera();
exit(-1);
}
{
if
(
(0 == (mat[0] = create_matrix (000001 | 000010 | 000000 , 8192 ,
8192 , "96ru.mtx" )))
||
(0 == (mat[1] = create_matrix (000001 | 000020 | 001000 , 8192 ,
8192 , "96ru_dly.mtx" )))
||
(0 == (mat[2] = create_matrix (000001 | 000000 | 000000 , 8192 ,
8192 , "96ru_a.mtx" )))
||
(0 == (mat[3] = create_matrix (000001 | 000010 | 001000 , 8192 ,
8192 , "96ru_a_dly.mtx" )))
# 321 "x_two.cc"
) {
print_error ((1) );
return (-6);
}
if (initialize_matrices (000001 )) {
print_error ((1) );
return (-8);
}
printf ("96Ru: now initializing matrix\n");
fflush ((&__iob[1]) );
}
spectra_name_replacement( &run_no );
recal_name_replacement (&run_no);
if (
define_array_of_spectrum(16384 | 0 , prge, 1, 10 ,
"prge$d" ".####" ,
expname) ||
define_array_of_spectrum(16384 | 0 , prge_pup, 1, 10 ,
"prge_pup$d" ".####" ,
expname) ||
define_array_of_spectrum(16384 | 0 , prge_a, 1, 10 ,
"prge_a$d" ".####" ,
expname) ||
define_array_of_spectrum(16384 | 0 , prge_a_pup, 1, 10 ,
"prge_a_pup$d" ".####" ,
expname) ||
define_array_of_spectrum(2048 | 0 , tdc, 1, 10 ,
"tdc$d" ".####" ,
expname) ||
define_array_of_spectrum(4096 | 0 , t, 1,
(10 * (10 - 1)) / 2,
"t$d" ".####" ,
expname) ||
(0 ==(tdc_stat=define_spectrum(1024 | 0 , "tdc_stat" ".####" )))||
(0 ==(adc_stat=define_spectrum(1024 | 0 , "adc_stat" ".####" )))||
0){
perror(expname);
print_error((1) );
revoke_all_spectra();
reset_fera();
exit(-1);
}
printf("Now starting analysis...\n\07");
fflush((&__iob[1]) );
clear_all_spectra();
printf("All spectra cleared!\n\07");
fflush((&__iob[1]) );
print_string ((1) , "info: define recals\n");
flush_output ((1) );
flush_output ((2) );
if (
((adc_rec[0] = define_recal ((2) , 16384 , &nfi[0], 0)) == 0 ) ||
((adc_rec[1] = define_recal ((2) , 16384 , &nfi[1], 0)) == 0 ) ||
((adc_rec[2] = define_recal ((2) , 16384 , &nfi[2], 0)) == 0 ) ||
((adc_rec[3] = define_recal ((2) , 16384 , &nfi[3], 0)) == 0 ) ||
((adc_rec[4] = define_recal ((2) , 16384 , &nfi[4], 0)) == 0 ) ||
((adc_rec[5] = define_recal ((2) , 16384 , &nfi[5], 0)) == 0 ) ||
((adc_rec[6] = define_recal ((2) , 16384 , &nfi[6], 0)) == 0 ) ||
((adc_rec[7] = define_recal ((2) , 16384 , &nfi[7], 0)) == 0 ) ||
((adc_rec[9] = define_recal ((2) , 16384 , &nfi[9], 0)) == 0 ) ||
assign_to_recal ((1) , adc_rec[0], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge0.####_shd" ) ||
assign_to_recal ((1) , adc_rec[1], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge1.####_shd" ) ||
assign_to_recal ((1) , adc_rec[2], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge2.####_shd" ) ||
assign_to_recal ((1) , adc_rec[3], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge3.####_shd" ) ||
assign_to_recal ((1) , adc_rec[4], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge4.####_shd" ) ||
assign_to_recal ((1) , adc_rec[5], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge5.####_shd" ) ||
assign_to_recal ((1) , adc_rec[6], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge6.####_shd" ) ||
assign_to_recal ((1) , adc_rec[7], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge7.####_shd" ) ||
assign_to_recal ((1) , adc_rec[9], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/ge9.####_shd" ) ||
assign_to_recal ((2) , adc_rec[0], "/beta/hklein/96ru_beta/" "Eichung/ge0.cal" ) ||
assign_to_recal ((2) , adc_rec[1], "/beta/hklein/96ru_beta/" "Eichung/ge1.cal" ) ||
assign_to_recal ((2) , adc_rec[2], "/beta/hklein/96ru_beta/" "Eichung/ge2.cal" ) ||
assign_to_recal ((2) , adc_rec[3], "/beta/hklein/96ru_beta/" "Eichung/ge3.cal" ) ||
assign_to_recal ((2) , adc_rec[4], "/beta/hklein/96ru_beta/" "Eichung/ge4.cal" ) ||
assign_to_recal ((2) , adc_rec[5], "/beta/hklein/96ru_beta/" "Eichung/ge5.cal" ) ||
assign_to_recal ((2) , adc_rec[6], "/beta/hklein/96ru_beta/" "Eichung/ge6.cal" ) ||
assign_to_recal ((2) , adc_rec[7], "/beta/hklein/96ru_beta/" "Eichung/ge7.cal" ) ||
assign_to_recal ((2) , adc_rec[9], "/beta/hklein/96ru_beta/" "Eichung/ge9.cal" ) ||
assign_to_recal ((2) , adc_rec[0], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
assign_to_recal ((2) , adc_rec[1], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
assign_to_recal ((2) , adc_rec[2], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
assign_to_recal ((2) , adc_rec[3], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
assign_to_recal ((2) , adc_rec[4], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
assign_to_recal ((2) , adc_rec[5], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
assign_to_recal ((2) , adc_rec[6], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
assign_to_recal ((2) , adc_rec[7], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
assign_to_recal ((2) , adc_rec[9], "/beta/hklein/96ru_beta/" "Eichung/eich.all" ) ||
((tdc_rec[0] = define_recal ((2) , 2048, &tdcm, 0)) == 0 ) ||
((tdc_rec[1] = define_recal ((2) , 2048, &tdcm, 1)) == 0 ) ||
((tdc_rec[2] = define_recal ((2) , 2048, &tdcm, 2)) == 0 ) ||
((tdc_rec[3] = define_recal ((2) , 2048, &tdcm, 3)) == 0 ) ||
((tdc_rec[4] = define_recal ((2) , 2048, &tdcm, 4)) == 0 ) ||
((tdc_rec[5] = define_recal ((2) , 2048, &tdcm, 5)) == 0 ) ||
((tdc_rec[6] = define_recal ((2) , 2048, &tdcm, 6)) == 0 ) ||
((tdc_rec[7] = define_recal ((2) , 2048, &tdcm, 7)) == 0 ) ||
((tdc_rec[9] = define_recal ((2) , 2048, &tdcm, 9)) == 0 ) ||
assign_to_recal ((2) , tdc_rec[0], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc0.recal" ) ||
assign_to_recal ((2) , tdc_rec[1], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc1.recal" ) ||
assign_to_recal ((2) , tdc_rec[2], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc2.recal" ) ||
assign_to_recal ((2) , tdc_rec[3], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc3.recal" ) ||
assign_to_recal ((2) , tdc_rec[4], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc4.recal" ) ||
assign_to_recal ((2) , tdc_rec[5], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc5.recal" ) ||
assign_to_recal ((2) , tdc_rec[6], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc6.recal" ) ||
assign_to_recal ((2) , tdc_rec[7], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc7.recal" ) ||
assign_to_recal ((2) , tdc_rec[9], "/beta/hklein/96ru_beta/" "Shift/Shiftfiles/tdc9.recal" ) ||
(read_all_window_files ())
) {
perror ("96ru-recal-error");
print_error ((1) );
printf ("Failed to define recalibrations!\n\07");
fflush ((&__iob[1]) );
revoke_all_spectra ();
exit (-1);
}
if (build_all_recal_tables ((0) )) {
print_error ((1) );
reset_fera ();
revoke_all_recals ((0) );
exit (-1);
}
while ( (status=read_fera_event()) != (-2) ) {
if (skip_files > 0) {
continue;
}
evt_count++;
if ( status == (1) ) bad_sync++;
if ( status == (2) ) bad_pattern++;
if ( status == (3) ) bad_data++;
if ( status == (0) ) correct++;
if(evt_count>=10000){
# 513 "x_two.cc"
bad_sync = 0;
correct = 0;
bad_pattern = 0;
bad_data = 0;
evt_count = 0;
}
if ( status == (0) ) {
int ge_pattern = 0;
int tdc_pattern;
int adc_mult=0;
int tdc_mult=tdcm.count;
unsigned int routebits[10 ];
tdc_pattern=tdcm.pattern;
{
int i;
for ( i=0; i< 10 ; i++) {
unsigned int data = nfi[i].data[0];
# 552 "x_two.cc"
routebits[i] = data & 0140000 ;
nfi[i].data[0] = data & 037777 ;
}
}
recalibrate_all_data ();
{
int pattern;
int i;
for (i=0,pattern=1;i< 10 ;i++,pattern<<=1){
if (tdc_pattern & pattern) {
if (tdc_mult==1)
((( tdc_stat )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( tdc_stat )->channel + ( i+32 )) : ++( tdc_stat )->channel[( i+32 )]) ;
else if (tdc_mult>=2)
((( tdc_stat )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( tdc_stat )->channel + ( i+48 )) : ++( tdc_stat )->channel[( i+48 )]) ;
}
if (tdc_pattern & ge_pattern & pattern ){
((( tdc_stat )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( tdc_stat )->channel + ( i+16 )) : ++( tdc_stat )->channel[( i+16 )]) ;
((( adc_stat )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( adc_stat )->channel + ( i+16 )) : ++( adc_stat )->channel[( i+16 )]) ;
}
}
}
{
int i;
int pattern;
for (i=0, pattern=1;i< 10 ;i++,pattern<<=1){
if (ge_pattern & pattern) {
if (adc_mult==1)
((( adc_stat )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( adc_stat )->channel + ( i+32 )) : ++( adc_stat )->channel[( i+32 )]) ;
else if (adc_mult>=2)
((( adc_stat )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( adc_stat )->channel + ( i+48 )) : ++( adc_stat )->channel[( i+48 )]) ;
}
}
}
{
int i;
for (i = 0; i < 10 ; i++) {
if ((( tdcm ).pattern&(1<<( i ))) ) {
if ( (tdcm.data[i] < 2048) && (tdcm.data[i] > 0) ) {
((( tdc[i] )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( tdc[i] )->channel + ( tdcm.data[i] )) : ++( tdc[i] )->channel[( tdcm.data[i] )]) ;
}
else {
tdcm.data[i] = 0;
tdcm.pattern = tdcm.pattern ^ (1 << i);
(++( bigtime )->count) ;
}
}
}
}
{
int i;
for (i = 0; i < 10 ; i++) {
if ((( nfi[i] ).pattern&(1<<( 0 ))) ) {
int gedata = (nfi[i].data[0] & 037777 );
int pup = routebits[i];
if (pup == 0140000 ) {
((( prge_a_pup[i] )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( prge_a_pup[i] )->channel + ( gedata )) : ++( prge_a_pup[i] )->channel[( gedata )]) ;
} else {
if (pup == 0100000 ) {
((( prge_a[i] )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( prge_a[i] )->channel + ( gedata )) : ++( prge_a[i] )->channel[( gedata )]) ;
} else {
if (pup == 040000 ) {
((( prge_pup[i] )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( prge_pup[i] )->channel + ( gedata )) : ++( prge_pup[i] )->channel[( gedata )]) ;
} else {
((( prge[i] )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( prge[i] )->channel + ( gedata )) : ++( prge[i] )->channel[( gedata )]) ;
}
}
}
adc_mult++;
ge_pattern |= 1 << i;
}
}
((( tdc_stat )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( tdc_stat )->channel + ( tdc_mult )) : ++( tdc_stat )->channel[( tdc_mult )]) ;
((( adc_stat )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( adc_stat )->channel + ( adc_mult )) : ++( adc_stat )->channel[( adc_mult )]) ;
}
{ int i, j;
{ UINT16 __pi, __pj; for ( i =0, __pi=( ge_pattern ); __pi; i ++, __pi >>= 1) { if ( __pi & (UINT16)1 ) { for ( j = i +1, __pj=__pi>>1; __pj; j ++, __pj >>=1) { if ( __pj & (UINT16)1 )
{ int idx = ((((2*( 10 )-3)-( i ))*( i )+2*( j )-2)>>1) ;
unsigned short tdiff = 2048 + tdcm.data[i] - tdcm.data[j];
((( t[idx] )->flags & (04<< ( 8 * sizeof(int) - 3 ) ) ) ? vme_meminc(( t[idx] )->channel + ( tdiff )) : ++( t[idx] )->channel[( tdiff )]) ; }
} } } } ;
}
{
int ge_i = 0;
int ge_j = 0;
UINT16 i_pattern;
UINT16 j_pattern;
for (ge_i = 0, i_pattern = ge_pattern; i_pattern;
ge_i++, i_pattern >>=1) {
if ( (i_pattern & 1) &&
( (routebits[ge_i] & 040000 ) == 0) ) {
for (ge_j = ge_i + 1, j_pattern = i_pattern >> 1; j_pattern;
ge_j++, j_pattern >>= 1) {
if ( (j_pattern & 1) &&
( (routebits[ge_i] & 040000 ) == 0) ) {
UINT16 eni;
UINT16 enj;
UINT16 lefttime;
UINT16 righttime;
int timediff;
int time_index;
int anreg = 0;
time_index = -1;
if ( (routebits[ge_i] & 0100000 ) ^
(routebits[ge_j] & 0100000 ) ) {
(++( mixed )->count) ;
continue ;
}
if (routebits[ge_i] & 0100000 ) {
anreg = 2;
}
eni = nfi[ge_i].data[0] & 037777 ;
enj = nfi[ge_j].data[0] & 037777 ;
if ( (eni > 8192 ) || (enj > 8192 ) ) {
(++( high_en )->count) ;
continue;
}
timediff = (int) tdcm.data[ge_i] - (int) tdcm.data[ge_j];
lefttime = 2048 + ( (timediff > 0) ? (-1 * timediff)
: timediff );
righttime= 2048 + ( (timediff > 0) ? timediff
: (-1 * timediff) );
# 755 "x_two.cc"
time_index = 0;
if (time_index > -1) {
(++( matcount )->count) ;
if ( (*(( mat[time_index+anreg] )->inc_func))(( mat[time_index+anreg] ),( eni ),( enj )) ) {
print_matrix_inc_error (mat[time_index+anreg], eni, enj);
}
# 868 "x_two.cc"
}
}
}
}
}
}
}
}
printf ("info: finish matrices\n");
fflush ((&__iob[1]) );
if (finish_matrices ()) {
print_error ((1) );
abort_matrices ();
}
reset_resource();
reset_fera();
revoke_all_spectra();
print_formatted((1) ,"info: analysis finished !!\n");
exit(0);
}
More information about the Gcc-bugs
mailing list