| 4088 | { |
| 4089 | public: |
| 4090 | virtual bool GetRelocationInfo(Ref<BinaryView> view, Ref<Architecture> arch, vector<BNRelocationInfo>& result) override |
| 4091 | { |
| 4092 | (void)view; (void)arch; |
| 4093 | set<uint64_t> relocTypes; |
| 4094 | for (auto& reloc : result) |
| 4095 | { |
| 4096 | reloc.type = StandardRelocationType; |
| 4097 | switch (reloc.nativeType) |
| 4098 | { |
| 4099 | case R_386_NONE: |
| 4100 | reloc.type = IgnoredRelocation; |
| 4101 | break; |
| 4102 | case R_386_32: |
| 4103 | reloc.pcRelative = false; |
| 4104 | reloc.baseRelative = false; |
| 4105 | reloc.hasSign = false; |
| 4106 | reloc.size = 4; |
| 4107 | reloc.truncateSize = 4; |
| 4108 | break; |
| 4109 | case R_386_PC32: |
| 4110 | case R_386_GOT32: |
| 4111 | case R_386_PLT32: |
| 4112 | reloc.pcRelative = true; |
| 4113 | reloc.baseRelative = false; |
| 4114 | reloc.hasSign = false; |
| 4115 | reloc.size = 4; |
| 4116 | reloc.truncateSize = 4; |
| 4117 | break; |
| 4118 | case R_386_RELATIVE: |
| 4119 | reloc.pcRelative = false; |
| 4120 | reloc.baseRelative = true; |
| 4121 | reloc.hasSign = false; |
| 4122 | reloc.size = 4; |
| 4123 | reloc.truncateSize = 4; |
| 4124 | reloc.implicitAddend = true; |
| 4125 | reloc.addend = 0; |
| 4126 | break; |
| 4127 | case R_386_COPY: |
| 4128 | reloc.type = ELFCopyRelocationType; |
| 4129 | reloc.pcRelative = false; |
| 4130 | reloc.baseRelative = false; |
| 4131 | reloc.size = 4; |
| 4132 | reloc.truncateSize = 4; |
| 4133 | break; |
| 4134 | case R_386_GLOB_DAT: |
| 4135 | reloc.type = ELFGlobalRelocationType; |
| 4136 | reloc.pcRelative = false; |
| 4137 | reloc.baseRelative = false; |
| 4138 | reloc.size = 4; |
| 4139 | reloc.truncateSize = 4; |
| 4140 | reloc.implicitAddend = false; |
| 4141 | break; |
| 4142 | case R_386_JUMP_SLOT: |
| 4143 | reloc.type = ELFJumpSlotRelocationType; |
| 4144 | reloc.pcRelative = false; |
| 4145 | reloc.baseRelative = false; |
| 4146 | reloc.size = 4; |
| 4147 | reloc.truncateSize = 4; |
nothing calls this directly
no test coverage detected