2
Arguments description
• Function and line number in the code, where the exception is raised
In general terms it is valid to say this argument will be the same in most of the
possible cases, because is always the same routine where this exception is
raised.
#define kfbValid(data, len, type, bl) \
kfbValidPriv(data, len, type, bl, __FILE__, __LINE__).
• Field failing the validation
The ASM metadata is composed by many different structures like file directory,
disk directory, active change directory (ACDC), etc, which are organized by files
(asm file# between 1 and 255). Each file will be made of extents, which will be
made of ASM block (4096 bytes). Each block has a generic block header (kfbh),
and any of those fields can be validated.
kfbh.endian: 0 ; 0x000: 0x00
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 4 ; 0x002: KFBTYP_FILEDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 80 ; 0x004: T=0 NUMB=0x50
kfbh.block.obj: 1 ; 0x008: TYPE=0x0 NUMB=0x1
kfbh.check: 4268948098 ; 0x00c: 0xfe72fa82
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
A short description of each of the fields referenced above (file kf3.h):
kfbh.endian endianness of writer big or little endian
kfbh.hard H.A.R.D. magic # and block size
kfbh.type metadata block type (type of ASM metadata)
kfbh.datfmt metadata block data format
kfbh.block.blk block location of this block
kfbh.block.obj check value to verify consistency
kfbh.check change number of last change
kfbh.spare1 zero pad out to 32 bytes
kfbh.spare2 zero pad out to 32 bytes
A list of the fields reported by this error through different SR is:
endian_kfbh
obj_kfbl
hard_kfbh
type_kfbh
datfmt_kfbh
评论