Opens the objects files, read the object file header and tests the appropriate fields.
The header layout can be officially found in $system.zguard.dobjfmt.
?TACL Routine
#FRAME
#PUSH file2test subv subv^test cnt e r p oct ipf
#PUSH ts
[#DEF file^hdr Struct
Begin
filler 180;
uint cts(0:2);
filler 302;
int2 ipf_addr;
int2 ipf_len;
uint ipf_flags;
int2 oct_addr;
uint oct_flags;
filler 8;
End;
]
[#CASE [#ARGUMENT /Value subv/Subvol Otherwise]
|1| #SET file2test [subv]
|2| #SET file2test [#DEFAULTS /Current/]
]
#SET subv^test [file2test]
#SET file2test [#NEXTFILENAME [file2test].A]
[#LOOP |While| [#MATCH [subv^test]* [file2test]] |Do|
[#IF [#FILEINFO /Code/[file2test]] = 100 |Then|
#SET e [#REQUESTER /Wait 512/Read [file2test] e r p]
[#CASE [e]
|0| #APPEND p >
Sink [#REQUESTER /Wait/Close e]
#EXTRACTV r file^hdr
#SET ipf [#COMPUTE file^hdr:ipf_flags / 16384]
#SET oct [#COMPUTE file^hdr:oct_flags / 16384]
#SET ts [#COMPUTE [file^hdr:cts(0)] * 4294967296
+ [file^hdr:cts(1)] * 65536
+ [file^hdr:cts(2)]
]
#output Compiled - [_contime_to_text [#CONTIME [ts]]]
#OUTPUT /Hold/[file2test]
#OUTPUT /Column 30,Hold/ [#CASE [oct]
| 0 1 | Not Axcel'd
| 2 | Axcel'd but disabled
| 3 | Axcel'd
]
#OUTPUT /column 60/ [#CASE [ipf]
| 0 1 | Not OCA'd
| 2 | OCA'd
| 3 | OCA'd but disabled
]
|Otherwise| #OUTPUT [file2test] - open error [e]
] == End Case
] == End if
#SET file2test [#NEXTFILENAME [file2test]]
] == End Loop
#UNFRAME
