kit

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

rewrite.h (1463B)


      1 #ifndef KIT_OBJ_REWRITE_H
      2 #define KIT_OBJ_REWRITE_H
      3 
      4 #include <kit/object.h>
      5 
      6 #include "core/core.h"
      7 #include "core/diag.h"
      8 
      9 typedef struct ObjRewrite {
     10   const KitContext* ctx;
     11   KitSlice name;
     12   const u8* input;
     13   size_t len;
     14   u8* bytes;
     15   KitLinkedRewriteReport report;
     16 } ObjRewrite;
     17 
     18 KitStatus obj_rewrite_init(ObjRewrite*, const KitContext*, KitSlice name,
     19                            const KitSlice* input);
     20 void obj_rewrite_discard(ObjRewrite*);
     21 KitStatus obj_rewrite_commit(ObjRewrite*, KitWriter*,
     22                              KitLinkedRewriteReport* report_out);
     23 
     24 int obj_rw_range(size_t len, u64 off, u64 size);
     25 u16 obj_rw_u16(const u8* p, int be);
     26 u32 obj_rw_u32(const u8* p, int be);
     27 u64 obj_rw_u64(const u8* p, int be);
     28 void obj_rw_put_u16(u8* p, u16 v, int be);
     29 void obj_rw_put_u32(u8* p, u32 v, int be);
     30 void obj_rw_put_u64(u8* p, u64 v, int be);
     31 
     32 KitStatus obj_rewrite_elf(const KitContext*, KitSlice, const KitSlice*,
     33                           const KitLinkedRewriteOptions*, KitWriter*,
     34                           KitLinkedRewriteReport*);
     35 KitStatus obj_rewrite_macho(const KitContext*, KitSlice, const KitSlice*,
     36                             const KitLinkedRewriteOptions*, KitWriter*,
     37                             KitLinkedRewriteReport*);
     38 KitStatus obj_rewrite_coff(const KitContext*, KitSlice, const KitSlice*,
     39                            const KitLinkedRewriteOptions*, KitWriter*,
     40                            KitLinkedRewriteReport*);
     41 
     42 #endif