Exemplo n.º 1
0
void
read_descriptrace( FILE *fp, Suds_tag header, Suds_descriptrace *d, int swap, long **data, int *bufsiz ) {

	fread( &d->dt_name.network, sizeof( char ), 4, fp );
	fread( &d->dt_name.st_name, sizeof( char ), 5, fp );
	fread( &d->dt_name.component, sizeof( char ), 1, fp );
	fread( &d->dt_name.inst_type, sizeof( short ), 1, fp );
	fread( &d->begintime, sizeof( double ), 1, fp );
	fread( &d->localtime, sizeof( short ), 1, fp );
	fread( &d->datatype, sizeof( char ), 1, fp );
	fread( &d->descriptor, sizeof( char ), 1, fp );
	fread( &d->digi_by, sizeof( short ), 1, fp );
	fread( &d->processed, sizeof( short ), 1, fp );
	fread( &d->length, sizeof( long ), 1, fp );
	fread( &d->rate, sizeof( float ), 1, fp );
	fread( &d->mindata, sizeof( float ), 1, fp );
	fread( &d->maxdata, sizeof( float ), 1, fp );
	fread( &d->avenoise, sizeof( float ), 1, fp );
	fread( &d->numclip, sizeof( long ), 1, fp );
	fread( &d->time_correct, sizeof( double ), 1, fp );
	fread( &d->rate_correct, sizeof( float ), 1, fp );

	if( swap ) {
		swap2( &d->dt_name.inst_type, &d->dt_name.inst_type, 1 );
		swap8( &d->begintime, &d->begintime, 1 );
		swap2( &d->localtime, &d->localtime, 1 );
		swap2( &d->digi_by, &d->digi_by, 1 );
		swap2( &d->processed, &d->processed, 1 );
		swap4( &d->length, &d->length, 1 );
		swap4( &d->rate, &d->rate, 1 );
		swap4( &d->mindata, &d->mindata, 1 );
		swap4( &d->maxdata, &d->maxdata, 1 );
		swap4( &d->avenoise, &d->avenoise, 1 );
		swap4( &d->numclip, &d->numclip, 1 );
		swap8( &d->time_correct, &d->time_correct, 1 );
		swap4( &d->rate_correct, &d->rate_correct, 1 );
	}

	if( d->datatype != '2' ) {

		complain( 1, "Datatype %s not understood--skipping\n", d->datatype );
		fseek( fp, header.data_length_bytes, SEEK_CUR );

	} else {
		if( *bufsiz < header.data_length_bytes ) {
			reallot( long *, *data, d->length ); 
			*bufsiz = d->length * sizeof( long );
		}

		fread( *data, sizeof( long ), d->length, fp );

		if( swap ) {
			swap4( *data, *data, d->length );
		}
	}
Exemplo n.º 2
0
void 
read_stationcomp( FILE *fp, Suds_tag header, Suds_stationcomp *s, int swap ) {
	
	fread( &s->sc_name.network, sizeof( char ), 4, fp );
	fread( &s->sc_name.st_name, sizeof( char ), 5, fp );
	fread( &s->sc_name.component, sizeof( char ), 1, fp );
	fread( &s->sc_name.inst_type, sizeof( short ), 1, fp );
	fread( &s->azim, sizeof( short ), 1, fp );
	fread( &s->incid, sizeof( short ), 1, fp );
	fread( &s->st_lat, sizeof( double ), 1, fp );
	fread( &s->st_long, sizeof( double ), 1, fp );
	fread( &s->elev, sizeof( float ), 1, fp );
	fread( &s->enclosure, sizeof( char ), 1, fp );
	fread( &s->annotation, sizeof( char ), 1, fp );
	fread( &s->recorder, sizeof( char ), 1, fp );
	fread( &s->rockclass, sizeof( char ), 1, fp );
	fread( &s->rocktype, sizeof( short ), 1, fp );
	fread( &s->sitecondition, sizeof( char ), 1, fp );
	fread( &s->sensor_type, sizeof( char ), 1, fp );
	fread( &s->data_type, sizeof( char ), 1, fp );
	fread( &s->data_units, sizeof( char ), 1, fp );
	fread( &s->polarity, sizeof( char ), 1, fp );
	fread( &s->st_status, sizeof( char ), 1, fp );
	fread( &s->max_gain, sizeof( float ), 1, fp );
	fread( &s->clip_value, sizeof( float ), 1, fp );
	fread( &s->con_mvolts, sizeof( float ), 1, fp );
	fread( &s->channel, sizeof( short ), 1, fp );
	fread( &s->atod_gain, sizeof( short ), 1, fp );
	fread( &s->effective, sizeof( long ), 1, fp );
	fread( &s->clock_correct, sizeof( float ), 1, fp );
	fread( &s->station_delay, sizeof( float ), 1, fp );

	if( swap ) {
		swap2( &s->sc_name.inst_type, &s->sc_name.inst_type, 1 );
		swap2( &s->azim, &s->azim, 1 );
		swap2( &s->incid, &s->incid, 1 );
		swap8( &s->st_lat, &s->st_lat, 1 );
		swap8( &s->st_long, &s->st_long, 1 );
		swap4( &s->elev, &s->elev, 1 );
		swap2( &s->rocktype, &s->rocktype, 1 );
		swap4( &s->max_gain, &s->max_gain, 1 );
		swap4( &s->clip_value, &s->clip_value, 1 );
		swap4( &s->con_mvolts, &s->con_mvolts, 1 );
		swap2( &s->channel, &s->channel, 1 );
		swap2( &s->atod_gain, &s->atod_gain, 1 );
		swap4( &s->effective, &s->effective, 1 );
		swap4( &s->clock_correct, &s->clock_correct, 1 );
		swap4( &s->station_delay, &s->station_delay, 1 );
	}

	fseek( fp, header.data_length_bytes, SEEK_CUR );
}
Exemplo n.º 3
0
/*
 * byteswap a single magic entry
 */
static void bs1(struct r_magic *m) {
	m->cont_level = swap2(m->cont_level);
	m->offset = swap4((ut32)m->offset);
	m->in_offset = swap4((ut32)m->in_offset);
	m->lineno = swap4((ut32)m->lineno);
	if (MAGIC_IS_STRING (m->type)) {
		m->str_range = swap4(m->str_range);
		m->str_flags = swap4(m->str_flags);
	} else {
		m->value.q = swap8(m->value.q);
		m->num_mask = swap8(m->num_mask);
	}
}
Exemplo n.º 4
0
static void rc4(const uint8_t *key, size_t keylen, uint8_t *xorbuf, size_t xorbuflen)
{
  uint8_t S[256];
  for (unsigned i = 0; i < 256; i++)
    S[i] = i;
    
  for (unsigned i = 0, j = 0; i < 256; i++)
  {
    j = (j + S[i] + key[i % keylen]) & 0xff;
    swap8(S + i, S + j);
  }
  
  for (unsigned i = 0, j = 0, n = 0; n < xorbuflen; n++)
  {
    i = (i + 1) & 0xff;
    j = (j + S[i]) & 0xff;
    swap8(S + i, S + j);
    xorbuf[n] ^= S[(S[i] + S[j]) & 0xff];
  }
}
Exemplo n.º 5
0
static int nextPerm(uint8_t n[], int count)
{
	int tail, i, j;

	if (count <= 1)
		return 0;

	for (i = count - 1; i>0 && n[i - 1] >= n[i]; i--);
	tail = i;

	if (tail > 0) {
		for (j = count - 1; j>tail && n[j] <= n[tail - 1]; j--);
		swap8(&n[tail - 1], &n[j]);
	}

	for (i = tail, j = count - 1; i<j; i++, j--)
		swap8(&n[i], &n[j]);

	return (tail != 0);
}
Exemplo n.º 6
0
static istream &
utPortableRead(istream &is, char *dest, int numelem, int elemsize)
{
    int 	 size = numelem*elemsize;	    
    char	*buf = utGetBuffer(size);
    int		 i;

    ut_2byte	*src2byte, *dest2byte;
    ut_4byte	*src4byte, *dest4byte;
    ut_8byte	*src8byte, *dest8byte;

    switch(elemsize)
    {
	case 1:
	    is.read(dest, numelem);
	    break;

	case 2:
	    src2byte = (ut_2byte *)buf;
	    dest2byte = (ut_2byte *)dest;
	    if (!buf) return is.read(dest, size);
	    is.read(buf, size);
	    for (i = 0; i < numelem; i++)
		dest2byte[i] = swap2(src2byte[i]);
	    break;

	case 4:
	    src4byte = (ut_4byte *)buf;
	    dest4byte = (ut_4byte *)dest;
	    if (!buf) return is.read(dest, size);
	    is.read(buf, size);
	    for (i = 0; i < numelem; i++)
		dest4byte[i] = swap4(src4byte[i]);
	    break;

	case 8:
	    src8byte = (ut_8byte *)buf;
	    dest8byte = (ut_8byte *)dest;
	    if (!buf) return is.read(dest, size);
	    is.read(buf, size);
	    for (i = 0; i < numelem; i++)
		dest8byte[i] = swap8(src8byte[i]);
	    break;
    }

    return is;
}
Exemplo n.º 7
0
static int 
utPortableFWrite(FILE *f, const void *src, int numelem, int elemsize)
{
    int 	 size = numelem*elemsize;	    
    char	*buf = utGetBuffer(size);
    int		 i, retval;

    ut_2byte	*src2byte, *dest2byte;
    ut_4byte	*src4byte, *dest4byte;
    ut_8byte	*src8byte, *dest8byte;

    switch(elemsize)
    {
	case 1:
	    retval = fwrite(src, elemsize, numelem, f);
	    break;

	case 2:
	    src2byte = (ut_2byte *)src;
	    dest2byte = (ut_2byte *)buf;
	    if (!buf) return fwrite(src, elemsize, numelem, f);
	    for (i = 0; i < numelem; i++)
		dest2byte[i] = swap2(src2byte[i]);
	    retval = fwrite(buf, elemsize, numelem, f);	
	    break;

	case 4:
	    src4byte = (ut_4byte *)src;
	    dest4byte = (ut_4byte *)buf;
	    if (!buf) return fwrite(src, elemsize, numelem, f);
	    for (i = 0; i < numelem; i++)
		dest4byte[i] = swap4(src4byte[i]);
	    retval = fwrite(buf, elemsize, numelem, f);	
	    break;

	case 8:
	    src8byte = (ut_8byte *)src;
	    dest8byte = (ut_8byte *)buf;
	    if (!buf) return fwrite(src, elemsize, numelem, f);
	    for (i = 0; i < numelem; i++)
		dest8byte[i] = swap8(src8byte[i]);
	    retval = fwrite(buf, elemsize, numelem, f);	
	    break;
    }

    return retval;
}
Exemplo n.º 8
0
static ostream &
utPortableWrite(ostream &os, const char *src, int numelem, int elemsize)
{
    int 	 size = numelem*elemsize;	    
    char	*buf = utGetBuffer(size);
    int		 i;

    ut_2byte	*src2byte, *dest2byte;
    ut_4byte	*src4byte, *dest4byte;
    ut_8byte	*src8byte, *dest8byte;

    switch(elemsize)
    {
	case 1:
	    os.write(src, numelem);
	    break;

	case 2:
	    src2byte = (ut_2byte *)src;
	    dest2byte = (ut_2byte *)buf;
	    if (!buf) return os.write(src, size);
	    for (i = 0; i < numelem; i++)
		dest2byte[i] = swap2(src2byte[i]);
	    os.write(buf, size);
	    break;

	case 4:
	    src4byte = (ut_4byte *)src;
	    dest4byte = (ut_4byte *)buf;
	    if (!buf) return os.write(src, size);
	    for (i = 0; i < numelem; i++)
		dest4byte[i] = swap4(src4byte[i]);
	    os.write(buf, size);
	    break;

	case 8:
	    src8byte = (ut_8byte *)src;
	    dest8byte = (ut_8byte *)buf;
	    if (!buf) return os.write(src, size);
	    for (i = 0; i < numelem; i++)
		dest8byte[i] = swap8(src8byte[i]);
	    os.write(buf, size);
	    break;
    }

    return os;
}
Exemplo n.º 9
0
 static int
specadj(char *specsum)
{
	FILE *f;
	KeyWord *kw, *kw0;
	KwpHead head;
	Kwpack *p, *p0;
	Kwpack0 *q;
	Uint *u, *u0;
	const char *strtab;
	double *d, *fptab;
	int swap;
	size_t L, L1;

	f = fopen(specsum, "rb");
	if (!f) {
		fprintf(stderr, "%s:  cannot open \"%s\"\n", progname, specsum);
		return 1;
		}
	fread(&head, sizeof(head), 1, f);
	swap = 0;
	if (head.bkind != 0x1234abcd) {
		swap4(&head.bkind);
		if (head.bkind != 0x1234abcd) {
 badfile:
			fprintf(stderr, "%s:  invalid specsum file \"%s\"\n",
				progname, specsum);
			return 1;
			}
		swap8(&head.fpkind);
		swap = 1;
		swap4(&head.nkw);
		swap4(&head.strtab_offset);
		swap4(&head.kw_offset);
		swap4(&head.end_offset);
		}
	if (head.fpkind != 1e13)
		goto badfile;
	L = head.end_offset;
	L1 = head.kw_offset + (head.nkw+1)*sizeof(KeyWord);
	if (L1 < L)
		L1 = L;
	fptab = (double*)Malloc(L1);
	fread(fptab, L, 1, f);
	fclose(f);
	p = p0 = (Kwpack*)((char*)fptab + head.kw_offset);
	strtab = (const char*)fptab + head.strtab_offset;
	kw0 = (KeyWord*)p;
	kw = ++kw0 + head.nkw;
	p += head.nkw;
	if (head.pad == 0) {
		q = (Kwpack0*)p0 + head.nkw;
		p = (Kwpack*)q;
		}
	if (swap) {
		u0 = (Uint*)p0;
		u = (Uint*)p;
		while(u > u0)
			swap4(--u);
		d = fptab + head.strtab_offset/sizeof(double);
		while(d > fptab)
			swap8(--d);
		}
	if (head.pad == 0)
		while(kw > kw0) { /* no DYNLIB data */
			--kw;
			--q;
			kw->name = q->name ? strtab + q->name : 0;
			kw->kind = q->kind;
			kw->nkw = q->nkw;
			kw->alt = q->alt;
			kw->req = q->req;
			kw->kw = q->kw ? kw0 + q->kw : 0;
			kw->Lb = fptab[q->Lb];
			kw->Ub = fptab[q->Ub];
			kw->paoff = q->poff;
			kw->f.start = kw->f.final = 0;
			kw->f.vs = kw->f.vf = 0;
			kw->comment = 0;
			kw->kwnext = 0;
			}
	else
		while(kw > kw0) {
Exemplo n.º 10
0
uint32 MultiFileProcJobs( TUPLE_VIEWSIZE *tuplesAndSizes, 
		                          uint32 nViews, 
                           ADC_VIEW_CNTL *avp ){
   uint32 i;
    int32 ii; /* it should be int */
   uint32 j;
   uint32 pn;
   uint32 direction = 0;
   uint32 dChange = 0;
   uint32 gbi;
   uint32 maxn;
   uint64 *gbuf;
   uint64      vszs[MAX_NUMBER_OF_TASKS];
   uint32 nGroupbys[MAX_NUMBER_OF_TASKS];
   TUPLE_ONES *toptr;

   gbuf = (uint64*) &avp->memPool[0];

   for(i = 0; i < avp->nTasks; i++ ){ nGroupbys[i] = 0; vszs[i] = 0; }

   for(pn = 0, gbi = 0, ii = nViews-1; ii >= 0; ii-- ){
     if(pn == avp->taskNumber) gbuf[gbi++]=tuplesAndSizes[ii].tuple;
     nGroupbys[pn]++;
     vszs[pn] += tuplesAndSizes[ii].viewsize; 
     if(direction == 0 && pn == avp->nTasks-1 ) { 
       direction = 1; 
       dChange = 1; 
     }
     if(direction == 1 && pn == 0 ){ 
       direction = 0; 
       dChange = 1; 
     }
     if (!dChange){ if (direction) pn--; else pn++;}
     dChange = 0;
   }
   for(maxn = 0, i = 0; i < avp->nTasks; i++) 
     if (nGroupbys[i] > maxn) maxn = nGroupbys[i];

   toptr = (TUPLE_ONES*) malloc(sizeof(TUPLE_ONES)*maxn);
   if(!toptr) return 1; 

   for(i = 0; i < avp->nTasks; i++ ){
     if(i == avp->taskNumber){
       for(j = 0; j < nGroupbys[i]; j++ ){
         toptr[j].tuple = gbuf[j];
         toptr[j].nOnes  = countTupleOnes(gbuf[j], avp->nTopDims);
       }
       qsort((void*)gbuf,  nGroupbys[i], 8, Comp8gbuf );
       onessort(toptr, nGroupbys[i]);

       for(j = 0; j < nGroupbys[i]; j++){
         toptr[nGroupbys[i]-1-j].tuple <<= (64-avp->nTopDims);
         swap8(&toptr[nGroupbys[i]-1-j].tuple);
         fwrite(&toptr[nGroupbys[i]-1-j].tuple, 8, 1, avp->groupbyFile);
       }
     }
   }
   FSEEK(avp->groupbyFile, 0L, SEEK_SET);
   if (toptr) free(toptr);
   return 0;
}
Exemplo n.º 11
0
long long mythen::stringToInt64(char *str)
{
    long long value = *reinterpret_cast<long long*>(str);
    if (isBigEndian_) swap8((char *)&value);
    return value;
}