From 362408a290e459a3a5a9533c6f477402dee66b31 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Wed, 22 Feb 2023 18:47:47 -0500 Subject: [PATCH] GP-3071: Remove stale 'commitByDefault' documentation GP-3071: Fix test compilation GP-3071: Certify GP-3071: Put lifecycle stuff in Emulation, not Utility GP-3071: Fix tests GP-3071: Mock language for framework tests GP-3071: WIP: Move tests and sort out dependencies GP-3071: Actually, not Generic, but Emulation GP-3071: Move both emulators into new Emulation module GP-3071: WIP: Move some tests GP-3071: NICK: Remove import/ref from PcodeEmulator javadoc GP-3071: WIP: Move stuff GP-3071: WIP: Move AnnotationUtilities GP-3071: NICK: Remove an import and ref in javadoc GP-3071: Create SysteEmulation feature. Move stuff. GP-3071: WIP: Move stuff GP-3071: Create emulation module --- .../Framework-TraceModeling/build.gradle | 1 + Ghidra/Debug/TaintAnalysis/build.gradle | 2 + Ghidra/Features/Base/build.gradle | 1 + .../Features/SystemEmulation/Module.manifest | 0 Ghidra/Features/SystemEmulation/build.gradle | 29 +++++++++ .../SystemEmulation/certification.manifest | 2 + .../DebuggerEmuExampleScript.java | 0 .../DemoPcodeUseropLibrary.java | 0 .../ghidra_scripts/DemoSyscallLibrary.java | 0 .../ghidra_scripts/EmuDeskCheckScript.java | 0 .../StandAloneEmuExampleScript.java | 0 .../StandAloneStructuredSleighScript.java | 0 .../StandAloneSyscallEmuExampleScript.java | 0 .../AbstractEmuLinuxSyscallUseropLibrary.java | 0 .../EmuLinuxAmd64SyscallUseropLibrary.java | 0 .../EmuLinuxX86SyscallUseropLibrary.java | 0 .../sys/AnnotatedEmuSyscallUseropLibrary.java | 0 .../pcode/emu/sys/BytesEmuFileContents.java | 0 .../ghidra/pcode/emu/sys/EmuFileContents.java | 0 .../ghidra/pcode/emu/sys/EmuIOException.java | 0 .../sys/EmuInvalidSystemCallException.java | 0 .../emu/sys/EmuProcessExitedException.java | 0 .../pcode/emu/sys/EmuSyscallLibrary.java | 0 .../pcode/emu/sys/EmuSystemException.java | 0 .../pcode/emu/sys/PairedEmuFileContents.java | 0 .../emu/sys/UseropEmuSyscallDefinition.java | 0 .../pcode/emu/unix/AbstractEmuUnixFile.java | 0 .../emu/unix/AbstractEmuUnixFileSystem.java | 0 .../AbstractEmuUnixSyscallUseropLibrary.java | 0 .../unix/AbstractStreamEmuUnixFileHandle.java | 0 .../emu/unix/BytesEmuUnixFileSystem.java | 0 .../emu/unix/DefaultEmuUnixFileHandle.java | 0 .../pcode/emu/unix/EmuUnixException.java | 0 .../ghidra/pcode/emu/unix/EmuUnixFile.java | 0 .../pcode/emu/unix/EmuUnixFileDescriptor.java | 0 .../pcode/emu/unix/EmuUnixFileStat.java | 0 .../pcode/emu/unix/EmuUnixFileSystem.java | 0 .../ghidra/pcode/emu/unix/EmuUnixUser.java | 0 .../emu/unix/IOStreamEmuUnixFileHandle.java | 0 .../emu/x86/X86PcodeStateInitializer.java | 0 .../ghidra/pcode/struct/AbstractStmt.java | 0 .../ghidra/pcode/struct/ArithBinExpr.java | 0 .../java/ghidra/pcode/struct/AssignStmt.java | 0 .../java/ghidra/pcode/struct/BinExpr.java | 0 .../java/ghidra/pcode/struct/BlockStmt.java | 0 .../java/ghidra/pcode/struct/BreakStmt.java | 0 .../java/ghidra/pcode/struct/CallExpr.java | 0 .../java/ghidra/pcode/struct/CmpExpr.java | 0 .../ghidra/pcode/struct/ConditionalStmt.java | 0 .../ghidra/pcode/struct/ContinueStmt.java | 0 .../java/ghidra/pcode/struct/DeclStmt.java | 0 .../pcode/struct/DefaultUseropDecl.java | 0 .../java/ghidra/pcode/struct/DefaultVar.java | 0 .../java/ghidra/pcode/struct/DerefExpr.java | 0 .../main/java/ghidra/pcode/struct/Expr.java | 0 .../java/ghidra/pcode/struct/FieldExpr.java | 0 .../java/ghidra/pcode/struct/ForStmt.java | 0 .../java/ghidra/pcode/struct/GotoStmt.java | 0 .../main/java/ghidra/pcode/struct/IfStmt.java | 0 .../java/ghidra/pcode/struct/IndexExpr.java | 0 .../java/ghidra/pcode/struct/InvExpr.java | 0 .../ghidra/pcode/struct/LValInternal.java | 0 .../java/ghidra/pcode/struct/LangVar.java | 0 .../java/ghidra/pcode/struct/LiteralExpr.java | 0 .../ghidra/pcode/struct/LiteralFloatExpr.java | 0 .../ghidra/pcode/struct/LiteralLongExpr.java | 0 .../java/ghidra/pcode/struct/LocalVar.java | 0 .../java/ghidra/pcode/struct/LoopStmt.java | 0 .../ghidra/pcode/struct/LoopTruncateStmt.java | 0 .../java/ghidra/pcode/struct/NotExpr.java | 0 .../ghidra/pcode/struct/RValInternal.java | 0 .../java/ghidra/pcode/struct/RawExpr.java | 0 .../java/ghidra/pcode/struct/RawStmt.java | 0 .../java/ghidra/pcode/struct/ResultStmt.java | 0 .../java/ghidra/pcode/struct/ReturnStmt.java | 0 .../java/ghidra/pcode/struct/RoutineStmt.java | 0 .../java/ghidra/pcode/struct/StringTree.java | 0 .../ghidra/pcode/struct/StructuredSleigh.java | 0 .../main/java/ghidra/pcode/struct/UnExpr.java | 0 .../ghidra/pcode/struct/VoidExprStmt.java | 0 .../java/ghidra/pcode/struct/WhileStmt.java | 0 ...EmuLinuxAmd64SyscallUseropLibraryTest.java | 0 .../EmuLinuxX86SyscallUseropLibraryTest.java | 0 .../sys/EmuAmd64SyscallUseropLibraryTest.java | 0 .../pcode/emu/sys/SyscallTestHelper.java | 0 .../struct/sub/StructuredSleighTest.java | 0 Ghidra/Framework/Emulation/Module.manifest | 0 Ghidra/Framework/Emulation/build.gradle | 28 +++++++++ .../Emulation/certification.manifest | 6 ++ .../src/main/java/generic/RangeMapSetter.java | 0 .../src/main/java/generic/Span.java | 0 .../src/main/java/generic/ULongSpan.java | 0 .../src/main/java/generic/Unique.java | 0 .../java/ghidra/app/emulator/Emulator.java | 0 .../app/emulator/EmulatorConfiguration.java | 0 .../ghidra/app/emulator/EmulatorHelper.java | 0 .../app/emulator/FilteredMemoryState.java | 0 .../app/emulator/MemoryAccessFilter.java | 0 .../emulator/memory/CompositeLoadImage.java | 0 .../app/emulator/memory/EmulatorLoadData.java | 0 .../app/emulator/memory/MemoryImage.java | 0 .../app/emulator/memory/MemoryLoadImage.java | 0 .../app/emulator/memory/ProgramLoadImage.java | 0 .../memory/ProgramMappedLoadImage.java | 0 .../emulator/memory/ProgramMappedMemory.java | 0 .../app/emulator/state/DumpMiscState.java | 0 .../state/FilteredMemoryPageOverlay.java | 0 .../emulator/state/FilteredRegisterBank.java | 0 .../app/emulator/state/RegisterState.java | 0 .../app/util/pcode/AbstractAppender.java | 0 .../util/pcode/AbstractPcodeFormatter.java | 0 .../java/ghidra/app/util/pcode/Appender.java | 0 .../ghidra/app/util/pcode/PcodeFormatter.java | 0 .../util/datastruct/SemisparseByteArray.java | 0 .../java/ghidra/lifecycle/Experimental.java | 0 .../main/java/ghidra/lifecycle/Internal.java | 0 .../java/ghidra/lifecycle/Transitional.java | 0 .../java/ghidra/lifecycle/Unfinished.java | 0 .../pcode/emu/AbstractPcodeMachine.java | 0 .../ghidra/pcode/emu/BytesPcodeThread.java | 0 .../ghidra/pcode/emu/DefaultPcodeThread.java | 0 .../ghidra/pcode/emu/InstructionDecoder.java | 0 .../ghidra/pcode/emu/ModifiedPcodeThread.java | 0 .../java/ghidra/pcode/emu/PcodeEmulator.java | 5 +- .../java/ghidra/pcode/emu/PcodeMachine.java | 0 .../pcode/emu/PcodeStateInitializer.java | 0 .../java/ghidra/pcode/emu/PcodeThread.java | 0 .../pcode/emu/SleighInstructionDecoder.java | 0 .../pcode/emu/SparseAddressRangeMap.java | 0 .../pcode/emu/ThreadPcodeExecutorState.java | 0 .../auxiliary/AuxEmulatorPartsFactory.java | 0 .../pcode/emu/auxiliary/AuxPcodeEmulator.java | 0 .../pcode/emu/auxiliary/AuxPcodeThread.java | 0 .../AbstractBytesPcodeExecutorStatePiece.java | 0 ...ractLongOffsetPcodeExecutorStatePiece.java | 0 .../exec/AccessPcodeExecutionException.java | 0 .../exec/AddressesReadPcodeArithmetic.java | 0 .../exec/AnnotatedPcodeUseropLibrary.java | 4 +- .../pcode/exec/BytesPcodeArithmetic.java | 0 .../pcode/exec/BytesPcodeExecutorState.java | 0 .../exec/BytesPcodeExecutorStatePiece.java | 0 .../exec/BytesPcodeExecutorStateSpace.java | 0 .../exec/ComposedPcodeUseropLibrary.java | 0 .../ghidra/pcode/exec/ConcretionError.java | 0 .../pcode/exec/DefaultPcodeExecutorState.java | 0 ...InjectionErrorPcodeExecutionException.java | 0 .../InterruptPcodeExecutionException.java | 0 .../pcode/exec/LocationPcodeArithmetic.java | 0 .../exec/LocationPcodeExecutorStatePiece.java | 0 .../pcode/exec/PairedPcodeArithmetic.java | 0 .../pcode/exec/PairedPcodeExecutorState.java | 0 .../exec/PairedPcodeExecutorStatePiece.java | 0 .../ghidra/pcode/exec/PcodeArithmetic.java | 0 .../pcode/exec/PcodeExecutionException.java | 0 .../java/ghidra/pcode/exec/PcodeExecutor.java | 0 .../ghidra/pcode/exec/PcodeExecutorState.java | 0 .../pcode/exec/PcodeExecutorStatePiece.java | 0 .../ghidra/pcode/exec/PcodeExpression.java | 0 .../java/ghidra/pcode/exec/PcodeFrame.java | 0 .../java/ghidra/pcode/exec/PcodeProgram.java | 0 .../ghidra/pcode/exec/PcodeUseropLibrary.java | 0 .../pcode/exec/SleighLinkException.java | 0 .../exec/SleighPcodeUseropDefinition.java | 0 .../pcode/exec/SleighProgramCompiler.java | 0 .../java/ghidra/pcode/exec/SleighUtils.java | 0 .../SuspendedPcodeExecutionException.java | 0 .../java/ghidra/pcode/exec/ValueLocation.java | 0 .../utilities/util/AnnotationUtilities.java | 0 .../src/test/java/generic/ULongSpanTest.java | 0 .../sleigh/SleighLanguageHelper.java | 63 +++++++++++++++++++ .../datastruct/SemisparseByteArrayTest.java | 0 .../pcode/emu/SparseAddressRangeMapTest.java | 0 .../exec/AnnotatedPcodeUseropLibraryTest.java | 35 +++++++---- .../ghidra/pcode/exec/PcodeFrameTest.java | 45 +++++++------ .../ghidra/pcode/exec/SleighUtilsTest.java | 0 .../Emulation/src/test/resources/mock.cspec | 0 .../Emulation/src/test/resources/mock.ldefs | 0 .../Emulation/src/test/resources/mock.pspec | 5 ++ .../Emulation/src/test/resources/mock.slaspec | 37 +++++++++++ .../program/model/mem/MemBufferAdapter.java | 0 .../util/database/UndoableTransaction.java | 4 +- 181 files changed, 228 insertions(+), 39 deletions(-) create mode 100644 Ghidra/Features/SystemEmulation/Module.manifest create mode 100644 Ghidra/Features/SystemEmulation/build.gradle create mode 100644 Ghidra/Features/SystemEmulation/certification.manifest rename Ghidra/{Debug/Debugger => Features/SystemEmulation}/ghidra_scripts/DebuggerEmuExampleScript.java (100%) rename Ghidra/{Debug/Debugger => Features/SystemEmulation}/ghidra_scripts/DemoPcodeUseropLibrary.java (100%) rename Ghidra/{Debug/Debugger => Features/SystemEmulation}/ghidra_scripts/DemoSyscallLibrary.java (100%) rename Ghidra/{Debug/Debugger => Features/SystemEmulation}/ghidra_scripts/EmuDeskCheckScript.java (100%) rename Ghidra/{Debug/Debugger => Features/SystemEmulation}/ghidra_scripts/StandAloneEmuExampleScript.java (100%) rename Ghidra/{Debug/Debugger => Features/SystemEmulation}/ghidra_scripts/StandAloneStructuredSleighScript.java (100%) rename Ghidra/{Debug/Debugger => Features/SystemEmulation}/ghidra_scripts/StandAloneSyscallEmuExampleScript.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/linux/AbstractEmuLinuxSyscallUseropLibrary.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibrary.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibrary.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/AnnotatedEmuSyscallUseropLibrary.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/BytesEmuFileContents.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/EmuFileContents.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/EmuIOException.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/EmuInvalidSystemCallException.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/EmuProcessExitedException.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/EmuSyscallLibrary.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/EmuSystemException.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/PairedEmuFileContents.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/sys/UseropEmuSyscallDefinition.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFile.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFileSystem.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixSyscallUseropLibrary.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/AbstractStreamEmuUnixFileHandle.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/BytesEmuUnixFileSystem.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/DefaultEmuUnixFileHandle.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/EmuUnixException.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/EmuUnixFile.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileDescriptor.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileStat.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileSystem.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/EmuUnixUser.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/unix/IOStreamEmuUnixFileHandle.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/emu/x86/X86PcodeStateInitializer.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/AbstractStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/ArithBinExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/AssignStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/BinExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/BlockStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/BreakStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/CallExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/CmpExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/ConditionalStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/ContinueStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/DeclStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/DefaultUseropDecl.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/DefaultVar.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/DerefExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/Expr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/FieldExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/ForStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/GotoStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/IfStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/IndexExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/InvExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/LValInternal.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/LangVar.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/LiteralExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/LiteralFloatExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/LiteralLongExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/LocalVar.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/LoopStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/LoopTruncateStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/NotExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/RValInternal.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/RawExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/RawStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/ResultStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/ReturnStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/RoutineStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/StringTree.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/StructuredSleigh.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/UnExpr.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/VoidExprStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/main/java/ghidra/pcode/struct/WhileStmt.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/test/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibraryTest.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/test/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibraryTest.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/test/java/ghidra/pcode/emu/sys/EmuAmd64SyscallUseropLibraryTest.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/test/java/ghidra/pcode/emu/sys/SyscallTestHelper.java (100%) rename Ghidra/{Debug/ProposedUtils => Features/SystemEmulation}/src/test/java/ghidra/pcode/struct/sub/StructuredSleighTest.java (100%) create mode 100644 Ghidra/Framework/Emulation/Module.manifest create mode 100644 Ghidra/Framework/Emulation/build.gradle create mode 100644 Ghidra/Framework/Emulation/certification.manifest rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/generic/RangeMapSetter.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/generic/Span.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/generic/ULongSpan.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/generic/Unique.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/Emulator.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/EmulatorHelper.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/FilteredMemoryState.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/memory/MemoryImage.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/state/DumpMiscState.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java (100%) rename Ghidra/Framework/{SoftwareModeling => Emulation}/src/main/java/ghidra/app/emulator/state/RegisterState.java (100%) rename Ghidra/{Features/Base => Framework/Emulation}/src/main/java/ghidra/app/util/pcode/AbstractAppender.java (100%) rename Ghidra/{Features/Base => Framework/Emulation}/src/main/java/ghidra/app/util/pcode/AbstractPcodeFormatter.java (100%) rename Ghidra/{Features/Base => Framework/Emulation}/src/main/java/ghidra/app/util/pcode/Appender.java (100%) rename Ghidra/{Features/Base => Framework/Emulation}/src/main/java/ghidra/app/util/pcode/PcodeFormatter.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/generic/util/datastruct/SemisparseByteArray.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/lifecycle/Experimental.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/lifecycle/Internal.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/lifecycle/Transitional.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/lifecycle/Unfinished.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/AbstractPcodeMachine.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/BytesPcodeThread.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/DefaultPcodeThread.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/InstructionDecoder.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/ModifiedPcodeThread.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/PcodeEmulator.java (97%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/PcodeMachine.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/PcodeStateInitializer.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/PcodeThread.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/SleighInstructionDecoder.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/SparseAddressRangeMap.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/ThreadPcodeExecutorState.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/auxiliary/AuxEmulatorPartsFactory.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeEmulator.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeThread.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/AbstractBytesPcodeExecutorStatePiece.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/AbstractLongOffsetPcodeExecutorStatePiece.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/AccessPcodeExecutionException.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/AddressesReadPcodeArithmetic.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/AnnotatedPcodeUseropLibrary.java (99%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/BytesPcodeArithmetic.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/BytesPcodeExecutorState.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/BytesPcodeExecutorStatePiece.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/BytesPcodeExecutorStateSpace.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/ComposedPcodeUseropLibrary.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/ConcretionError.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/DefaultPcodeExecutorState.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/InjectionErrorPcodeExecutionException.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/InterruptPcodeExecutionException.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/LocationPcodeArithmetic.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/LocationPcodeExecutorStatePiece.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PairedPcodeArithmetic.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PairedPcodeExecutorState.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PairedPcodeExecutorStatePiece.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeArithmetic.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeExecutionException.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeExecutor.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeExecutorState.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeExecutorStatePiece.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeExpression.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeFrame.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeProgram.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/PcodeUseropLibrary.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/SleighLinkException.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/SleighPcodeUseropDefinition.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/SleighProgramCompiler.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/SleighUtils.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/SuspendedPcodeExecutionException.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/ghidra/pcode/exec/ValueLocation.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/main/java/utilities/util/AnnotationUtilities.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/test/java/generic/ULongSpanTest.java (100%) create mode 100644 Ghidra/Framework/Emulation/src/test/java/ghidra/app/plugin/processors/sleigh/SleighLanguageHelper.java rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/test/java/ghidra/generic/util/datastruct/SemisparseByteArrayTest.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/test/java/ghidra/pcode/emu/SparseAddressRangeMapTest.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/test/java/ghidra/pcode/exec/AnnotatedPcodeUseropLibraryTest.java (93%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/test/java/ghidra/pcode/exec/PcodeFrameTest.java (83%) rename Ghidra/{Debug/ProposedUtils => Framework/Emulation}/src/test/java/ghidra/pcode/exec/SleighUtilsTest.java (100%) create mode 100644 Ghidra/Framework/Emulation/src/test/resources/mock.cspec create mode 100644 Ghidra/Framework/Emulation/src/test/resources/mock.ldefs create mode 100644 Ghidra/Framework/Emulation/src/test/resources/mock.pspec create mode 100644 Ghidra/Framework/Emulation/src/test/resources/mock.slaspec rename Ghidra/{Debug/ProposedUtils => Framework/SoftwareModeling}/src/main/java/ghidra/program/model/mem/MemBufferAdapter.java (100%) rename Ghidra/{Debug/ProposedUtils => Framework/SoftwareModeling}/src/main/java/ghidra/util/database/UndoableTransaction.java (98%) diff --git a/Ghidra/Debug/Framework-TraceModeling/build.gradle b/Ghidra/Debug/Framework-TraceModeling/build.gradle index 0b6f4871d2..7aec2d3efb 100644 --- a/Ghidra/Debug/Framework-TraceModeling/build.gradle +++ b/Ghidra/Debug/Framework-TraceModeling/build.gradle @@ -24,6 +24,7 @@ eclipse.project.name = 'Debug Framework-TraceModeling' dependencies { api project(':Generic') api project(':SoftwareModeling') + api project(':Emulation') api project(':ProposedUtils') api project(':Framework-Debugging') annotationProcessor project(':AnnotationValidator') diff --git a/Ghidra/Debug/TaintAnalysis/build.gradle b/Ghidra/Debug/TaintAnalysis/build.gradle index 1c1fc7e82d..db93188943 100644 --- a/Ghidra/Debug/TaintAnalysis/build.gradle +++ b/Ghidra/Debug/TaintAnalysis/build.gradle @@ -23,6 +23,7 @@ eclipse.project.name = 'Debug TaintAnalysis' dependencies { api project(':Debugger') + api project(':SystemEmulation') // Oof. Apparently, this doesn't work transitively.... testImplementation project(path: ':ProposedUtils', configuration: 'testArtifacts') @@ -30,4 +31,5 @@ dependencies { testImplementation project(path: ':Framework-Debugging', configuration: 'testArtifacts') testImplementation project(path: ':Framework-TraceModeling', configuration: 'testArtifacts') testImplementation project(path: ':Debugger', configuration: 'testArtifacts') + testImplementation project(path: ':SystemEmulation', configuration: 'testArtifacts') } diff --git a/Ghidra/Features/Base/build.gradle b/Ghidra/Features/Base/build.gradle index b649a3cc12..d4cdd500a9 100644 --- a/Ghidra/Features/Base/build.gradle +++ b/Ghidra/Features/Base/build.gradle @@ -39,6 +39,7 @@ configurations { dependencies { api project(':SoftwareModeling') + api project(':Emulation') api 'org.apache.felix:org.apache.felix.framework:7.0.3' api 'com.github.rotty3000:phidias:0.3.7' diff --git a/Ghidra/Features/SystemEmulation/Module.manifest b/Ghidra/Features/SystemEmulation/Module.manifest new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Ghidra/Features/SystemEmulation/build.gradle b/Ghidra/Features/SystemEmulation/build.gradle new file mode 100644 index 0000000000..79814fad40 --- /dev/null +++ b/Ghidra/Features/SystemEmulation/build.gradle @@ -0,0 +1,29 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +apply from: "${rootProject.projectDir}/gradle/javaProject.gradle" +apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle" +apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" +apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle" + +apply plugin: 'eclipse' +eclipse.project.name = 'Features SystemEmulation' + +dependencies { + api project(':Base') + api project(':Debugger') + api project(':Emulation') + api project(':DB') +} diff --git a/Ghidra/Features/SystemEmulation/certification.manifest b/Ghidra/Features/SystemEmulation/certification.manifest new file mode 100644 index 0000000000..895ac4b698 --- /dev/null +++ b/Ghidra/Features/SystemEmulation/certification.manifest @@ -0,0 +1,2 @@ +##VERSION: 2.0 +Module.manifest||GHIDRA||||END| diff --git a/Ghidra/Debug/Debugger/ghidra_scripts/DebuggerEmuExampleScript.java b/Ghidra/Features/SystemEmulation/ghidra_scripts/DebuggerEmuExampleScript.java similarity index 100% rename from Ghidra/Debug/Debugger/ghidra_scripts/DebuggerEmuExampleScript.java rename to Ghidra/Features/SystemEmulation/ghidra_scripts/DebuggerEmuExampleScript.java diff --git a/Ghidra/Debug/Debugger/ghidra_scripts/DemoPcodeUseropLibrary.java b/Ghidra/Features/SystemEmulation/ghidra_scripts/DemoPcodeUseropLibrary.java similarity index 100% rename from Ghidra/Debug/Debugger/ghidra_scripts/DemoPcodeUseropLibrary.java rename to Ghidra/Features/SystemEmulation/ghidra_scripts/DemoPcodeUseropLibrary.java diff --git a/Ghidra/Debug/Debugger/ghidra_scripts/DemoSyscallLibrary.java b/Ghidra/Features/SystemEmulation/ghidra_scripts/DemoSyscallLibrary.java similarity index 100% rename from Ghidra/Debug/Debugger/ghidra_scripts/DemoSyscallLibrary.java rename to Ghidra/Features/SystemEmulation/ghidra_scripts/DemoSyscallLibrary.java diff --git a/Ghidra/Debug/Debugger/ghidra_scripts/EmuDeskCheckScript.java b/Ghidra/Features/SystemEmulation/ghidra_scripts/EmuDeskCheckScript.java similarity index 100% rename from Ghidra/Debug/Debugger/ghidra_scripts/EmuDeskCheckScript.java rename to Ghidra/Features/SystemEmulation/ghidra_scripts/EmuDeskCheckScript.java diff --git a/Ghidra/Debug/Debugger/ghidra_scripts/StandAloneEmuExampleScript.java b/Ghidra/Features/SystemEmulation/ghidra_scripts/StandAloneEmuExampleScript.java similarity index 100% rename from Ghidra/Debug/Debugger/ghidra_scripts/StandAloneEmuExampleScript.java rename to Ghidra/Features/SystemEmulation/ghidra_scripts/StandAloneEmuExampleScript.java diff --git a/Ghidra/Debug/Debugger/ghidra_scripts/StandAloneStructuredSleighScript.java b/Ghidra/Features/SystemEmulation/ghidra_scripts/StandAloneStructuredSleighScript.java similarity index 100% rename from Ghidra/Debug/Debugger/ghidra_scripts/StandAloneStructuredSleighScript.java rename to Ghidra/Features/SystemEmulation/ghidra_scripts/StandAloneStructuredSleighScript.java diff --git a/Ghidra/Debug/Debugger/ghidra_scripts/StandAloneSyscallEmuExampleScript.java b/Ghidra/Features/SystemEmulation/ghidra_scripts/StandAloneSyscallEmuExampleScript.java similarity index 100% rename from Ghidra/Debug/Debugger/ghidra_scripts/StandAloneSyscallEmuExampleScript.java rename to Ghidra/Features/SystemEmulation/ghidra_scripts/StandAloneSyscallEmuExampleScript.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/linux/AbstractEmuLinuxSyscallUseropLibrary.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/linux/AbstractEmuLinuxSyscallUseropLibrary.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/linux/AbstractEmuLinuxSyscallUseropLibrary.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/linux/AbstractEmuLinuxSyscallUseropLibrary.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibrary.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibrary.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibrary.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibrary.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibrary.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibrary.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibrary.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibrary.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/AnnotatedEmuSyscallUseropLibrary.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/AnnotatedEmuSyscallUseropLibrary.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/AnnotatedEmuSyscallUseropLibrary.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/AnnotatedEmuSyscallUseropLibrary.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/BytesEmuFileContents.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/BytesEmuFileContents.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/BytesEmuFileContents.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/BytesEmuFileContents.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuFileContents.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuFileContents.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuFileContents.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuFileContents.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuIOException.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuIOException.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuIOException.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuIOException.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuInvalidSystemCallException.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuInvalidSystemCallException.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuInvalidSystemCallException.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuInvalidSystemCallException.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuProcessExitedException.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuProcessExitedException.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuProcessExitedException.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuProcessExitedException.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuSyscallLibrary.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuSyscallLibrary.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuSyscallLibrary.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuSyscallLibrary.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuSystemException.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuSystemException.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/EmuSystemException.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/EmuSystemException.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/PairedEmuFileContents.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/PairedEmuFileContents.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/PairedEmuFileContents.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/PairedEmuFileContents.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/UseropEmuSyscallDefinition.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/UseropEmuSyscallDefinition.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/sys/UseropEmuSyscallDefinition.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/sys/UseropEmuSyscallDefinition.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFile.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFile.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFile.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFile.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFileSystem.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFileSystem.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFileSystem.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixFileSystem.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixSyscallUseropLibrary.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixSyscallUseropLibrary.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixSyscallUseropLibrary.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/AbstractEmuUnixSyscallUseropLibrary.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/AbstractStreamEmuUnixFileHandle.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/AbstractStreamEmuUnixFileHandle.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/AbstractStreamEmuUnixFileHandle.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/AbstractStreamEmuUnixFileHandle.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/BytesEmuUnixFileSystem.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/BytesEmuUnixFileSystem.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/BytesEmuUnixFileSystem.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/BytesEmuUnixFileSystem.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/DefaultEmuUnixFileHandle.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/DefaultEmuUnixFileHandle.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/DefaultEmuUnixFileHandle.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/DefaultEmuUnixFileHandle.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixException.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixException.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixException.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixException.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixFile.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixFile.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixFile.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixFile.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileDescriptor.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileDescriptor.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileDescriptor.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileDescriptor.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileStat.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileStat.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileStat.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileStat.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileSystem.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileSystem.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileSystem.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixFileSystem.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixUser.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixUser.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/EmuUnixUser.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/EmuUnixUser.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/IOStreamEmuUnixFileHandle.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/IOStreamEmuUnixFileHandle.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/unix/IOStreamEmuUnixFileHandle.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/unix/IOStreamEmuUnixFileHandle.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/x86/X86PcodeStateInitializer.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/x86/X86PcodeStateInitializer.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/x86/X86PcodeStateInitializer.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/emu/x86/X86PcodeStateInitializer.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/AbstractStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/AbstractStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/AbstractStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/AbstractStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ArithBinExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ArithBinExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ArithBinExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ArithBinExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/AssignStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/AssignStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/AssignStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/AssignStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/BinExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/BinExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/BinExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/BinExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/BlockStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/BlockStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/BlockStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/BlockStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/BreakStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/BreakStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/BreakStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/BreakStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/CallExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/CallExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/CallExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/CallExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/CmpExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/CmpExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/CmpExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/CmpExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ConditionalStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ConditionalStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ConditionalStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ConditionalStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ContinueStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ContinueStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ContinueStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ContinueStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/DeclStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/DeclStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/DeclStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/DeclStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/DefaultUseropDecl.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/DefaultUseropDecl.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/DefaultUseropDecl.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/DefaultUseropDecl.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/DefaultVar.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/DefaultVar.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/DefaultVar.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/DefaultVar.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/DerefExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/DerefExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/DerefExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/DerefExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/Expr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/Expr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/Expr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/Expr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/FieldExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/FieldExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/FieldExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/FieldExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ForStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ForStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ForStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ForStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/GotoStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/GotoStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/GotoStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/GotoStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/IfStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/IfStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/IfStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/IfStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/IndexExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/IndexExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/IndexExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/IndexExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/InvExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/InvExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/InvExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/InvExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LValInternal.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LValInternal.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LValInternal.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LValInternal.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LangVar.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LangVar.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LangVar.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LangVar.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LiteralExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LiteralExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LiteralExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LiteralExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LiteralFloatExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LiteralFloatExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LiteralFloatExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LiteralFloatExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LiteralLongExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LiteralLongExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LiteralLongExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LiteralLongExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LocalVar.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LocalVar.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LocalVar.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LocalVar.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LoopStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LoopStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LoopStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LoopStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LoopTruncateStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LoopTruncateStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/LoopTruncateStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/LoopTruncateStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/NotExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/NotExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/NotExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/NotExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/RValInternal.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/RValInternal.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/RValInternal.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/RValInternal.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/RawExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/RawExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/RawExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/RawExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/RawStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/RawStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/RawStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/RawStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ResultStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ResultStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ResultStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ResultStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ReturnStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ReturnStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/ReturnStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/ReturnStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/RoutineStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/RoutineStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/RoutineStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/RoutineStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/StringTree.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/StringTree.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/StringTree.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/StringTree.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/StructuredSleigh.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/StructuredSleigh.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/StructuredSleigh.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/StructuredSleigh.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/UnExpr.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/UnExpr.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/UnExpr.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/UnExpr.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/VoidExprStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/VoidExprStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/VoidExprStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/VoidExprStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/WhileStmt.java b/Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/WhileStmt.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/struct/WhileStmt.java rename to Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/WhileStmt.java diff --git a/Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibraryTest.java b/Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibraryTest.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibraryTest.java rename to Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/emu/linux/EmuLinuxAmd64SyscallUseropLibraryTest.java diff --git a/Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibraryTest.java b/Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibraryTest.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibraryTest.java rename to Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/emu/linux/EmuLinuxX86SyscallUseropLibraryTest.java diff --git a/Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/emu/sys/EmuAmd64SyscallUseropLibraryTest.java b/Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/emu/sys/EmuAmd64SyscallUseropLibraryTest.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/emu/sys/EmuAmd64SyscallUseropLibraryTest.java rename to Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/emu/sys/EmuAmd64SyscallUseropLibraryTest.java diff --git a/Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/emu/sys/SyscallTestHelper.java b/Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/emu/sys/SyscallTestHelper.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/emu/sys/SyscallTestHelper.java rename to Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/emu/sys/SyscallTestHelper.java diff --git a/Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/struct/sub/StructuredSleighTest.java b/Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/struct/sub/StructuredSleighTest.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/test/java/ghidra/pcode/struct/sub/StructuredSleighTest.java rename to Ghidra/Features/SystemEmulation/src/test/java/ghidra/pcode/struct/sub/StructuredSleighTest.java diff --git a/Ghidra/Framework/Emulation/Module.manifest b/Ghidra/Framework/Emulation/Module.manifest new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Ghidra/Framework/Emulation/build.gradle b/Ghidra/Framework/Emulation/build.gradle new file mode 100644 index 0000000000..0a638d0585 --- /dev/null +++ b/Ghidra/Framework/Emulation/build.gradle @@ -0,0 +1,28 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +apply from: "${rootProject.projectDir}/gradle/javaProject.gradle" +apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle" +apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" +apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle" + +apply plugin: 'eclipse' +eclipse.project.name = 'Framework Emulation' + +dependencies { + api project(':SoftwareModeling') + api project(':Generic') + api project(':Utility') +} diff --git a/Ghidra/Framework/Emulation/certification.manifest b/Ghidra/Framework/Emulation/certification.manifest new file mode 100644 index 0000000000..90dcde061a --- /dev/null +++ b/Ghidra/Framework/Emulation/certification.manifest @@ -0,0 +1,6 @@ +##VERSION: 2.0 +Module.manifest||GHIDRA||||END| +src/test/resources/mock.cspec||GHIDRA||||END| +src/test/resources/mock.ldefs||GHIDRA||||END| +src/test/resources/mock.pspec||GHIDRA||||END| +src/test/resources/mock.slaspec||GHIDRA||||END| diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/generic/RangeMapSetter.java b/Ghidra/Framework/Emulation/src/main/java/generic/RangeMapSetter.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/generic/RangeMapSetter.java rename to Ghidra/Framework/Emulation/src/main/java/generic/RangeMapSetter.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/generic/Span.java b/Ghidra/Framework/Emulation/src/main/java/generic/Span.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/generic/Span.java rename to Ghidra/Framework/Emulation/src/main/java/generic/Span.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/generic/ULongSpan.java b/Ghidra/Framework/Emulation/src/main/java/generic/ULongSpan.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/generic/ULongSpan.java rename to Ghidra/Framework/Emulation/src/main/java/generic/ULongSpan.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/generic/Unique.java b/Ghidra/Framework/Emulation/src/main/java/generic/Unique.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/generic/Unique.java rename to Ghidra/Framework/Emulation/src/main/java/generic/Unique.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/Emulator.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/Emulator.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/Emulator.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/Emulator.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/EmulatorHelper.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorHelper.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/EmulatorHelper.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorHelper.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/FilteredMemoryState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/FilteredMemoryState.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/FilteredMemoryState.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/FilteredMemoryState.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/MemoryImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryImage.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/MemoryImage.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryImage.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/state/DumpMiscState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/DumpMiscState.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/state/DumpMiscState.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/DumpMiscState.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/state/RegisterState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/RegisterState.java similarity index 100% rename from Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/emulator/state/RegisterState.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/RegisterState.java diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/pcode/AbstractAppender.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/util/pcode/AbstractAppender.java similarity index 100% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/pcode/AbstractAppender.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/util/pcode/AbstractAppender.java diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/pcode/AbstractPcodeFormatter.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/util/pcode/AbstractPcodeFormatter.java similarity index 100% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/pcode/AbstractPcodeFormatter.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/util/pcode/AbstractPcodeFormatter.java diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/pcode/Appender.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/util/pcode/Appender.java similarity index 100% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/pcode/Appender.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/util/pcode/Appender.java diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/pcode/PcodeFormatter.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/util/pcode/PcodeFormatter.java similarity index 100% rename from Ghidra/Features/Base/src/main/java/ghidra/app/util/pcode/PcodeFormatter.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/app/util/pcode/PcodeFormatter.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/generic/util/datastruct/SemisparseByteArray.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/generic/util/datastruct/SemisparseByteArray.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/generic/util/datastruct/SemisparseByteArray.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/generic/util/datastruct/SemisparseByteArray.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/lifecycle/Experimental.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/lifecycle/Experimental.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/lifecycle/Experimental.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/lifecycle/Experimental.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/lifecycle/Internal.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/lifecycle/Internal.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/lifecycle/Internal.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/lifecycle/Internal.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/lifecycle/Transitional.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/lifecycle/Transitional.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/lifecycle/Transitional.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/lifecycle/Transitional.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/lifecycle/Unfinished.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/lifecycle/Unfinished.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/lifecycle/Unfinished.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/lifecycle/Unfinished.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/AbstractPcodeMachine.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/AbstractPcodeMachine.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/AbstractPcodeMachine.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/AbstractPcodeMachine.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/BytesPcodeThread.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/BytesPcodeThread.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/BytesPcodeThread.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/BytesPcodeThread.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/DefaultPcodeThread.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/DefaultPcodeThread.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/DefaultPcodeThread.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/DefaultPcodeThread.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/InstructionDecoder.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/InstructionDecoder.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/InstructionDecoder.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/InstructionDecoder.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/ModifiedPcodeThread.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/ModifiedPcodeThread.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/ModifiedPcodeThread.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/ModifiedPcodeThread.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeEmulator.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeEmulator.java similarity index 97% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeEmulator.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeEmulator.java index b0011f5493..34069f1c90 100644 --- a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeEmulator.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeEmulator.java @@ -18,7 +18,6 @@ package ghidra.pcode.emu; import java.util.List; import ghidra.pcode.emu.auxiliary.AuxPcodeEmulator; -import ghidra.pcode.emu.sys.EmuSyscallLibrary; import ghidra.pcode.exec.*; import ghidra.program.model.address.Address; import ghidra.program.model.lang.Language; @@ -96,8 +95,8 @@ import ghidra.program.model.lang.Language; * The default userop library is empty. For many use cases, it will be necessary to override * {@link #createUseropLibrary()} if only to implement the language-defined userops. If needed, * simulation of the host operating system is typically achieved by implementing the {@code syscall} - * userop. The fidelity of that simulation depends on the use case. See {@link EmuSyscallLibrary} - * and its implementations to see what simulators are available "out of the box." + * userop. The fidelity of that simulation depends on the use case. See the SystemEmulation module + * to see what simulators are available "out of the box." * *
* Alternatively, if the target program never invokes system calls directly, but rather via diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeMachine.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeMachine.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeMachine.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeMachine.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeStateInitializer.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeStateInitializer.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeStateInitializer.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeStateInitializer.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeThread.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeThread.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/PcodeThread.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/PcodeThread.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/SleighInstructionDecoder.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/SleighInstructionDecoder.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/SleighInstructionDecoder.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/SleighInstructionDecoder.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/SparseAddressRangeMap.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/SparseAddressRangeMap.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/SparseAddressRangeMap.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/SparseAddressRangeMap.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/ThreadPcodeExecutorState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/ThreadPcodeExecutorState.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/ThreadPcodeExecutorState.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/ThreadPcodeExecutorState.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/auxiliary/AuxEmulatorPartsFactory.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/auxiliary/AuxEmulatorPartsFactory.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/auxiliary/AuxEmulatorPartsFactory.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/auxiliary/AuxEmulatorPartsFactory.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeEmulator.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeEmulator.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeEmulator.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeEmulator.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeThread.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeThread.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeThread.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/auxiliary/AuxPcodeThread.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AbstractBytesPcodeExecutorStatePiece.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AbstractBytesPcodeExecutorStatePiece.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AbstractBytesPcodeExecutorStatePiece.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AbstractBytesPcodeExecutorStatePiece.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AbstractLongOffsetPcodeExecutorStatePiece.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AbstractLongOffsetPcodeExecutorStatePiece.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AbstractLongOffsetPcodeExecutorStatePiece.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AbstractLongOffsetPcodeExecutorStatePiece.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AccessPcodeExecutionException.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AccessPcodeExecutionException.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AccessPcodeExecutionException.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AccessPcodeExecutionException.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AddressesReadPcodeArithmetic.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AddressesReadPcodeArithmetic.java similarity index 100% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AddressesReadPcodeArithmetic.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AddressesReadPcodeArithmetic.java diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AnnotatedPcodeUseropLibrary.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AnnotatedPcodeUseropLibrary.java similarity index 99% rename from Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AnnotatedPcodeUseropLibrary.java rename to Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AnnotatedPcodeUseropLibrary.java index 944be75ddd..dd3fd1cf8e 100644 --- a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/exec/AnnotatedPcodeUseropLibrary.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/AnnotatedPcodeUseropLibrary.java @@ -26,7 +26,6 @@ import java.util.stream.Stream; import org.apache.commons.lang3.reflect.TypeUtils; -import ghidra.pcode.emu.linux.EmuLinuxAmd64SyscallUseropLibrary; import ghidra.pcode.exec.PcodeExecutorStatePiece.Reason; import ghidra.program.model.pcode.Varnode; import utilities.util.AnnotationUtilities; @@ -35,8 +34,7 @@ import utilities.util.AnnotationUtilities; * A userop library wherein Java methods are exported via a special annotation * *
- * See {@code StandAloneEmuExampleScript} for an example of implementing a userop library. A more
- * complex example is {@link EmuLinuxAmd64SyscallUseropLibrary}.
+ * See {@code StandAloneEmuExampleScript} for an example of implementing a userop library.
*
* @param
- * try (UndoableTransaction txid = UndoableTransaction.start(program, "Do a thing", true)) {
+ * try (UndoableTransaction txid = UndoableTransaction.start(program, "Do a thing")) {
* // ... Do that thing
* }
*
@@ -88,7 +88,6 @@ public interface UndoableTransaction extends AutoCloseable {
* @param domainObject the domain object
* @param description a description of the change
* @param listener a listener for aborted transactions
- * @param commitByDefault true to commit at the end of the block
* @return the transaction handle
*/
public static UndoableTransaction start(UndoableDomainObject domainObject, String description,
@@ -102,7 +101,6 @@ public interface UndoableTransaction extends AutoCloseable {
*
* @param dataTypeManager the data type manager
* @param description a description of the change
- * @param commitByDefault true to commit at the end of the block
* @return the transaction handle
*/
public static UndoableTransaction start(DataTypeManager dataTypeManager, String description) {