kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

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