/******************************************************************************
*
* NSSDC/CDF Header file for CDF library.
*
* Version 1.0, 11-Jun-04, Hughes STX.
*
* Modification history:
*
* V1.0 11-Jun-04, M Liu Original version (for CDF V2.8).
* Modified from cdflib.h for 64-bit addressing.
* V3.2 18-Jun-07, D Berger Added structures in support of metadata
* READONLY performance enhancement.
******************************************************************************/
#if !defined(CDFLIB64h_INCLUDEd__)
# define CDFLIB64h_INCLUDEd__
#include "cdfdist.h"
/*****************************************************************************
* CDF V3.0+ constants.
*****************************************************************************/
#define V3_CDR_OFFSET64 ((Int32) 0x00000008)
#define V3_CCR_OFFSET64 ((Int32) 0x00000008)
#define VDR_WASTED_SIZE64 148
/*****************************************************************************
* Miscellaneous macros.
*****************************************************************************/
#define SEEKv64(fp,offset,origin) (V_seek64(fp,offset,origin) == 0)
#define READv64(buffer,size,number,fp) \
(V_read64(buffer,size,number,fp) == number)
#define WRITEv64(buffer,size,number,fp) \
(V_write64(buffer,size,number,fp) == number)
#define CLOSEv64(fp,CDF,vStats) (V_close64(fp,CDF,vStats) == 0)
#define DELETEv64(fp,vStats) (V_delete64(fp,vStats) == 0)
#define CACHEv64(fp,nBuffers) (V_setcache64(fp,nBuffers) == 0)
#define FLUSHv64(fp) (V_flush64(fp) == 0)
/******************************************************************************
* LoadCVVRx/LoadVVRx.
******************************************************************************/
#define LoadCVVRx64(cvvr,recordsize,csize) \
cvvr.RecordSize = (OFF_T) (recordsize); \
cvvr.RecordType = CVVR_; \
cvvr.rfuA = (Int32) 0; \
cvvr.cSize = (OFF_T) (csize);
#define LoadVVRx64(vvr,recordsize) \
vvr.RecordSize = (OFF_T) (recordsize); \
vvr.RecordType = VVR_;
/******************************************************************************
* LoadAllocCVVR64/LoadAllocVVR64.
******************************************************************************/
#define LoadAllocCVVR64(alloc,firstrec,lastrec,csize,xsize) \
alloc.first = (Int32) (firstrec); \
alloc.last = (Int32) (lastrec); \
alloc.type = (int) CVVR_; \
alloc.cvvr64.cSize = (OFF_T) (csize); \
alloc.cvvr64.xSize = (OFF_T) (xsize);
#define LoadAllocVVR64(alloc,firstrec,lastrec,newvvr) \
alloc.first = (Int32) (firstrec); \
alloc.last = (Int32) (lastrec); \
alloc.type = (int) VVR_; \
alloc.vvr.new = (Logical) (newvvr);
/******************************************************************************
* Base record sizes (bytes).
******************************************************************************/
#define UUIR_BASE_SIZE64 12
#define UIR_BASE_SIZE64 28
#define CDR_BASE_SIZE64 56
#define GDR_BASE_SIZE64 84
#define zVDR_BASE_SIZE64 (88 + CDF_VAR_NAME_LEN256)
#define rVDR_BASE_SIZE64 (84 + CDF_VAR_NAME_LEN256)
#define VXR_BASE_SIZE64 (28 + (16 * NUM_VXR_ENTRIES))
#define VXRx_BASE_SIZE64 (28 + (16 * NUM_VXRx_ENTRIES))
#define VVR_BASE_SIZE64 12
#define ADR_BASE_SIZE64 (68 + CDF_ATTR_NAME_LEN256)
#define AEDR_BASE_SIZE64 56
#define CCR_BASE_SIZE64 32
#define CPR_BASE_SIZE64 24
#define SPR_BASE_SIZE64 24
#define CVVR_BASE_SIZE64 24
/******************************************************************************
* CCR structure/fields/offsets - Compressed CDF Record.
******************************************************************************/
struct CCRstruct64 {
OFF_T RecordSize; /* Size of record (bytes) */
Int32 RecordType; /* Type of record (ie. CCR) */
OFF_T CPRoffset; /* File offset to CPR (bytes). */
OFF_T uSize; /* Size of uncompressed CDF's IRs (bytes). This byte
count does NOT include the magic numbers. */
Int32 rfuA; /* Reserved for future use. Set to zero. */
};
#define CCR_RECORDSIZE_OFFSET64 0
#define CCR_RECORDTYPE_OFFSET64 8
#define CCR_CPROFFSET_OFFSET64 12
#define CCR_USIZE_OFFSET64 20
#define CCR_RFUa_OFFSET64 28
/******************************************************************************
* CDR structure/fields/offsets - CDF Descriptor Record.
******************************************************************************/
struct CDRstruct64 {
OFF_T RecordSize; /* Size of record (bytes) */
Int32 RecordType; /* Type of record (ie. CDR) */
OFF_T GDRoffset; /* File offset to GDR (bytes) */
Int32 Version; /* CDF Version Number */
Int32 Release; /* CDF Release Number */
Int32 Encoding; /* Encoding of CDF File */
Int32 Flags; /* Flags (see bit definitions). */
Int32 rfuA; /* reserved for future use (value = 0) */
Int32 rfuB; /* reserved for future use (value = 0) */
Int32 Increment; /* CDF Increment Number (Vversion.release.increment),
always 0 for V2.0 CDFs */
Int32 rfuD; /* reserved for future use (value = -1) */
Int32 rfuE; /* reserved for future use (value = -1) */
};
#define CDR_RECORDSIZE_OFFSET64 0
#define CDR_RECORDTYPE_OFFSET64 8
#define CDR_GDROFFSET_OFFSET64 12
#define CDR_VERSION_OFFSET64 20
#define CDR_RELEASE_OFFSET64 24
#define CDR_ENCODING_OFFSET64 28
#define CDR_FLAGS_OFFSET64 32
#define CDR_RFUa_OFFSET64 36
#define CDR_RFUb_OFFSET64 40
#define CDR_INCREMENT_OFFSET64 44
#define CDR_RFUd_OFFSET64 48
#define CDR_RFUe_OFFSET64 52
#define CDR_COPYRIGHT_OFFSET64 56
/******************************************************************************
* GDR structure/fields/offsets - Global Descriptor Record.
*
* Note(s):
* The Eof field was not maintained for V2.0 CDFs (it will contain a random
* value). When a V2.0 CDF is modified, the end-of-file will be determined and
* this field will be updated.
* Even though CDF_MAX_DIMS elements are allocated for the `rDimSizes'
* array, only those sizes which actually exist are written to the CDF file.
*
******************************************************************************/
struct GDRstruct64 {
OFF_T RecordSize; /* Size of current record (bytes) */
Int32 RecordType; /* Type of record (ie. GDR) */
OFF_T rVDRhead; /* File offset to first rVDR (bytes) */
OFF_T zVDRhead; /* CDF V2.0, value is undefined (random).
CDF V2.1, value = 0.
CDF V2.2, File offset to first zVDR (bytes). */
OFF_T ADRhead; /* File offset to first ADR (bytes) */
OFF_T eof; /* If V2.0 CDF, value is undefined.
If V2.1+ CDF, end-of-file (byte offset). */
Int32 NrVars; /* Number of rVariables */
Int32 NumAttr; /* Number of Attributes */
Int32 rMaxRec; /* Maximum rVariable record number written to. */
Int32 rNumDims; /* Number of CDF dimensions (for rVariables). */
Int32 NzVars; /* Number of zVariables. */
OFF_T UIRhead; /* File offset to first UIR (bytes). */
Int32 rfuC; /* reserved for future use (value = 0) */
Int32 rfuD; /* reserved for future use (value = -1) */
Int32 rfuE; /* reserved for future use (value = -1) */
Int32 rDimSizes[CDF_MAX_DIMS];
/* Size of each dimension (for rVariables). */
};
#define GDR_RECORDSIZE_OFFSET64 0
#define GDR_RECORDTYPE_OFFSET64 8
#define GDR_rVDRHEAD_OFFSET64 12
#define GDR_zVDRHEAD_OFFSET64 20
#define GDR_ADRHEAD_OFFSET64 28
#define GDR_EOF_OFFSET64 36
#define GDR_NrVARS_OFFSET64 44
#define GDR_NUMATTR_OFFSET64 48
#define GDR_rMAXREC_OFFSET64 52
#define GDR_rNUMDIMS_OFFSET64 56
#define GDR_NzVARS_OFFSET64 60
#define GDR_UIRHEAD_OFFSET64 64
#define GDR_RFUc_OFFSET64 72
#define GDR_RFUd_OFFSET64 76
#define GDR_RFUe_OFFSET64 80
#define GDR_rDIMSIZES_OFFSET64 84
/******************************************************************************
* rVDR/zVDR structure/fields/offsets - r/zVariable Descriptor Record.
******************************************************************************/
struct VDRstruct64 {
OFF_T RecordSize; /* Size of current record (bytes) */
Int32 RecordType; /* Type of record (eg. rVDR/zVDR) */
OFF_T VDRnext; /* File offset to next rVDR/zVDR (bytes). Note in
V2.0 CDFs this field was not set properly for the
last variable (rVariable). */
Int32 DataType; /* Data type of variable */
Int32 MaxRec; /* Maximum record number for variable */
OFF_T VXRhead; /* File offset to first VXR (bytes). Value will be
0 if MULTI_FILE format */
OFF_T VXRtail; /* File offset to last VXR (bytes). Value will be 0
if MULTI_FILE format */
Int32 Flags; /* Flags (see bit definitions). */
Int32 sRecords; /* Type of sparse records. NO_SPARSERECORDS,
PAD_SPARSERECORDS, or PREV_SPARSERECORDS. */
Int32 rfuB; /* reserved for future use (value = 0) */
Int32 rfuC; /* reserved for future use (value = -1) */
Int32 rfuF; /* reserved for future use (value = -1) */
Int32 NumElems; /* Number of elements of DataType (should be 1 if not
CDF_CHAR or CDF_UCHAR) */
Int32 Num; /* Variable number */
OFF_T CPRorSPRoffset; /* CPR/SPR offset depending on bits set in `Flags'.
If neither compression nor sparse arrays, set to
0xFFFFFFFF. */
Int32 blockingFactor; /* If uncompressed/unsparse:
Number of records to extend when new allocations
are necessary (if 0, use default). For multi-file
CDFs, extensions are always one record at a time.
For NRV variables this value is n/a (only one
record is ever written).
If compressed/sparse:
Number of (or maximum) records per block... */
char Name[CDF_VAR_NAME_LEN256+1];
/* Variable name */
Int32 zNumDims; /* Number of dimensions for zVariable. N/a if an
rVariable. */
Int32 zDimSizes[CDF_MAX_DIMS];
/* Dimension sizes for zVariable. N/a if an
rVariable. */
Int32 DimVarys[CDF_MAX_DIMS];
/* Dimension variances. */
/* Optional... PadValue with the given DataType. */
};
#define VDR_RECORDSIZE_OFFSET64 0
#define VDR_RECORDTYPE_OFFSET64 8
#define VDR_VDRNEXT_OFFSET64 12
#define VDR_DATATYPE_OFFSET64 20
#define VDR_MAXREC_OFFSET64 24
#define VDR_VXRHEAD_OFFSET64 28
#define VDR_VXRTAIL_OFFSET64 36
#define VDR_FLAGS_OFFSET64 44
#define VDR_sRECORDS_OFFSET64 48
#define VDR_RFUb_OFFSET64 52
#define VDR_RFUc_OFFSET64 56
#define VDR_RFUf_OFFSET64 60
#define VDR_NUMELEMS_OFFSET64 64
#define VDR_NUM_OFFSET64 68
#define VDR_CPRorSPR_OFFSET64 72
#define VDR_BLOCKING_OFFSET64 80
#define VDR_NAME_OFFSET64 84
#define rVDR_DIMVARYS_OFFSET64 340
#define rVDR_PADVALUE_OFFSETb64 340 /* Offset base (more will be added). */
#define zVDR_zNUMDIMS_OFFSET64 340
#define zVDR_zDIMSIZES_OFFSET64 344
#define zVDR_DIMVARYS_OFFSETb64 344 /* Offset base (more will be added). */
#define zVDR_PADVALUE_OFFSETb64 344 /* Offset base (more will be added). */
#define VDR_WASTED_OFFSET64 48
/******************************************************************************
* VXR structure/fields/offsets - Variable Index Record.
******************************************************************************/
struct VXRstruct64 {
OFF_T RecordSize; /* Size of current record (bytes) */
Int32 RecordType; /* Type of record (ie. VXR) */
OFF_T VXRnext; /* File offset to next VXR (bytes) */
Int32 Nentries; /* Number of index entries (entries not being used
contain -1 in each field) */
Int32 NusedEntries; /* Number of index entries actually used */
Int32 First[MAX_VXR_ENTRIES];
/* First record number in VVR */
Int32 Last[MAX_VXR_ENTRIES];
/* Last record number in VVR */
OFF_T Offset[MAX_VXR_ENTRIES];
/* File offset to VXR/VVR (bytes) */
};
#define VXR_RECORDSIZE_OFFSET64 0
#define VXR_RECORDTYPE_OFFSET64 8
#define VXR_VXRNEXT_OFFSET64 12
#define VXR_NENTRIES_OFFSET64 20
#define VXR_NUSEDENTRIES_OFFSET64 24
#define VXR_FIRSTREC_OFFSET64 28
/******************************************************************************
* VVR structure/fields/offsets - Variable Values Record.
******************************************************************************/
struct VVRstruct64 {
OFF_T RecordSize; /* Size of current record (bytes). */
Int32 RecordType; /* Type of record (ie. VVR). */
/* Bytes... */
};
#define VVR_RECORDSIZE_OFFSET64 0
#define VVR_RECORDTYPE_OFFSET64 8
/******************************************************************************
* ADR structure/fields/offsets - Attribute Descriptor Record.
******************************************************************************/
struct ADRstruct64 {
OFF_T RecordSize; /* Size of current record (bytes). */
Int32 RecordType; /* Type of record (ie. ADR). */
OFF_T ADRnext; /* File offset to next ADR (bytes). Note that in
V2.0 CDFs this field was not set properly for the
last attribute. */
OFF_T AgrEDRhead; /* File offset to first AgrEDR (bytes). */
Int32 Scope; /* Variable or global. */
Int32 Num; /* Attribute id number. */
Int32 NgrEntries; /* Number of attribute gEntries/rEntries. */
Int32 MAXgrEntry; /* Maximum attribute gEntry/rEntry number. */
Int32 rfuA; /* reserved for future use (value = 0). */
OFF_T AzEDRhead; /* File offset to first AzEDR (bytes). */
Int32 NzEntries; /* Number of attribute zEntries. */
Int32 MAXzEntry; /* Maximum attribute zEntry number. */
Int32 rfuE; /* Reserved for future use (value = -1). */
char Name[CDF_ATTR_NAME_LEN256+1];
/* Attribute name. */
struct AEDRstructExt64 **grAEDRList64;
/* List of grENTRYs related to an attribute. The list
is an array 0-MAXgrEntry, indexed by the entry
number. When there is no entry for the attribute,
the corresponding list item is NULL */
struct AEDRstructExt64 **zAEDRList64;
/* List of zENTRYs related to an attribute. The list
is an array 0-MAXgrEntry, indexed by the entry
number. When there is no entry for the attribute,
the corresponding list item is NULL */
};
#define ADR_RECORDSIZE_OFFSET64 0
#define ADR_RECORDTYPE_OFFSET64 8
#define ADR_ADRNEXT_OFFSET64 12
#define ADR_AgrEDRHEAD_OFFSET64 20
#define ADR_SCOPE_OFFSET64 28
#define ADR_NUM_OFFSET64 32
#define ADR_NgrENTRIES_OFFSET64 36
#define ADR_MAXgrENTRY_OFFSET64 40
#define ADR_RFUa_OFFSET64 44
#define ADR_AzEDRHEAD_OFFSET64 48
#define ADR_NzENTRIES_OFFSET64 56
#define ADR_MAXzENTRY_OFFSET64 60
#define ADR_RFUe_OFFSET64 64
#define ADR_NAME_OFFSET64 68
/******************************************************************************
* AgrEDR/AzEDR structure/fields/offsets - Attribute g/r/zEntry Descriptor
* Record.
******************************************************************************/
struct AEDRstruct64 {
OFF_T RecordSize; /* Size of current record (bytes) */
Int32 RecordType; /* Type of record (ie. AgrEDR/AzEDR) */
OFF_T AEDRnext; /* File offset to next AgrEDR/AzEDR. Note that in
V2.0 CDFs this field was not set properly for the
last entry (rEntry). */
Int32 AttrNum; /* Attribute Number */
Int32 DataType; /* Entry Data Type */
Int32 Num; /* Entry number (rVariable/zVariable number or
arbitrary global `entry' [gEntry] number) */
Int32 NumElems; /* Number of elements of DataType */
Int32 rfuA; /* reserved for future use (value = 0) */
Int32 rfuB; /* reserved for future use (value = 0) */
Int32 rfuC; /* reserved for future use (value = 0) */
Int32 rfuD; /* reserved for future use (value = -1) */
Int32 rfuE; /* reserved for future use (value = -1) */
};
/*****************************************************************************
* AEDRstructExt64 - structure that extends AEDRstruct to hold value data in
* support of the READONLY metadata enhancement.
****************************************************************************/
struct AEDRstructExt64 {
struct AEDRstruct64 AEDR;
/* The basic AEDR data. */
int ValueSize; /* The size in bytes of the value data. */
void *Value; /* The value data. */
};
#define AEDR_RECORDSIZE_OFFSET64 0
#define AEDR_RECORDTYPE_OFFSET64 8
#define AEDR_AEDRNEXT_OFFSET64 12
#define AEDR_ATTRNUM_OFFSET64 20
#define AEDR_DATATYPE_OFFSET64 24
#define AEDR_NUM_OFFSET64 28
#define AEDR_NUMELEMS_OFFSET64 32
#define AEDR_RFUa_OFFSET64 36
#define AEDR_RFUb_OFFSET64 40
#define AEDR_RFUc_OFFSET64 44
#define AEDR_RFUd_OFFSET64 48
#define AEDR_RFUe_OFFSET64 52
#define AEDR_VALUE_OFFSET64 56
/******************************************************************************
* CPR structure/fields/offsets - Compression Parameters Record.
******************************************************************************/
struct CPRstruct64 {
OFF_T RecordSize; /* Size of record (bytes) */
Int32 RecordType; /* Type of record (ie. CPR) */
Int32 cType; /* Type of compression. */
Int32 rfuA; /* Reserved for future use. Set to zero. */
Int32 pCount; /* Parameter count. */
Int32 cParms[CDF_MAX_PARMS];
/* Parameters. */
};
#define CPR_RECORDSIZE_OFFSET64 0
#define CPR_RECORDTYPE_OFFSET64 8
#define CPR_CTYPE_OFFSET64 12
#define CPR_RFUa_OFFSET64 16
#define CPR_PCOUNT_OFFSET64 20
#define CPR_CPARM1_OFFSET64 24
#define CPR_CPARM2_OFFSET64 28
#define CPR_CPARM3_OFFSET64 32
#define CPR_CPARM4_OFFSET64 36
#define CPR_CPARM5_OFFSET64 40
/******************************************************************************
* SPR structure/fields/offsets - Sparseness Parameters Record.
******************************************************************************/
struct SPRstruct64 {
OFF_T RecordSize; /* Size of record (bytes) */
Int32 RecordType; /* Type of record (ie. CPR) */
Int32 sArraysType; /* Type of array sparseness. */
Int32 rfuA; /* Reserved for future use. Set to zero. */
Int32 pCount; /* Parameter count. */
Int32 sArraysParms[CDF_MAX_PARMS];
/* Parameters. */
};
#define SPR_RECORDSIZE_OFFSET64 0
#define SPR_RECORDTYPE_OFFSET64 8
#define SPR_STYPE_OFFSET64 12
#define SPR_RFUa_OFFSET64 16
#define SPR_PCOUNT_OFFSET64 20
#define SPR_SPARM1_OFFSET64 24
#define SPR_SPARM2_OFFSET64 32
#define SPR_SPARM3_OFFSET64 32
#define SPR_SPARM4_OFFSET64 36
#define SPR_SPARM5_OFFSET64 40
/******************************************************************************
* CVVR structure/fields/offsets - Compressed Variable Values Record.
******************************************************************************/
struct CVVRstruct64 {
OFF_T RecordSize; /* Size of record (bytes) */
Int32 RecordType; /* Type of record (ie. CVVR) */
Int32 rfuA; /* Reserved for future use. Set to zero (0). */
OFF_T cSize; /* Size in bytes of compressed data. */
/* Bytes... */
/* Extra... */
};
#define CVVR_RECORDSIZE_OFFSET64 0
#define CVVR_RECORDTYPE_OFFSET64 8
#define CVVR_RFUa_OFFSET64 12
#define CVVR_CSIZE_OFFSET64 16
/******************************************************************************
* UIR structure/fields/offsets - Unused Internal Record.
******************************************************************************/
struct UIRstruct64 {
OFF_T RecordSize; /* Size of current record (bytes). */
Int32 RecordType; /* Type of record (ie. UIR). */
OFF_T NextUIR; /* File offset of next UIR (bytes). */
OFF_T PrevUIR; /* File offset of previous UIR (bytes). */
};
#define UIR_RECORDSIZE_OFFSET64 0
#define UIR_RECORDTYPE_OFFSET64 8
#define UIR_NEXTUIR_OFFSET64 12
#define UIR_PREVUIR_OFFSET64 20
/******************************************************************************
* Function prototypes.
******************************************************************************/
STATICforIDL CDFstatus ValidateCompression64 PROTOARGs((
long cType, long *cParms
));
STATICforIDL Logical Read32s_64 PROTOARGs((vFILE *fp, Int32 *buffer, int count));
STATICforIDL Logical Read64s_64 PROTOARGs((vFILE *fp, OFF_T *buffer, int count));
STATICforIDL CDFstatus WasteIR64 PROTOARGs((
struct CDFstruct *CDF, OFF_T offset, OFF_T size
));
STATICforIDL CDFstatus RecordByteOffset64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 phyRecN, OFF_T *offset
));
STATICforIDL CDFstatus AllocateRecords64 VARPROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, struct AllocStruct alloc
));
STATICforIDL CDFstatus PadUnRecords64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 firstRec, Int32 lastRec
));
STATICforIDL CDFstatus CloseVarFiles64 PROTOARGs((struct CDFstruct *CDF));
STATICforIDL Logical WriteAccess64 PROTOARGs((
struct CDFstruct *CDF, Logical forDelete, CDFstatus *pStatus
));
STATICforIDL CDFstatus WriteBuffer64 PROTOARGs((
struct CDFstruct *CDF, vFILE *fp, Int32 dataType, Int32 numElems,
void *buffer
));
STATICforIDL CDFstatus WriteVarElems64 PROTOARGs((
struct VarStruct *Var, vFILE *fp, OFF_T offset, Int32 numElems, void *buffer
));
STATICforIDL CDFstatus HyperRead64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, struct rdSTRUCT *rd,
void *buffer
));
STATICforIDL CDFstatus HyperReadDim64 PROTOARGs((
Int32 numDims, Int32 *dimSizes, Int32 *dimVarys, Int32 *indices,
Int32 *counts, Int32 *intervals, Int32 *nHypDimValues, Int32 *nPhyDimValues,
Logical *fullPhyDim, int firstDim, int dimIncr, Int32 recNum, Int32 offset,
void *buffer, void *phyBuffer, struct CDFstruct *CDF, struct VarStruct *Var
));
STATICforIDL CDFstatus HyperWrite64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, struct rdSTRUCT *rd,
void *buffer
));
STATICforIDL CDFstatus HyperWriteDim64 PROTOARGs((
Int32 numDims, Int32 *dimSizes, Int32 *dimVarys, Int32 *indices,
Int32 *counts, Int32 *intervals, Int32 *nHypDimValues, Int32 *nPhyDimValues,
Logical *fullPhyDim, int firstDim, int dimIncr, Int32 recNum, Int32 offset,
void *buffer, void *phyBuffer, struct CDFstruct *CDF, struct VarStruct *Var
));
STATICforIDL CDFstatus CDFcre64 PROTOARGs((
struct VAstruct *Va, struct CurStruct *Cur
));
STATICforIDL CDFstatus CDFdel64 PROTOARGs((
struct VAstruct *Va, struct CurStruct *Cur
));
STATICforIDL CDFstatus CDFclo64 PROTOARGs((
struct VAstruct *Va, struct CurStruct *Cur
));
STATICforIDL CDFstatus CDFget64 PROTOARGs((
struct VAstruct *Va, struct CurStruct *Cur
));
STATICforIDL CDFstatus CDFput1_64 PROTOARGs((
struct VAstruct *Va, struct CurStruct *Cur
));
STATICforIDL CDFstatus CDFput2_64 PROTOARGs((
struct VAstruct *Va, struct CurStruct *Cur
));
STATICforIDL CDFstatus CDFsel64 PROTOARGs((
struct VAstruct *Va, struct CurStruct *Cur
));
STATICforIDL CDFstatus CDFcon64 PROTOARGs((
struct VAstruct *Va, struct CurStruct *Cur
));
STATICforIDL CDFstatus ConfigureNEWzMode64 PROTOARGs((struct CDFstruct *CDF));
STATICforIDL void ResetReadOnlyState64 PROTOARGs((struct CDFstruct *CDF));
STATICforIDL CDFstatus UpdateNEWzMode PROTOARGs((struct CDFstruct *CDF));
STATICforIDL CDFstatus UpdateMaxRec64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 phyRecNum
));
STATICforIDL CDFstatus LocateCurrentVar64 PROTOARGs((
struct CDFstruct *CDF, Logical zOp, OFF_T *offset, Logical *zVar,
struct VarStruct **Var
));
STATICforIDL CDFstatus InitCurrentVar64 PROTOARGs((
struct CDFstruct *CDF, Logical zVar, struct VarStruct **Var
));
STATICforIDL CDFstatus InitVar64 PROTOARGs((
struct CDFstruct *CDF, Int32 varN, Logical zVar, struct VarStruct **Var
));
STATICforIDL CDFstatus InitVar2_64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var
));
STATICforIDL CDFstatus FindAttrByName64 PROTOARGs((
struct CDFstruct *CDF, char *searchName, OFF_T *offset
));
STATICforIDL CDFstatus FindAttrByNumber64 PROTOARGs((
struct CDFstruct *CDF, Int32 searchNum, OFF_T *offset
));
STATICforIDL CDFstatus FindEntryByNumber64 PROTOARGs((
struct CDFstruct *CDF, OFF_T ADRoffset, Logical zEntry, Int32 entryN,
OFF_T *offset
));
STATICforIDL CDFstatus OpenVar64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var
));
STATICforIDL CDFstatus FindVarByName64 PROTOARGs((
struct CDFstruct *CDF, char *searchName, OFF_T *offset, Logical *zVar,
struct VarStruct **Var
));
STATICforIDL CDFstatus FindVarByNumber64 PROTOARGs((
struct CDFstruct *CDF, Int32 searchNum, Logical zVar, OFF_T *offset
));
STATICforIDL CDFstatus FindLastAttr64 PROTOARGs((
struct CDFstruct *CDF, OFF_T *lastOffset
));
STATICforIDL CDFstatus FindLastEntry64 PROTOARGs((
struct CDFstruct *CDF, OFF_T ADRoffset, Logical zEntry, OFF_T *lastOffset
));
STATICforIDL CDFstatus FindPrevEntry64 PROTOARGs((
struct CDFstruct *CDF, OFF_T ADRoffset, OFF_T searchOffset, Logical zEntry,
OFF_T *prevOffset
));
STATICforIDL CDFstatus CheckEntryOp64 PROTOARGs((
struct CDFstruct *CDF, int entryType
));
STATICforIDL CDFstatus SetCURgrEntry64 PROTOARGs((
struct CDFstruct *CDF, Logical useCurrent, Int32 entryNum
));
STATICforIDL CDFstatus SetCURzEntry64 PROTOARGs((
struct CDFstruct *CDF, Logical useCurrent, Int32 entryNum
));
STATICforIDL CDFstatus CalcDimParms64 PROTOARGs((
struct CDFstruct *CDF, OFF_T offset, Logical zVar, Int32 *numDimsP,
Int32 dimSizesP[], Int32 dimVarysP[]
));
STATICforIDL CDFstatus AllocateIR64 PROTOARGs((
struct CDFstruct *CDF, OFF_T size, OFF_T *offset
));
STATICforIDL CDFstatus ResizeIR64 PROTOARGs((
struct CDFstruct *CDF, OFF_T curOffset, OFF_T newSize, OFF_T *newOffset,
Logical move, Logical *success
));
STATICforIDL CDFstatus RemoveUIRs64 PROTOARGs((
struct CDFstruct *CDF, OFF_T sOffset, OFF_T eOffset
));
STATICforIDL CDFstatus LastRecord64 PROTOARGs((
struct CDFstruct *CDF, OFF_T offset, Logical zVar, Int32 *recNum
));
STATICforIDL CDFstatus VerifyNoRecordsWritten64 PROTOARGs((
struct CDFstruct *CDF, Logical *no
));
STATICforIDL CDFstatus VerifyNoPadsSpecified64 PROTOARGs((
struct CDFstruct *CDF, Logical *no
));
STATICforIDL CDFstatus VerifyNoEntriesWritten64 PROTOARGs((
struct CDFstruct *CDF, Logical *no
));
STATICforIDL CDFstatus ReadIrSize64 PROTOARGs((
vFILE *fp, OFF_T offset, OFF_T *irSize
));
STATICforIDL CDFstatus ReadCDR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadGDR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadADR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadAEDR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadADRList64 PROTOARGs((vFILE *fp));
STATICforIDL CDFstatus ReadAEDRList64 PROTOARGs((
vFILE *fp, struct AEDRstructExt64 ***AEDRList, OFF_T AEDRHead,
Int32 MaxEntry
));
STATICforIDL CDFstatus ReadVDR64 VARPROTOARGs((
struct CDFstruct *CDF, vFILE *fp, OFF_T offset, Logical zVar, ...
));
STATICforIDL CDFstatus ReadVVR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadCCR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadCPR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadSPR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadCVVR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus ReadUIR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL Logical Write32_64 PROTOARGs((vFILE *fp, Int32 *value));
STATICforIDL Logical Write32s_64 PROTOARGs((vFILE *fp, Int32 *buffer, int count));
STATICforIDL Logical Write64 PROTOARGs((vFILE *fp, OFF_T *value));
STATICforIDL Logical Write64s PROTOARGs((vFILE *fp, OFF_T *buffer, int count));
STATICforIDL CDFstatus WriteIrSize64 PROTOARGs((
vFILE *fp, OFF_T offset, OFF_T *irSize
));
STATICforIDL CDFstatus WriteIrType64 PROTOARGs((
vFILE *fp, OFF_T offset, Int32 *irType
));
STATICforIDL CDFstatus WriteCDR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteGDR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteADR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteAEDR64 VARPROTOARGs((
struct CDFstruct *CDF, vFILE *fp, OFF_T offset, ...
));
STATICforIDL CDFstatus WriteVDR64 VARPROTOARGs((
struct CDFstruct *CDF, vFILE *fp, OFF_T offset, Logical zVar, ...
));
STATICforIDL CDFstatus WriteVXR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteVVR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteCCR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteCPR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteSPR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteCVVR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus WriteUIR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
STATICforIDL CDFstatus CorrectBlockingFactors64 PROTOARGs((
struct CDFstruct *CDF
));
STATICforIDL void AbortAccess64 PROTOARGs((
struct CDFstruct *CDF, Logical updateCDF, Logical deleteCDF
));
STATICforIDL CDFstatus DeleteCDFfiles64 PROTOARGs((struct CDFstruct *CDF));
STATICforIDL CDFstatus DeleteEntry64 PROTOARGs((
struct CDFstruct *CDF, OFF_T aOffset, OFF_T eOffset
));
STATICforIDL CDFstatus DecompressCDF64 PROTOARGs((vFILE *dotFp, vFILE *uDotFp));
STATICforIDL CDFstatus WriteCompressedCDF64 PROTOARGs((
struct CDFstruct *CDF, struct CPRstruct64 *CPR, Logical empty
));
STATICforIDL CDFstatus CopyCDF64 PROTOARGs((vFILE *srcFp, vFILE *destFp));
STATICforIDL CDFstatus CompressRLE0_64 PROTOARGs((
vFILE *srcFp, OFF_T srcOffset, OFF_T srcSize, CDFstatus srcError,
vFILE *destFp, OFF_T destOffset, OFF_T *destSize, CDFstatus destError
));
STATICforIDL CDFstatus DecompressRLE0_64 PROTOARGs((
vFILE *srcFp, OFF_T srcOffset, OFF_T srcSize, CDFstatus srcError,
vFILE *destFp, OFF_T destOffset, CDFstatus destError
));
STATICforIDL CDFstatus CompressHUFF0_64 PROTOARGs((
vFILE *input, OFF_T iOffset, OFF_T iSize, CDFstatus iError,
vFILE *oFp, OFF_T oOffset, OFF_T *oSize, CDFstatus oError
));
STATICforIDL CDFstatus DecompressHUFF0_64 PROTOARGs((
vFILE *iFp, OFF_T iOffset, CDFstatus iError,
vFILE *output, OFF_T oOffset, CDFstatus oError
));
STATICforIDL CDFstatus CompressAHUFF0_64 PROTOARGs((
vFILE *input, OFF_T iOffset, OFF_T iSize, CDFstatus iError,
vFILE *oFp, OFF_T oOffset, OFF_T *oSize, CDFstatus oError
));
STATICforIDL CDFstatus DecompressAHUFF0_64 PROTOARGs((
vFILE *iFp, OFF_T iOffset, CDFstatus iError,
vFILE *output, OFF_T oOffset, CDFstatus oError
));
STATICforIDL CDFstatus CompressGZIP_64 PROTOARGs((
vFILE *srcFp, OFF_T srcOffset, OFF_T srcSize, CDFstatus srcError,
vFILE *destFp, OFF_T destOffset, OFF_T *destSize, CDFstatus destError,
Int32 level
));
STATICforIDL CDFstatus DecompressGZIP_64 PROTOARGs((
vFILE *srcFp, OFF_T srcOffset, CDFstatus srcError, vFILE *destFp,
OFF_T destOffset, CDFstatus destError
));
/*
STATICforIDL CDFstatus CompressZLIB0_64 PROTOARGs((
vFILE *srcFp, OFF_T srcOffset, OFF_T srcSize, CDFstatus srcError,
vFILE *destFp, OFF_T destOffset, OFF_T *destSize, CDFstatus destError
));
STATICforIDL CDFstatus DecompressZLIB0_64 PROTOARGs((
vFILE *srcFp, OFF_T srcOffset, OFF_T iSize, CDFstatus srcError,
vFILE *destFp, OFF_T destOffset, CDFstatus destError
));
*/
STATICforIDL CDFstatus WriteVarValues64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 recNum, Int32 offset,
Int32 nValues, void *buffer
));
STATICforIDL CDFstatus SearchForRecord64 PROTOARGs((
struct CDFstruct *CDF, OFF_T VDRoffset, Logical zVar, Int32 recNum,
Int32 *firstRec, Int32 *lastRec, OFF_T *offset, Logical *found
));
STATICforIDL CDFstatus IndexingStatistics64 PROTOARGs((
struct CDFstruct *CDF, OFF_T VDRoffset, Logical zVar, Int32 *nVXRsP,
Int32 *nEntriesP, Int32 *nAllocP, Int32 *nRecordsP, Int32 *nLevelsP
));
STATICforIDL CDFstatus DefaultPadBuffer64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 nValues, void *buffer
));
STATICforIDL CDFstatus PadBuffer64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 nValues, void *buffer
));
STATICforIDL CDFstatus BuildPadBuffer64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 nRecords, int *how,
void **buffer, Logical encode
));
STATICforIDL CDFstatus WritePadValues64 PROTOARGs((
struct VarStruct *Var, vFILE *fp, OFF_T offset, Int32 nRecords, int how,
void *buffer
));
STATICforIDL CDFstatus ReadVarElems64 PROTOARGs((
struct VarStruct *Var, vFILE *fp, OFF_T offset, Int32 numElems, void *buffer
));
STATICforIDL CDFstatus ReadVarValues64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 recNum, Int32 offset,
Int32 nValues, void *buffer
));
STATICforIDL CDFstatus PrevRecord64 PROTOARGs((
struct CDFstruct *CDF, OFF_T VDRoffset, Logical zVar, Int32 baseRec,
Int32 *prevRec, Logical *found
));
STATICforIDL CDFstatus NextRecord64 PROTOARGs((
struct CDFstruct *CDF, OFF_T VDRoffset, Logical zVar, Int32 baseRec,
Int32 *nextRec, Logical *found
));
STATICforIDL CDFstatus VariableType64 PROTOARGs((
struct CDFstruct *CDF, OFF_T vdrOffset, Logical zVar, int *vType
));
STATICforIDL CDFstatus InitVarStage64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 nBytes
));
STATICforIDL CDFstatus CopyBytes64 PROTOARGs((
vFILE *iFp, OFF_T iStart, CDFstatus iError, OFF_T nBytes, vFILE *oFp,
OFF_T oStart, CDFstatus oError
));
STATICforIDL CDFstatus ModIndexOffset64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, Int32 firstRec, Int32 lastRec,
OFF_T newOffset
));
STATICforIDL CDFstatus InitScratch64 PROTOARGs((
char *scratchDir, vFILE **scratchFpH, int cacheSize
));
STATICforIDL CDFstatus CalcBF64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var
));
STATICforIDL CDFstatus CalcCompressionPct64 PROTOARGs((
struct CDFstruct *CDF, OFF_T vdrOffset, Logical zVar, long *cPct
));
STATICforIDL CDFstatus CalcPhyRecBytes64 PROTOARGs((
struct CDFstruct *CDF, OFF_T vdrOffset, Logical zVar, Int32 *nPhyRecBytes
));
STATICforIDL void InitNewVXR64 PROTOARGs((
struct VXRstruct64 *VXR, Int32 firstRec, Int32 lastRec, OFF_T offset
));
STATICforIDL CDFstatus UpdateVXRtailInVDR64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var
));
STATICforIDL CDFstatus UpdateConversions64 PROTOARGs((struct CDFstruct *CDF));
STATICforIDL CDFstatus Compress64 PROTOARGs((
vFILE *iFp, OFF_T iOffset, OFF_T iSize, CDFstatus iError, Int32 cType,
Int32 cParms[], vFILE *oFp, OFF_T oOffset, OFF_T *oSize, CDFstatus oError
));
STATICforIDL CDFstatus Decompress64 PROTOARGs((
vFILE *iFp, OFF_T iOffset, OFF_T iSize, CDFstatus iError, Int32 cType,
Int32 cParms[], vFILE *oFp, OFF_T oOffset, CDFstatus oError
));
STATICforIDL CDFstatus DecompressToStage64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var, OFF_T offset, OFF_T uSize
));
STATICforIDL CDFstatus FlushStage64 PROTOARGs((
struct CDFstruct *CDF, struct VarStruct *Var
));
#if defined(__cplusplus)
extern "C" {
#endif
VISIBLE_PREFIX Logical Read32_64 PROTOARGs((vFILE *fp, Int32 *value));
VISIBLE_PREFIX Logical Read64_64 PROTOARGs((vFILE *fp, OFF_T *value));
#if !defined(__CFM68K__) || defined(__USING_STATIC_LIBS__) || !defined(CFM68KDLL)
VISIBLE_PREFIX CDFstatus UpdateDotCDF64 PROTOARGs((struct CDFstruct *CDF));
#endif
VISIBLE_PREFIX vFILE *V_open64 PROTOARGs((char *file_spec, char *a_mode));
VISIBLE_PREFIX int V_setcache64 PROTOARGs((vFILE *vfp, int nCacheBuffers));
VISIBLE_PREFIX int V_seek64 PROTOARGs((vFILE *vfp, OFF_T offset, int direction));
VISIBLE_PREFIX OFF_T V_tell64 PROTOARGs((vFILE *vfp));
VISIBLE_PREFIX size_t V_read64 PROTOARGs((
void *buffer, size_t item_size, size_t n_items, vFILE *vfp
));
VISIBLE_PREFIX size_t V_write64 PROTOARGs((
void *buffer, size_t item_size, size_t n_items, vFILE *vfp
));
VISIBLE_PREFIX int V_getc64 PROTOARGs((vFILE *fp));
VISIBLE_PREFIX int V_putc64 PROTOARGs((int value, vFILE *fp));
VISIBLE_PREFIX int V_flush64 PROTOARGs((vFILE *vfp));
VISIBLE_PREFIX int V_close64 PROTOARGs((vFILE *vfp, struct CDFstruct *CDF,
vSTATS *vStats));
VISIBLE_PREFIX int V_delete64 PROTOARGs((vFILE *vFp, vSTATS *vStats));
VISIBLE_PREFIX Logical FlushCache64 PROTOARGs((vFILE *vFp,
vCACHE *firstCache));
VISIBLE_PREFIX CDFstatus ReadVXR64 VARPROTOARGs((vFILE *fp, OFF_T offset, ...));
VISIBLE_PREFIX CDFstatus ReadIrType64 PROTOARGs((
vFILE *fp, OFF_T offset, Int32 *irType
));
VISIBLE_PREFIX CDFstatus CheckLFS VARPROTOARGs((char *name, Logical *isLFS,
char *fullName
));
VISIBLE_PREFIX CDFstatus CheckLFSx VARPROTOARGs((char *name, Logical *isLFS));
VISIBLE_PREFIX void CDFsetFileBackward2 PROTOARGs((
int flag
));
VISIBLE_PREFIX long ChecksumMethod PROTOARGs((Int32 flags));
VISIBLE_PREFIX int CDFgetChecksumEnvVar PROTOARGs(());
VISIBLE_PREFIX CDFstatus CDFVerifyChecksum PROTOARGs((
struct CDFstruct *CDF
));
VISIBLE_PREFIX CDFstatus CDFAddChecksum PROTOARGs((
struct CDFstruct *CDF
));
#if defined(__cplusplus)
}
#endif
/*****************************************************************************/
#endif
syntax highlighted by Code2HTML, v. 0.9.1