1919import java .io .InputStream ;
2020import java .util .*;
2121
22- import ghidra .app .util .MemoryBlockUtil ;
22+ import ghidra .app .util .MemoryBlockUtils ;
2323import ghidra .app .util .Option ;
2424import ghidra .app .util .bin .BinaryReader ;
2525import ghidra .app .util .bin .ByteProvider ;
26- import ghidra .app .util .importer .MemoryConflictHandler ;
2726import ghidra .app .util .importer .MessageLog ;
2827import ghidra .app .util .opinion .AbstractLibrarySupportLoader ;
2928import ghidra .app .util .opinion .LoadSpec ;
4948 * TODO: Provide class-level documentation that describes what this loader does.
5049 */
5150public class GhidraESP8266_2Loader extends AbstractLibrarySupportLoader {
52- private MemoryBlockUtil mbu ;
5351
5452 @ Override
5553 public String getName () {
@@ -81,14 +79,14 @@ public List<Option> getDefaultOptions(ByteProvider provider, LoadSpec loadSpec,
8179 return list ;
8280 }
8381
84- private void markupHeader (Program program , ESP8266Header header , TaskMonitor monitor , InputStream reader ) throws DuplicateNameException , IOException {
82+ private void markupHeader (Program program , ESP8266Header header , TaskMonitor monitor , InputStream reader , MessageLog log ) throws DuplicateNameException , IOException {
8583 boolean r = true ;
8684 boolean w = true ;
8785 boolean x = true ;
8886 String BLOCK_SOURCE_NAME = "ESP8266 Header" ;
8987 Address start = program .getAddressFactory ().getDefaultAddressSpace ().getAddress ( 0x0 );
9088 try {
91- mbu .createInitializedBlock (".header" , start , reader , 8 , "" , BLOCK_SOURCE_NAME , r , w , x , monitor );
89+ MemoryBlockUtils .createInitializedBlock (program , false , ".header" , start , reader , 8 , "" , BLOCK_SOURCE_NAME , r , w , x , log , monitor );
9290 createData (program , program .getListing (), start , header .toDataType ());
9391 } catch (AddressOverflowException e ) {
9492 // TODO Auto-generated catch block
@@ -112,15 +110,16 @@ private void markAsCode(Program program, Address address) {
112110 }
113111 }
114112
115- private void markupSections (Program program , ESP8266Module module , TaskMonitor monitor , InputStream reader ) throws DuplicateNameException , IOException , AddressOverflowException {
113+ private void markupSections (Program program , ESP8266Module module , TaskMonitor monitor , InputStream reader , MessageLog log ) throws DuplicateNameException , IOException , AddressOverflowException {
116114 boolean r = true ;
117115 boolean w = true ;
118116 boolean x = true ;
119117 String BLOCK_SOURCE_NAME = "ESP8266 Section" ;
120118 for (ESP8266Section section : module .getSections ()) {
121119 Address start = program .getAddressFactory ().getDefaultAddressSpace ().getAddress (section .getOffset ());
122120 Msg .info (this , String .format ("Section at offset %08x, size %d" , start .getOffset (), section .getSize ()));
123- mbu .createInitializedBlock (section .getName (), start , reader , section .getSize (), "" , BLOCK_SOURCE_NAME , r , w , x , monitor );
121+ MemoryBlockUtils .createInitializedBlock (program , false ,
122+ section .getName (), start , reader , section .getSize (), "" , BLOCK_SOURCE_NAME , r , w , x , log , monitor );
124123 createData (program , program .getListing (), start , section .toDataType ());
125124 // Mark code sections
126125 if (section .getType () == ESP8266Constants .SECTION_TYPE_CODE )
@@ -153,23 +152,21 @@ public Data createData(Program program, Listing listing, Address address, DataTy
153152 }
154153
155154 @ Override
156- protected void load (ByteProvider provider , LoadSpec loadSpec , List <Option > options ,
157- Program program , MemoryConflictHandler handler , TaskMonitor monitor , MessageLog log )
158- throws CancelledException , IOException {
155+ protected void load (ByteProvider provider , LoadSpec loadSpec , List <Option > options , Program program ,
156+ TaskMonitor monitor , MessageLog log ) throws CancelledException , IOException {
159157
160158 monitor .setMessage ( "ESP8266 Loader: Start loading" );
161159
162160 try {
163161 InputStream inputStream ;
164162 inputStream = provider .getInputStream (0 );
165- mbu = new MemoryBlockUtil (program , handler );
166163
167164
168165 BinaryReader reader = new BinaryReader ( provider , true );
169166 ESP8266Module module = new ESP8266Module ( reader );
170167
171- markupHeader (program , module .getHeader (), monitor , inputStream );
172- markupSections (program , module , monitor , inputStream );
168+ markupHeader (program , module .getHeader (), monitor , inputStream , log );
169+ markupSections (program , module , monitor , inputStream , log );
173170
174171 // Create entry point
175172 Address entryAddress = program .getAddressFactory ().getDefaultAddressSpace ().getAddress (module .getHeader ().getEntrypoint (), true );
0 commit comments