From 36fc70160d1978ac84e192d66dd51df7f76076dd Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Fri, 18 Sep 2009 17:57:50 -0500 Subject: [PATCH] update tools.disassembler.udis structs --- basis/tools/disassembler/udis/udis.factor | 105 +++++++++++----------- 1 file changed, 53 insertions(+), 52 deletions(-) diff --git a/basis/tools/disassembler/udis/udis.factor b/basis/tools/disassembler/udis/udis.factor index aaa54ae527..89bd5f726c 100755 --- a/basis/tools/disassembler/udis/udis.factor +++ b/basis/tools/disassembler/udis/udis.factor @@ -4,7 +4,8 @@ USING: tools.disassembler namespaces combinators alien alien.syntax alien.c-types lexer parser kernel sequences layouts math math.order alien.libraries math.parser system make fry arrays libc destructors -tools.disassembler.utils splitting alien.data ; +tools.disassembler.utils splitting alien.data +classes.struct ; IN: tools.disassembler.udis << @@ -17,57 +18,57 @@ IN: tools.disassembler.udis LIBRARY: libudis86 -C-STRUCT: ud_operand - { "int" "type" } - { "uchar" "size" } - { "ulonglong" "lval" } - { "int" "base" } - { "int" "index" } - { "uchar" "offset" } - { "uchar" "scale" } ; +STRUCT: ud_operand + { type int } + { size uchar } + { lval ulonglong } + { base int } + { index int } + { offset uchar } + { scale uchar } ; -C-STRUCT: ud - { "void*" "inp_hook" } - { "uchar" "inp_curr" } - { "uchar" "inp_fill" } - { "FILE*" "inp_file" } - { "uchar" "inp_ctr" } - { "uchar*" "inp_buff" } - { "uchar*" "inp_buff_end" } - { "uchar" "inp_end" } - { "void*" "translator" } - { "ulonglong" "insn_offset" } - { "char[32]" "insn_hexcode" } - { "char[64]" "insn_buffer" } - { "uint" "insn_fill" } - { "uchar" "dis_mode" } - { "ulonglong" "pc" } - { "uchar" "vendor" } - { "struct map_entry*" "mapen" } - { "int" "mnemonic" } - { "ud_operand[3]" "operand" } - { "uchar" "error" } - { "uchar" "pfx_rex" } - { "uchar" "pfx_seg" } - { "uchar" "pfx_opr" } - { "uchar" "pfx_adr" } - { "uchar" "pfx_lock" } - { "uchar" "pfx_rep" } - { "uchar" "pfx_repe" } - { "uchar" "pfx_repne" } - { "uchar" "pfx_insn" } - { "uchar" "default64" } - { "uchar" "opr_mode" } - { "uchar" "adr_mode" } - { "uchar" "br_far" } - { "uchar" "br_near" } - { "uchar" "implicit_addr" } - { "uchar" "c1" } - { "uchar" "c2" } - { "uchar" "c3" } - { "uchar[256]" "inp_cache" } - { "uchar[64]" "inp_sess" } - { "ud_itab_entry*" "itab_entry" } ; +STRUCT: ud + { inp_hook void* } + { inp_curr uchar } + { inp_fill uchar } + { inp_file FILE* } + { inp_ctr uchar } + { inp_buff uchar* } + { inp_buff_end uchar* } + { inp_end uchar } + { translator void* } + { insn_offset ulonglong } + { insn_hexcode char[32] } + { insn_buffer char[64] } + { insn_fill uint } + { dis_mode uchar } + { pc ulonglong } + { vendor uchar } + { mapen void* } + { mnemonic int } + { operand ud_operand[3] } + { error uchar } + { pfx_rex uchar } + { pfx_seg uchar } + { pfx_opr uchar } + { pfx_adr uchar } + { pfx_lock uchar } + { pfx_rep uchar } + { pfx_repe uchar } + { pfx_repne uchar } + { pfx_insn uchar } + { default64 uchar } + { opr_mode uchar } + { adr_mode uchar } + { br_far uchar } + { br_near uchar } + { implicit_addr uchar } + { c1 uchar } + { c2 uchar } + { c3 uchar } + { inp_cache uchar[256] } + { inp_sess uchar[64] } + { itab_entry ud_itab_entry* } ; FUNCTION: void ud_translate_intel ( ud* u ) ; FUNCTION: void ud_translate_att ( ud* u ) ; @@ -98,7 +99,7 @@ FUNCTION: uint ud_insn_len ( ud* u ) ; FUNCTION: char* ud_lookup_mnemonic ( int c ) ; : ( -- ud ) - "ud" malloc-object &free + ud malloc-struct &free dup ud_init dup cell-bits ud_set_mode dup UD_SYN_INTEL ud_set_syntax ;