97 lines
2.0 KiB
Factor
97 lines
2.0 KiB
Factor
USING: alien.c-types assocs classes.struct kernel kernel.private vm ;
|
|
IN: tools.image-analyzer.vm
|
|
|
|
! These structs and words correspond to vm/image.hpp
|
|
STRUCT: image-header
|
|
{ magic cell_t }
|
|
{ version cell_t }
|
|
{ data-relocation-base cell_t }
|
|
{ data-size cell_t }
|
|
{ code-relocation-base cell_t }
|
|
{ code-size cell_t }
|
|
{ reserved-1 cell_t }
|
|
{ reserved-2 cell_t }
|
|
{ reserved-3 cell_t }
|
|
{ reserved-4 cell_t }
|
|
{ special-objects cell_t[special-object-count] } ;
|
|
|
|
! These structs and words correspond to vm/layouts.hpp
|
|
STRUCT: object
|
|
{ header cell_t } ;
|
|
|
|
STRUCT: alien
|
|
{ header cell_t }
|
|
{ base cell_t }
|
|
{ expired cell_t }
|
|
{ displacement cell_t }
|
|
{ address cell_t } ;
|
|
|
|
STRUCT: array
|
|
{ header cell_t }
|
|
{ capacity cell_t } ;
|
|
|
|
STRUCT: bignum
|
|
{ header cell_t }
|
|
{ capacity cell_t } ;
|
|
|
|
|
|
STRUCT: callstack
|
|
{ header cell_t }
|
|
{ length cell_t } ;
|
|
|
|
STRUCT: dll
|
|
{ header cell_t }
|
|
{ path cell_t }
|
|
{ handle void* } ;
|
|
|
|
STRUCT: quotation
|
|
{ header cell_t }
|
|
{ array cell_t }
|
|
{ cached_effect cell_t }
|
|
{ cache_counter cell_t }
|
|
{ entry_point cell_t } ;
|
|
|
|
STRUCT: string
|
|
{ header cell_t }
|
|
{ length cell_t }
|
|
{ aux cell_t }
|
|
{ hashcode cell_t } ;
|
|
|
|
STRUCT: tuple
|
|
{ header cell_t }
|
|
{ layout cell_t } ;
|
|
|
|
STRUCT: tuple-layout
|
|
{ header cell_t }
|
|
{ capacity cell_t }
|
|
{ klass cell_t }
|
|
{ size cell_t }
|
|
{ echelon cell_t } ;
|
|
|
|
STRUCT: word
|
|
{ header cell_t }
|
|
{ hashcode cell_t }
|
|
{ name cell_t }
|
|
{ vocabulary cell_t }
|
|
{ def cell_t }
|
|
{ props cell_t }
|
|
{ pic_def cell_t }
|
|
{ pic_tail_def cell_t }
|
|
{ subprimitive cell_t }
|
|
{ entry_point cell_t } ;
|
|
|
|
STRUCT: wrapper
|
|
{ header cell_t }
|
|
{ object cell_t } ;
|
|
|
|
! These structs and words correspond to vm/code_blocks.hpp
|
|
STRUCT: code-block
|
|
{ header cell_t }
|
|
{ owner cell_t }
|
|
{ parameters cell_t }
|
|
{ relocation cell_t } ;
|
|
|
|
TUPLE: heap-node address object payload ;
|
|
|
|
TUPLE: code-heap-node < heap-node free? gc-maps ;
|