31 #include "ArrayList.h"
37 #define KF_T_INTEGER 1
40 #define KF_T_LOGICAL 4
45 #define KF_BT_SUPERINDEX 2
50 #define KF_BIG_ENDIAN 1
51 #define KF_LITTLE_ENDIAN 2
54 #define KF_SIG "SUPERINDEX "
55 #define KF_EMPTY_SIG "EMPTY "
56 #define KF_SIG_LENGTH 32
59 #define KF_BLOCKLENGTH 4096
60 #define KF_N_DATATYPES 4
63 #define KF_SECTION_NAME_LENGTH 32
65 #define KF_NUM_SUPERINDEX_BLOCK_ENTRIES32 ((KF_BLOCKLENGTH-sizeof(KFSuperIndexBlockHeader32))/sizeof(KFSuperIndexBlockEntry32))
66 #define KF_NUM_INDEX_BLOCK_ENTRIES32 ((KF_BLOCKLENGTH-sizeof(KFIndexBlockHeader32))/sizeof(KFIndexBlockEntry32))
67 #define KF_NUM_SUPERINDEX_BLOCK_ENTRIES64 ((KF_BLOCKLENGTH-sizeof(KFSuperIndexBlockHeader64))/sizeof(KFSuperIndexBlockEntry64))
68 #define KF_NUM_INDEX_BLOCK_ENTRIES64 ((KF_BLOCKLENGTH-sizeof(KFIndexBlockHeader64))/sizeof(KFIndexBlockEntry64))
75 typedef long long INT64;
82 char name[KF_SIG_LENGTH];
89 char name[KF_SIG_LENGTH];
100 char name[KF_SECTION_NAME_LENGTH];
107 char name[KF_SECTION_NAME_LENGTH];
118 char name[KF_SECTION_NAME_LENGTH];
122 INT32 mxtype[KF_N_DATATYPES];
126 char name[KF_SECTION_NAME_LENGTH];
130 INT64 mxtype[KF_N_DATATYPES];
138 char name[KF_SECTION_NAME_LENGTH];
148 char name[KF_SECTION_NAME_LENGTH];
174 INT32 index[KF_N_DATATYPES];
177 INT64 index[KF_N_DATATYPES];
193 int indexHeaderLength;
194 int indexEntryLength;
195 int superIndexHeaderLength;
196 int superIndexEntryLength;
206 int totalIndexBlocks;
207 char name[KF_SECTION_NAME_LENGTH+1];
220 char name[KF_SECTION_NAME_LENGTH+1];
227 extern char *KFTypeNames[];
230 int getHostByteOrder();
234 int openKFFile(
KFFile *kf,
const char *name);
235 void closeKFFile (
KFFile *kf);
237 int getKFVariableLength(
KFFile *kf,
const char *name);
239 int getKFVariableUsedLength(
KFFile *kf,
const char *name);
241 int getKFVariableType(
KFFile *kf,
const char *name);
254 int getKFData(
KFFile *kf,
const char *name,
void *buf);
Definition: ArrayList.h:27