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