00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _BML_PROGRAM_H_
00020 #define _BML_PROGRAM_H_
00021
00026 program_t program_new();
00027 void program_free(vm_t, program_t);
00028
00029 void program_add_label(program_t,word_t,const char*);
00030 word_t program_label_to_ofs(program_t, const char*);
00031 const char* program_ofs_to_label(program_t, word_t);
00032
00033 word_t program_find_string(program_t, const char*);
00034 void program_write_code(program_t, word_t, word_t);
00035 void program_reserve_code(program_t, word_t);
00036 void program_reserve_data(program_t, word_t);
00037 word_t program_get_code_size(program_t);
00038 void program_fetch(program_t, word_t, word_t*, word_t*);
00039
00040 void program_serialize(vm_t vm, program_t p, writer_t w);
00041 program_t program_unserialize(vm_t vm, reader_t r);
00042
00043 const char* program_lookup_label(program_t p, word_t IP);
00044 const char* program_disassemble(vm_t vm, program_t p, word_t IP);
00045
00046 void program_dump_stats(program_t p);
00047
00050 #endif
00051