151 int verbose=0;
if(status!=NULL) verbose=status->
verbose;
152 if(verbose>0) {printf(
"%s(%d, ...)\n", __func__, format); fflush(stdout);}
154 if(fp==NULL || ml==NULL) {
162 if(little) printf(
"little endian platform\n");
else printf(
"big endian platform\n");
170 unsigned int blkNext=0, blkPrev=0, nrFree=0, nrUsed=0;
174 if(verbose>1) printf(
" reading block %u\n", blk);
175 int ret=
ecatReadBlock(NULL, fp, blk, (
unsigned char*)dirbuf);
177 if(verbose>0) fprintf(stderr,
"Error: cannot read block %u\n", blk);
179 statusSet(status, __func__, __FILE__, __LINE__, ret);
191 printf(
"nrFree=%u blkNext=%u blkPrev=%u nrUsed=%u\n", nrFree, blkNext, blkPrev, nrUsed);
206 for(
unsigned int i=4; i<
ECATBLKSIZE/4; i+=4)
if(dirbuf[i]>0) {
212 printf(
"matnum=%u strtblk=%u endblk=%u matstat=%u matrixNr=%u\n",
218 fpos_t current_fp; fgetpos(fp, ¤t_fp);
220 fsetpos(fp, ¤t_fp);
225 printf(
"matnum %d points to data outside of file.\n", ml->
matdir[ml->
matrixNr].
id);
232 }
while(feof(fp)==0 && blk>2);
239 if(verbose>1) printf(
" matrixNr := %u\n", ml->
matrixNr);
unsigned int ecatMListMakeId(int format, unsigned int frame, unsigned int plane, unsigned int gate, unsigned int data, unsigned int bed)