]> gitweb.factorcode.org Git - factor.git/blob - extra/tools/image-analyzer/image-analyzer.factor
tools.image-analyzer: new set of vocabs for reading and analyzing factor images
[factor.git] / extra / tools / image-analyzer / image-analyzer.factor
1 USING: accessors arrays assocs classes.struct fry io io.encodings.binary
2 io.files io.streams.byte-array kernel kernel.private math sequences
3 tools.image-analyzer.code-heap-reader tools.image-analyzer.data-heap-reader
4 tools.image-analyzer.utils tools.image-analyzer.vm vm ;
5 IN: tools.image-analyzer
6
7 : code-heap>code-blocks ( code-heap -- code-blocks )
8     binary [ [ read-code-block ] consume-stream>sequence ] with-byte-reader ;
9
10 : data-heap>objects ( data-relocation-base data-heap -- object-assoc )
11     binary [ '[ _ read-object ] consume-stream>sequence ] with-byte-reader ;
12
13 : load-image ( image -- header data-heap code-heap )
14     binary [
15         image-header read-struct dup [
16             [ data-relocation-base>> ] [ data-size>> read ] bi
17             data-heap>objects
18         ]
19         [ code-size>> read code-heap>code-blocks ] bi
20     ] with-file-reader ;