config_stubs.c (18021B)
1 #include <kit/archive.h> 2 #include <kit/config.h> 3 #include <kit/dbg.h> 4 #include <kit/disasm.h> 5 #include <kit/dwarf.h> 6 #include <kit/emu.h> 7 #include <kit/jit.h> 8 #include <kit/link.h> 9 10 #include "core/core.h" 11 #include "debug/debug.h" 12 #include "link/link.h" 13 14 #if !KIT_AR_ENABLED 15 KitStatus kit_ar_write(KitWriter* out, const KitArInput* members, 16 uint32_t nmembers, const KitArWriteOptions* opts) { 17 (void)out; 18 (void)members; 19 (void)nmembers; 20 (void)opts; 21 return KIT_UNSUPPORTED; 22 } 23 24 KitStatus kit_ar_list(const KitSlice* archive, KitWriter* out) { 25 (void)archive; 26 (void)out; 27 return KIT_UNSUPPORTED; 28 } 29 30 KitStatus kit_ar_iter_new(const KitContext* ctx, const KitSlice* archive, 31 KitArIter** out) { 32 (void)ctx; 33 (void)archive; 34 if (out) *out = NULL; 35 return KIT_UNSUPPORTED; 36 } 37 38 KitIterResult kit_ar_iter_next(KitArIter* it, KitArMember* out) { 39 (void)it; 40 (void)out; 41 return KIT_ITER_ERROR; 42 } 43 44 void kit_ar_iter_free(KitArIter* it) { (void)it; } 45 #endif 46 47 #if !KIT_DISASM_ENABLED 48 KitStatus kit_disasm_iter_new(const KitDisasmContext* dctx, 49 const uint8_t* bytes, size_t len, uint64_t vaddr, 50 const KitObjFile* annotations, 51 KitDisasmIter** out) { 52 (void)dctx; 53 (void)bytes; 54 (void)len; 55 (void)vaddr; 56 (void)annotations; 57 if (out) *out = NULL; 58 return KIT_UNSUPPORTED; 59 } 60 61 KitIterResult kit_disasm_iter_next(KitDisasmIter* it, KitInsn* out) { 62 (void)it; 63 (void)out; 64 return KIT_ITER_ERROR; 65 } 66 67 void kit_disasm_iter_free(KitDisasmIter* it) { (void)it; } 68 69 KitStatus kit_disasm_obj(const KitContext* ctx, const KitObjFile* obj, 70 KitWriter* out) { 71 (void)ctx; 72 (void)obj; 73 (void)out; 74 return KIT_UNSUPPORTED; 75 } 76 77 KitStatus kit_disasm_obj_bytes(const KitContext* ctx, const KitSlice* bytes, 78 KitWriter* out) { 79 (void)ctx; 80 (void)bytes; 81 (void)out; 82 return KIT_UNSUPPORTED; 83 } 84 #endif 85 86 #if !KIT_DWARF_ENABLED 87 Debug* debug_new(Compiler* c, ObjBuilder* ob) { 88 (void)c; 89 (void)ob; 90 return NULL; 91 } 92 93 void debug_free(Debug* d) { (void)d; } 94 u32 debug_file(Debug* d, u32 source_file_id) { 95 (void)d; 96 (void)source_file_id; 97 return 0; 98 } 99 100 DebugTypeId debug_type_base(Debug* d, Sym name, DebugBaseEncoding enc, 101 u32 byte_size) { 102 (void)d; 103 (void)name; 104 (void)enc; 105 (void)byte_size; 106 return DEBUG_TYPE_NONE; 107 } 108 109 DebugTypeId debug_type_void(Debug* d) { 110 (void)d; 111 return DEBUG_TYPE_NONE; 112 } 113 114 DebugTypeId debug_type_ptr(Debug* d, DebugTypeId pointee) { 115 (void)d; 116 (void)pointee; 117 return DEBUG_TYPE_NONE; 118 } 119 120 DebugTypeId debug_type_array(Debug* d, DebugTypeId elem, u32 count) { 121 (void)d; 122 (void)elem; 123 (void)count; 124 return DEBUG_TYPE_NONE; 125 } 126 127 DebugTypeId debug_type_const(Debug* d, DebugTypeId base) { 128 (void)d; 129 (void)base; 130 return DEBUG_TYPE_NONE; 131 } 132 133 DebugTypeId debug_type_volatile(Debug* d, DebugTypeId base) { 134 (void)d; 135 (void)base; 136 return DEBUG_TYPE_NONE; 137 } 138 139 DebugTypeId debug_type_restrict(Debug* d, DebugTypeId base) { 140 (void)d; 141 (void)base; 142 return DEBUG_TYPE_NONE; 143 } 144 145 DebugTypeId debug_type_typedef(Debug* d, Sym name, DebugTypeId base) { 146 (void)d; 147 (void)name; 148 (void)base; 149 return DEBUG_TYPE_NONE; 150 } 151 152 DebugTypeId debug_type_func(Debug* d, DebugTypeId ret, 153 const DebugTypeId* params, u32 nparams, 154 int variadic) { 155 (void)d; 156 (void)ret; 157 (void)params; 158 (void)nparams; 159 (void)variadic; 160 return DEBUG_TYPE_NONE; 161 } 162 163 DebugTypeBuilder* debug_type_record_begin(Debug* d, Sym tag, int is_union, 164 u32 byte_size, u32 align) { 165 (void)d; 166 (void)tag; 167 (void)is_union; 168 (void)byte_size; 169 (void)align; 170 return NULL; 171 } 172 173 void debug_type_record_field(DebugTypeBuilder* b, Sym name, DebugTypeId type, 174 u32 byte_offset) { 175 (void)b; 176 (void)name; 177 (void)type; 178 (void)byte_offset; 179 } 180 181 void debug_type_record_bitfield(DebugTypeBuilder* b, Sym name, DebugTypeId type, 182 u32 byte_offset, u16 bit_offset, 183 u16 bit_width) { 184 (void)b; 185 (void)name; 186 (void)type; 187 (void)byte_offset; 188 (void)bit_offset; 189 (void)bit_width; 190 } 191 192 DebugTypeId debug_type_record_end(DebugTypeBuilder* b) { 193 (void)b; 194 return DEBUG_TYPE_NONE; 195 } 196 197 DebugEnumBuilder* debug_type_enum_begin(Debug* d, Sym tag, DebugTypeId base) { 198 (void)d; 199 (void)tag; 200 (void)base; 201 return NULL; 202 } 203 204 void debug_type_enum_value(DebugEnumBuilder* b, Sym name, i64 value) { 205 (void)b; 206 (void)name; 207 (void)value; 208 } 209 210 DebugTypeId debug_type_enum_end(DebugEnumBuilder* b) { 211 (void)b; 212 return DEBUG_TYPE_NONE; 213 } 214 215 void debug_func_begin(Debug* d, ObjSymId sym, DebugTypeId fn_type, 216 SrcLoc decl) { 217 (void)d; 218 (void)sym; 219 (void)fn_type; 220 (void)decl; 221 } 222 223 void debug_func_select(Debug* d, ObjSymId sym) { 224 (void)d; 225 (void)sym; 226 } 227 228 void debug_func_pc_range(Debug* d, ObjSecId text_section_id, u32 begin_ofs, 229 u32 end_ofs) { 230 (void)d; 231 (void)text_section_id; 232 (void)begin_ofs; 233 (void)end_ofs; 234 } 235 236 void debug_func_end(Debug* d) { (void)d; } 237 238 void debug_prune_removed_funcs(Debug* d) { (void)d; } 239 240 void debug_scope_begin(Debug* d, SrcLoc loc) { 241 (void)d; 242 (void)loc; 243 } 244 void debug_scope_end(Debug* d, SrcLoc loc) { 245 (void)d; 246 (void)loc; 247 } 248 249 void debug_param(Debug* d, Sym name, DebugTypeId type, SrcLoc loc, u32 idx, 250 DebugVarLoc var_loc) { 251 (void)d; 252 (void)name; 253 (void)type; 254 (void)loc; 255 (void)idx; 256 (void)var_loc; 257 } 258 259 void debug_local(Debug* d, Sym name, DebugTypeId type, SrcLoc loc, 260 DebugVarLoc var_loc) { 261 (void)d; 262 (void)name; 263 (void)type; 264 (void)loc; 265 (void)var_loc; 266 } 267 268 void debug_line(Debug* d, ObjSecId text_section_id, u32 text_offset, SrcLoc loc, 269 int is_stmt) { 270 (void)d; 271 (void)text_section_id; 272 (void)text_offset; 273 (void)loc; 274 (void)is_stmt; 275 } 276 277 void debug_set_pending_loc(Debug* d, SrcLoc loc) { 278 (void)d; 279 (void)loc; 280 } 281 282 void debug_emit_row(Debug* d, ObjSecId text_section_id, u32 text_offset, 283 SrcLoc loc) { 284 (void)d; 285 (void)text_section_id; 286 (void)text_offset; 287 (void)loc; 288 } 289 290 u32 debug_loclist_new(Debug* d) { 291 (void)d; 292 return 0; 293 } 294 295 void debug_loclist_add(Debug* d, u32 id, u32 begin_pc, u32 end_pc, 296 DebugVarLoc loc) { 297 (void)d; 298 (void)id; 299 (void)begin_pc; 300 (void)end_pc; 301 (void)loc; 302 } 303 304 void debug_emit(Debug* d) { (void)d; } 305 306 KitStatus kit_dwarf_open(const KitContext* ctx, const KitObjFile* obj, 307 KitDebugInfo** out) { 308 (void)ctx; 309 (void)obj; 310 if (out) *out = NULL; 311 return KIT_UNSUPPORTED; 312 } 313 314 void kit_dwarf_free(KitDebugInfo* d) { (void)d; } 315 316 KitStatus kit_dwarf_addr_to_line(KitDebugInfo* d, uint64_t pc, 317 KitSlice* file_out, uint32_t* line_out, 318 uint32_t* col_out) { 319 (void)d; 320 (void)pc; 321 (void)file_out; 322 (void)line_out; 323 (void)col_out; 324 return KIT_UNSUPPORTED; 325 } 326 327 KitStatus kit_dwarf_line_to_addr(KitDebugInfo* d, KitSlice file, uint32_t line, 328 uint64_t* pc_out) { 329 (void)d; 330 (void)file; 331 (void)line; 332 (void)pc_out; 333 return KIT_UNSUPPORTED; 334 } 335 336 KitStatus kit_dwarf_line_to_addr_all(KitDebugInfo* d, KitSlice file, 337 uint32_t line, KitDwarfLineMatch* out, 338 uint32_t cap, uint32_t* n_out) { 339 (void)d; 340 (void)file; 341 (void)line; 342 (void)out; 343 (void)cap; 344 if (n_out) *n_out = 0; 345 return KIT_UNSUPPORTED; 346 } 347 348 KitStatus kit_dwarf_func_at(KitDebugInfo* d, uint64_t pc, KitSlice* name_out, 349 uint64_t* low_pc_out, uint64_t* high_pc_out) { 350 (void)d; 351 (void)pc; 352 (void)name_out; 353 (void)low_pc_out; 354 (void)high_pc_out; 355 return KIT_UNSUPPORTED; 356 } 357 358 KitStatus kit_dwarf_subprogram_at(KitDebugInfo* d, uint64_t pc, 359 KitDwarfSubprogram* out) { 360 (void)d; 361 (void)pc; 362 (void)out; 363 return KIT_UNSUPPORTED; 364 } 365 366 KitStatus kit_dwarf_subprogram_named(KitDebugInfo* d, KitSlice name, 367 KitDwarfSubprogram* out) { 368 (void)d; 369 (void)name; 370 (void)out; 371 return KIT_UNSUPPORTED; 372 } 373 374 KitStatus kit_dwarf_unwind_step(KitDebugInfo* d, KitUnwindFrame* frame) { 375 (void)d; 376 (void)frame; 377 return KIT_UNSUPPORTED; 378 } 379 380 KitDwarfTypeInfo kit_dwarf_type_info(const KitDwarfType* t) { 381 KitDwarfTypeInfo info; 382 (void)t; 383 info.kind = KIT_DT_VOID; 384 info.byte_size = 0; 385 info.name = KIT_SLICE_NULL; 386 info.element_count = 0; 387 info.inner = NULL; 388 return info; 389 } 390 391 KitStatus kit_dwarf_field_iter_new(KitDebugInfo* d, const KitDwarfType* t, 392 KitDwarfFieldIter** out) { 393 (void)d; 394 (void)t; 395 if (out) *out = NULL; 396 return KIT_UNSUPPORTED; 397 } 398 399 KitIterResult kit_dwarf_field_iter_next(KitDwarfFieldIter* it, 400 KitDwarfField* out) { 401 (void)it; 402 (void)out; 403 return KIT_ITER_ERROR; 404 } 405 406 void kit_dwarf_field_iter_free(KitDwarfFieldIter* it) { (void)it; } 407 408 KitStatus kit_dwarf_enum_iter_new(KitDebugInfo* d, const KitDwarfType* t, 409 KitDwarfEnumIter** out) { 410 (void)d; 411 (void)t; 412 if (out) *out = NULL; 413 return KIT_UNSUPPORTED; 414 } 415 416 KitIterResult kit_dwarf_enum_iter_next(KitDwarfEnumIter* it, 417 KitDwarfEnumVal* out) { 418 (void)it; 419 (void)out; 420 return KIT_ITER_ERROR; 421 } 422 423 void kit_dwarf_enum_iter_free(KitDwarfEnumIter* it) { (void)it; } 424 425 KitStatus kit_dwarf_var_at(KitDebugInfo* d, uint64_t pc, KitSlice name, 426 KitDwarfVarLoc* out) { 427 (void)d; 428 (void)pc; 429 (void)name; 430 (void)out; 431 return KIT_UNSUPPORTED; 432 } 433 434 KitStatus kit_dwarf_loc_read(KitDebugInfo* d, const KitDwarfVarLoc* loc, 435 const KitUnwindFrame* frame, 436 KitDwarfReadMemFn read_mem, void* read_user, 437 void* dst, size_t cap, size_t* read_out) { 438 (void)d; 439 (void)loc; 440 (void)frame; 441 (void)read_mem; 442 (void)read_user; 443 (void)dst; 444 (void)cap; 445 if (read_out) *read_out = 0; 446 return KIT_UNSUPPORTED; 447 } 448 449 KitStatus kit_dwarf_vars_at_new(KitDebugInfo* d, uint64_t pc, 450 uint32_t role_mask, KitDwarfVarIter** out) { 451 (void)d; 452 (void)pc; 453 (void)role_mask; 454 if (out) *out = NULL; 455 return KIT_UNSUPPORTED; 456 } 457 458 KitIterResult kit_dwarf_vars_at_next(KitDwarfVarIter* it, KitDwarfVar* out) { 459 (void)it; 460 (void)out; 461 return KIT_ITER_ERROR; 462 } 463 464 void kit_dwarf_vars_at_free(KitDwarfVarIter* it) { (void)it; } 465 466 KitStatus kit_dwarf_param_iter_new(KitDebugInfo* d, uint64_t pc, 467 KitDwarfParamIter** out) { 468 (void)d; 469 (void)pc; 470 if (out) *out = NULL; 471 return KIT_UNSUPPORTED; 472 } 473 474 KitStatus kit_dwarf_param_iter_new_named(KitDebugInfo* d, KitSlice name, 475 KitDwarfParamIter** out) { 476 (void)d; 477 (void)name; 478 if (out) *out = NULL; 479 return KIT_UNSUPPORTED; 480 } 481 482 KitIterResult kit_dwarf_param_iter_next(KitDwarfParamIter* it, 483 KitDwarfVar* out) { 484 (void)it; 485 (void)out; 486 return KIT_ITER_ERROR; 487 } 488 489 void kit_dwarf_param_iter_free(KitDwarfParamIter* it) { (void)it; } 490 #endif 491 492 #if !KIT_LINK_ENABLED 493 KitStatus kit_link_script_parse(const KitContext* ctx, KitSlice text, 494 KitLinkScript** out) { 495 (void)ctx; 496 (void)text; 497 if (out) *out = NULL; 498 return KIT_UNSUPPORTED; 499 } 500 501 void kit_link_script_free(const KitContext* ctx, KitLinkScript* s) { 502 (void)ctx; 503 (void)s; 504 } 505 506 KitStatus kit_link_session_new(KitCompiler* c, 507 const KitLinkSessionOptions* opts, 508 KitLinkSession** out) { 509 (void)c; 510 (void)opts; 511 if (out) *out = NULL; 512 return KIT_UNSUPPORTED; 513 } 514 515 KitStatus kit_link_session_add_obj(KitLinkSession* s, KitObjBuilder* ob) { 516 (void)s; 517 (void)ob; 518 return KIT_UNSUPPORTED; 519 } 520 521 KitStatus kit_link_session_add_obj_bytes(KitLinkSession* s, KitSlice name, 522 const KitSlice* bytes) { 523 (void)s; 524 (void)name; 525 (void)bytes; 526 return KIT_UNSUPPORTED; 527 } 528 529 KitStatus kit_link_session_add_archive_bytes( 530 KitLinkSession* s, const KitLinkArchiveInput* archive) { 531 (void)s; 532 (void)archive; 533 return KIT_UNSUPPORTED; 534 } 535 536 KitStatus kit_link_session_add_dso_bytes(KitLinkSession* s, KitSlice name, 537 const KitSlice* bytes) { 538 (void)s; 539 (void)name; 540 (void)bytes; 541 return KIT_UNSUPPORTED; 542 } 543 544 KitStatus kit_link_session_resolve(KitLinkSession* s) { 545 (void)s; 546 return KIT_UNSUPPORTED; 547 } 548 549 KitStatus kit_link_session_emit(KitLinkSession* s, KitWriter* out) { 550 (void)s; 551 (void)out; 552 return KIT_UNSUPPORTED; 553 } 554 555 KitStatus kit_link_session_jit(KitLinkSession* s, KitJit** out_jit) { 556 (void)s; 557 if (out_jit) *out_jit = NULL; 558 return KIT_UNSUPPORTED; 559 } 560 561 void kit_link_session_free(KitLinkSession* s) { (void)s; } 562 #endif 563 564 #if !KIT_JIT_ENABLED 565 KitJit* kit_jit_from_image(LinkImage* img) { 566 (void)img; 567 return NULL; 568 } 569 570 const KitExecMem* kit_jit_image_execmem(KitJit* jit) { 571 (void)jit; 572 return NULL; 573 } 574 575 int kit_jit_image_contains(KitJit* jit, uint64_t runtime_addr) { 576 (void)jit; 577 (void)runtime_addr; 578 return 0; 579 } 580 581 KitArchKind kit_jit_image_arch(KitJit* jit) { 582 (void)jit; 583 return KIT_ARCH_X86_64; 584 } 585 586 Compiler* kit_jit_compiler(KitJit* jit) { 587 (void)jit; 588 return NULL; 589 } 590 591 void kit_jit_free(KitJit* jit) { (void)jit; } 592 593 void* kit_jit_lookup(KitJit* jit, KitSlice name) { 594 (void)jit; 595 (void)name; 596 return NULL; 597 } 598 599 uint64_t kit_jit_generation(KitJit* jit) { 600 (void)jit; 601 return 0; 602 } 603 604 void kit_jit_run_dtors(KitJit* jit) { (void)jit; } 605 606 KitStatus kit_jit_publish(KitJit* jit, const KitJitPublishOptions* opts, 607 KitJitPublishResult* result) { 608 (void)jit; 609 (void)opts; 610 (void)result; 611 return KIT_UNSUPPORTED; 612 } 613 614 const KitObjFile* kit_jit_view(KitJit* jit) { 615 (void)jit; 616 return NULL; 617 } 618 619 KitStatus kit_jit_addr_to_sym(KitJit* jit, uint64_t addr, KitSlice* name_out, 620 uint64_t* off_out) { 621 (void)jit; 622 (void)addr; 623 (void)name_out; 624 (void)off_out; 625 return KIT_UNSUPPORTED; 626 } 627 628 uint64_t kit_jit_runtime_to_image(KitJit* jit, uint64_t runtime_pc) { 629 (void)jit; 630 (void)runtime_pc; 631 return 0; 632 } 633 634 uint64_t kit_jit_image_to_runtime(KitJit* jit, uint64_t image_vaddr) { 635 (void)jit; 636 (void)image_vaddr; 637 return 0; 638 } 639 640 KitStatus kit_jit_sym_iter_new(KitJit* jit, KitJitSymIter** out) { 641 (void)jit; 642 if (out) *out = NULL; 643 return KIT_UNSUPPORTED; 644 } 645 646 KitIterResult kit_jit_sym_iter_next(KitJitSymIter* it, KitJitSym* out) { 647 (void)it; 648 (void)out; 649 return KIT_ITER_ERROR; 650 } 651 652 void kit_jit_sym_iter_free(KitJitSymIter* it) { (void)it; } 653 #endif 654 655 #if !KIT_DBG_ENABLED 656 KitStatus kit_jit_session_new(KitJit* jit, const KitDbgHost* host, 657 KitJitSession** out) { 658 (void)jit; 659 (void)host; 660 if (out) *out = NULL; 661 return KIT_UNSUPPORTED; 662 } 663 664 void kit_jit_session_free(KitJitSession* s) { (void)s; } 665 666 KitStatus kit_jit_session_attach_dwarf(KitJitSession* s, KitDebugInfo* dwarf) { 667 (void)s; 668 (void)dwarf; 669 return KIT_UNSUPPORTED; 670 } 671 672 KitStatus kit_jit_session_call(KitJitSession* s, void* entry, KitEntryKind kind, 673 int argc, char** argv, KitStopInfo* stop_out) { 674 (void)s; 675 (void)entry; 676 (void)kind; 677 (void)argc; 678 (void)argv; 679 (void)stop_out; 680 return KIT_UNSUPPORTED; 681 } 682 683 KitStatus kit_jit_session_call_u64(KitJitSession* s, void* entry, 684 const uint64_t* args, uint32_t nargs, 685 uint64_t* ret_out, KitStopInfo* stop_out) { 686 (void)s; 687 (void)entry; 688 (void)args; 689 (void)nargs; 690 (void)ret_out; 691 (void)stop_out; 692 return KIT_UNSUPPORTED; 693 } 694 695 KitStatus kit_jit_session_resume(KitJitSession* s, KitResumeMode mode, 696 KitStopInfo* stop_out) { 697 (void)s; 698 (void)mode; 699 (void)stop_out; 700 return KIT_UNSUPPORTED; 701 } 702 703 KitStatus kit_jit_session_interrupt(KitJitSession* s) { 704 (void)s; 705 return KIT_UNSUPPORTED; 706 } 707 708 KitStatus kit_jit_session_read_mem(KitJitSession* s, uint64_t addr, void* dst, 709 size_t n) { 710 (void)s; 711 (void)addr; 712 (void)dst; 713 (void)n; 714 return KIT_UNSUPPORTED; 715 } 716 717 KitStatus kit_jit_session_write_mem(KitJitSession* s, uint64_t addr, 718 const void* src, size_t n) { 719 (void)s; 720 (void)addr; 721 (void)src; 722 (void)n; 723 return KIT_UNSUPPORTED; 724 } 725 726 KitStatus kit_jit_session_get_regs(KitJitSession* s, KitUnwindFrame* out) { 727 (void)s; 728 (void)out; 729 return KIT_UNSUPPORTED; 730 } 731 732 KitStatus kit_jit_session_set_regs(KitJitSession* s, const KitUnwindFrame* in) { 733 (void)s; 734 (void)in; 735 return KIT_UNSUPPORTED; 736 } 737 738 KitStatus kit_jit_session_breakpoint_set(KitJitSession* s, uint64_t addr, 739 uint32_t* bp_id_out) { 740 (void)s; 741 (void)addr; 742 (void)bp_id_out; 743 return KIT_UNSUPPORTED; 744 } 745 746 KitStatus kit_jit_session_breakpoint_clear(KitJitSession* s, uint32_t bp_id) { 747 (void)s; 748 (void)bp_id; 749 return KIT_UNSUPPORTED; 750 } 751 752 KitStatus kit_jit_session_breakpoint_set_spec(KitJitSession* s, 753 const KitBreakpointSpec* spec, 754 uint32_t* bp_id_out) { 755 (void)s; 756 (void)spec; 757 (void)bp_id_out; 758 return KIT_UNSUPPORTED; 759 } 760 #endif 761 762 #if !KIT_EMU_ENABLED 763 KitStatus kit_emu_run(KitCompiler* c, const KitEmuOptions* opts, 764 int* out_exit_code) { 765 (void)c; 766 (void)opts; 767 (void)out_exit_code; 768 return KIT_UNSUPPORTED; 769 } 770 771 KitStatus kit_emu_new(KitCompiler* c, const KitEmuOptions* opts, KitEmu** out) { 772 (void)c; 773 (void)opts; 774 if (out) *out = NULL; 775 return KIT_UNSUPPORTED; 776 } 777 778 KitStatus kit_emu_step(KitEmu* e, uint32_t nblocks) { 779 (void)e; 780 (void)nblocks; 781 return KIT_UNSUPPORTED; 782 } 783 784 void* kit_emu_lookup(KitEmu* e, uint64_t guest_pc) { 785 (void)e; 786 (void)guest_pc; 787 return NULL; 788 } 789 790 void kit_emu_free(KitEmu* e) { (void)e; } 791 #endif