/* Copyright 2018, UCAR/Unidata. See the COPYRIGHT file for more information. */ #include "d4includes.h" /* Provide a simple dump of binary data */ /**************************************************/ void NCD4_dumpbytes(size_t size, const void* data0, int swap) { size_t extended; void* data; char* pos; size_t i; extended = size + 8; data = calloc(1,extended); /* provide some space to simplify the code */ memcpy(data,data0,size); for(i=0,pos=data;i= 0x7f) v.s[0] = '?'; fprintf(stderr,"[%03lu] %02x %03u %4d", (unsigned long)i, v.u8[0], v.u8[0], v.i8[0]); fprintf(stderr," 0x%08x %12u %13d", v.u32[0], v.u32[0], v.i32[0]); fprintf(stderr," 0x%04x %06u %7d", v.u16[0], v.u16[0], v.i16[0]); fprintf(stderr," '%s'\n",v.s); fflush(stderr); } } void NCD4_tagdump(size_t size, const void* data0, int swap, const char* tag) { fprintf(stderr,"++++++++++ %s ++++++++++\n",tag); NCD4_dumpbytes(size,data0,swap); fprintf(stderr,"++++++++++ %s ++++++++++\n",tag); fflush(stderr); } /* Dump the variables in a group */ void NCD4_dumpvars(NCD4node* group) { int i; fprintf(stderr,"%s.vars:\n",group->name); for(i=0;ivars);i++) { NCD4node* var = (NCD4node*)nclistget(group->vars,i); NCD4node* type; switch (var->subsort) { default: type = var->basetype; fprintf(stderr,"<%s name=\"%s\"/>\n",type->name,var->name); break; case NC_STRUCT: fprintf(stderr,"<%s name=\"%s\"/>\n","Struct",var->name); break; case NC_SEQ: fprintf(stderr,"<%s name=\"%s\"/>\n","Sequence",var->name); break; } } fflush(stderr); } union ATOMICS* NCD4_dumpatomic(NCD4node* var, void* data) { union ATOMICS* p = (union ATOMICS*)data; return p; }