diff options
author | tlatorre <tlatorre@uchicago.edu> | 2018-08-14 10:08:27 -0500 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2018-08-14 10:08:27 -0500 |
commit | 24c8bcfe7f76b20124e2862ea050f815c0f768e7 (patch) | |
tree | e5bdbd638a2c7f38f1c094cc9e95cbdfe05b9481 /zdab_utils.c | |
parent | 0b7f199c0d93074484ea580504485a32dc29f5e2 (diff) | |
download | sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.tar.gz sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.tar.bz2 sddm-24c8bcfe7f76b20124e2862ea050f815c0f768e7.zip |
move everything to src directory
Diffstat (limited to 'zdab_utils.c')
-rw-r--r-- | zdab_utils.c | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/zdab_utils.c b/zdab_utils.c deleted file mode 100644 index d946eef..0000000 --- a/zdab_utils.c +++ /dev/null @@ -1,199 +0,0 @@ -#include "Record_Info.h" -#include <stdint.h> -#include "zdab_utils.h" -#include "pack2b.h" -#include <stdlib.h> /* for size_t */ -#include <stdio.h> /* for fprintf() */ - -int isOrphan(aPmtEventRecord *pmtRecord) -{ - /* Returns non-zero if the specified event is an orphan. */ - int i; - - uint32_t *mtc_data = (uint32_t *) &pmtRecord->TriggerCardData; - - for (i = 0; i < 6; ++i) { - if (*mtc_data != 0) return 0; - ++mtc_data; - } - - return 1; -} - -// PH 04/23/98 -// Swap 4-byte integer/floats between native and external format -void swap_int32(int32_t *val_pt, int count) -{ - int32_t *last = val_pt + count; - while (val_pt < last) { - *val_pt = ((*val_pt << 24) & 0xff000000) | - ((*val_pt << 8) & 0x00ff0000) | - ((*val_pt >> 8) & 0x0000ff00) | - ((*val_pt >> 24) & 0x000000ff); - ++val_pt; - } - return; -} - -// Swap 2-byte integers between native and external format -void swap_int16(int16_t *val_pt, int count) -{ - char tmp; - int i; - for (i=0; i<count; ++i) { - tmp = ((char *) val_pt)[0]; - ((char *) val_pt)[0] = ((char *) val_pt)[1]; - ((char *) val_pt)[1] = tmp; - ++val_pt; - } - return; -} - -void unpack_ev(uint32_t *data, EVBank *b) -{ - unpack((uint8_t *) data, "l",&b->run); - unpack((uint8_t *) (data+1), "l",&b->evn); - unpack((uint8_t *) (data+2), "l",&b->dtp); - unpack((uint8_t *) (data+3), "l",&b->jdy); - unpack((uint8_t *) (data+4), "l",&b->ut1); - unpack((uint8_t *) (data+5), "l",&b->ut2); - unpack((uint8_t *) (data+6), "l",&b->dte); - unpack((uint8_t *) (data+7), "l",&b->hmsc); - unpack((uint8_t *) (data+8), "l",&b->gtr1); - unpack((uint8_t *) (data+9), "l",&b->gtr2); - unpack((uint8_t *) (data+10),"l",&b->npm); - unpack((uint8_t *) (data+11),"l",&b->nph); - unpack((uint8_t *) (data+12),"l",&b->sub_run); - unpack((uint8_t *) (data+13),"l",&b->mc_pck); - unpack((uint8_t *) (data+14),"l",&b->rec); - unpack((uint8_t *) (data+15),"l",&b->vpck); - unpack((uint8_t *) (data+16),"l",&b->gtr_id); - unpack((uint8_t *) (data+17),"l",&b->trg_type); - unpack((uint8_t *) (data+18),"l",&b->peak); - unpack((uint8_t *) (data+19),"l",&b->diff); - unpack((uint8_t *) (data+20),"l",&b->integral); - unpack((uint8_t *) (data+21),"l",&b->err); - unpack((uint8_t *) (data+22),"l",&b->data_set); - unpack((uint8_t *) (data+22),"lll",&b->spare1[0], - &b->spare1[1], - &b->spare1[2]); - unpack((uint8_t *) (data+26),"l",&b->ncd_status); - unpack((uint8_t *) (data+27),"l",&b->num_muxg); - unpack((uint8_t *) (data+29),"l",&b->num_mux); - unpack((uint8_t *) (data+29),"l",&b->num_scope); - unpack((uint8_t *) (data+30),"lllll",&b->spare2[0], - &b->spare2[1], - &b->spare2[2], - &b->spare2[3], - &b->spare2[4]); - unpack((uint8_t *) (data+35),"l",&b->ncd_clk_up); - unpack((uint8_t *) (data+36),"l",&b->ncd_clk_lw); - unpack((uint8_t *) (data+37),"l",&b->ncd_reg); - unpack((uint8_t *) (data+38),"l",&b->ncd_gtid); - unpack((uint8_t *) (data+39),"l",&b->ncd_sync); - unpack((uint8_t *) (data+40),"l",&b->spare3[0], - &b->spare3[1], - &b->spare3[2], - &b->spare3[3], - &b->spare3[4], - &b->spare3[5], - &b->spare3[6], - &b->spare3[7], - &b->spare3[8], - &b->spare3[9]); -} - -void unpack_pmt(uint32_t *data, PMTBank *b) -{ - unpack((uint8_t *) data,"l",&b->pn); - unpack((uint8_t *) (data+1),"l",&b->pf); - unpack((uint8_t *) (data+2),"f",&b->pt); - unpack((uint8_t *) (data+3),"f",&b->phl); - unpack((uint8_t *) (data+4),"f",&b->phs); - unpack((uint8_t *) (data+5),"f",&b->plx); - unpack((uint8_t *) (data+6),"f",&b->pt0); - unpack((uint8_t *) (data+7),"l",&b->pif); - unpack((uint8_t *) (data+8),"f",&b->pit); - unpack((uint8_t *) (data+9),"f",&b->pihl); - unpack((uint8_t *) (data+10),"f",&b->pihs); - unpack((uint8_t *) (data+11),"f",&b->pilx); - unpack((uint8_t *) (data+12),"f",&b->pit0); - unpack((uint8_t *) (data+13),"l",&b->cell); - unpack((uint8_t *) (data+14),"l",&b->pin); - unpack((uint8_t *) (data+15),"l",&b->tslh); - unpack((uint8_t *) (data+16),"l",&b->hca); - unpack((uint8_t *) (data+17),"l",&b->eca_val); - unpack((uint8_t *) (data+18),"l",&b->pca_val); - unpack((uint8_t *) (data+19),"l",&b->anxx); - unpack((uint8_t *) (data+20),"l",&b->ept); - unpack((uint8_t *) (data+21),"l",&b->ehl); - unpack((uint8_t *) (data+22),"l",&b->ehs); - unpack((uint8_t *) (data+23),"l",&b->elx); - unpack((uint8_t *) (data+24),"l",&b->pt1); - unpack((uint8_t *) (data+25),"l",&b->ptm); - unpack((uint8_t *) (data+26),"l",&b->ptms); - unpack((uint8_t *) (data+27),"l",&b->qm); - unpack((uint8_t *) (data+28),"l",&b->qms); - unpack((uint8_t *) (data+29),"l",&b->qrc); -} - -int swap_PmtRecord(aPmtEventRecord *aPmtRecord, size_t size) -{ - /* Swap a Pmt Event Record. This function swaps both the Pmt event record - * and the PMT hits and sub fields. Returns -1 if the PMT record has too - * many hits. */ - SWAP_INT32(aPmtRecord, sizeof(aPmtEventRecord)/sizeof(uint32_t)); - - int npmt = aPmtRecord->NPmtHit; - - if (npmt > MAX_NHIT) { - fprintf(stderr, "Read error: Bad ZDAB -- %d pmt hit!", npmt); - return -1; - } else { - if (size < sizeof(aPmtEventRecord) + 3*npmt*4) { - fprintf(stderr, "swap_PmtRecord: size of record is %zu bytes, but there are %i PMT hits", size, npmt); - return -1; - } - // swap the hit data - SWAP_INT32(aPmtRecord + 1, 3*npmt); - // swap the sub-fields - uint32_t *sub_header = &aPmtRecord->CalPckType; - while (*sub_header & SUB_NOT_LAST) { - if (size < (sub_header - (uint32_t *) aPmtRecord)*4 + (*sub_header & SUB_LENGTH_MASK)*4 + 4) { - fprintf(stderr, "swap_PmtRecord: size of record is %zu bytes, " - "but sub-field requires %lu bytes", - size, - (sub_header - (uint32_t *) aPmtRecord)*4 + (*sub_header & SUB_LENGTH_MASK)*4 + 4); - return -1; - } - sub_header += (*sub_header & SUB_LENGTH_MASK); - SWAP_INT32(sub_header, 1); // swap the sub-field header - // get number of data words (-1 because we don't want to include header size) - uint32_t data_words = (*sub_header & SUB_LENGTH_MASK) - 1; - if (size < (sub_header - (uint32_t *) aPmtRecord)*4 + (*sub_header & SUB_LENGTH_MASK)*4) { - fprintf(stderr, "swap_PmtRecord: size of record is %zu bytes, " - "but sub-field requires %lu bytes", - size, - (sub_header - (uint32_t *) aPmtRecord)*4 + (*sub_header & SUB_LENGTH_MASK)*4); - return -1; - } - SWAP_INT32(sub_header+1, data_words); - } - } - - return 0; -} - -void swap_TrigRecord(struct TriggerInfo *aTrigRecord) -{ - /* Byte swap a Trigger Record. */ - SWAP_INT32(aTrigRecord, sizeof(struct TriggerInfo)/sizeof(uint32_t)); -} - -void swap_RunRecord(struct RunRecord *aRunRecord) -{ - /* Byte swap a Run Record. */ - SWAP_INT32(aRunRecord, sizeof(struct RunRecord)/sizeof(uint32_t)); -} - - |