From 44c7f8381c34478098a4b730f5ff8f6060f06ea0 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Mon, 15 Dec 2025 18:52:45 +0000 Subject: [PATCH] GP-6234: Formally mark EmulatorHelper and friends @Deprecated. --- .../ghidra/app/emulator/AdaptedEmulator.java | 14 +++++++++-- .../app/emulator/AdaptedMemoryState.java | 5 ++-- .../ghidra/app/emulator/DefaultEmulator.java | 7 ++++-- .../java/ghidra/app/emulator/Emulator.java | 10 ++++---- .../app/emulator/EmulatorConfiguration.java | 5 ++-- .../ghidra/app/emulator/EmulatorHelper.java | 6 +++-- .../app/emulator/FilteredMemoryState.java | 5 ++-- .../app/emulator/MemoryAccessFilter.java | 10 ++++++-- .../emulator/memory/CompositeLoadImage.java | 5 ++-- .../app/emulator/memory/EmulatorLoadData.java | 5 ++-- .../app/emulator/memory/MemoryImage.java | 23 ++++++++++++------- .../app/emulator/memory/MemoryLoadImage.java | 5 ++-- .../app/emulator/memory/ProgramLoadImage.java | 5 ++-- .../memory/ProgramMappedLoadImage.java | 5 ++-- .../emulator/memory/ProgramMappedMemory.java | 5 ++-- .../app/emulator/state/DumpMiscState.java | 5 ++-- .../state/FilteredMemoryPageOverlay.java | 5 ++-- .../emulator/state/FilteredRegisterBank.java | 5 ++-- .../app/emulator/state/RegisterState.java | 1 + .../ghidra/pcode/emulate/BreakCallBack.java | 6 +++++ .../java/ghidra/pcode/emulate/BreakTable.java | 1 + .../pcode/emulate/BreakTableCallBack.java | 1 + .../java/ghidra/pcode/emulate/Emulate.java | 1 + .../emulate/EmulateDisassemblerContext.java | 5 ++-- .../pcode/emulate/EmulateExecutionState.java | 6 ++--- .../EmulateInstructionStateModifier.java | 5 ++++ .../emulate/EmulateMemoryStateBuffer.java | 5 ++-- .../emulate/InstructionDecodeException.java | 6 ++--- .../UnimplementedCallOtherException.java | 6 ++--- .../UnimplementedInstructionException.java | 6 ++--- .../emulate/callother/OpBehaviorOther.java | 6 ++--- .../emulate/callother/OpBehaviorOtherNOP.java | 6 ++--- .../ghidra/pcode/loadimage/LoadImage.java | 1 + .../ghidra/pcode/loadimage/LoadImageFunc.java | 6 ++--- .../pcode/memstate/AbstractMemoryState.java | 5 ++-- .../pcode/memstate/DefaultMemoryState.java | 5 ++-- .../ghidra/pcode/memstate/MemoryBank.java | 1 + .../pcode/memstate/MemoryFaultHandler.java | 5 ++-- .../ghidra/pcode/memstate/MemoryPage.java | 5 ++-- .../ghidra/pcode/memstate/MemoryPageBank.java | 5 ++-- .../pcode/memstate/MemoryPageOverlay.java | 1 + .../ghidra/pcode/memstate/MemoryState.java | 5 ++-- .../pcode/memstate/UniqueMemoryBank.java | 5 ++-- 43 files changed, 151 insertions(+), 84 deletions(-) diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/AdaptedEmulator.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/AdaptedEmulator.java index 3dd0cf967e..9cebdeac78 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/AdaptedEmulator.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/AdaptedEmulator.java @@ -48,12 +48,14 @@ import ghidra.util.task.TaskMonitor; * ported to use the new {@link PcodeEmulator} directly. New use cases based on p-code emulation * should use the {@link PcodeEmulator} directly. Older use cases still being actively maintained * should begin work porting to {@link PcodeEmulator}. Old use cases without active maintenance may - * try this wrapper, but may have to remain using {@link DefaultEmulator}. At a minimum, to update - * such old use cases, {@code new Emulator(...)} must be replaced by + * try this wrapper, but they will no longer compile once this adaptor is removed. At a minimum, to + * update such old use cases, {@code new Emulator(...)} must be replaced by * {@code new DefaultEmulator(...)}. */ @Transitional +@Deprecated(since = "12.1", forRemoval = true) public class AdaptedEmulator implements Emulator { + @Deprecated(since = "12.1", forRemoval = true) class AdaptedPcodeEmulator extends PcodeEmulator { private final MemoryLoadImage loadImage; private final MemoryFaultHandler faultHandler; @@ -91,6 +93,7 @@ public class AdaptedEmulator implements Emulator { } } + @Deprecated(since = "12.1", forRemoval = true) @Transitional public class AdaptedPcodeUseropLibrary extends AnnotatedPcodeUseropLibrary { @PcodeUserop @@ -106,6 +109,7 @@ public class AdaptedEmulator implements Emulator { } } + @Deprecated(since = "12.1", forRemoval = true) class AdaptedPcodeThread extends BytesPcodeThread { Address lastExecuteAddress; @@ -145,6 +149,7 @@ public class AdaptedEmulator implements Emulator { } } + @Deprecated(since = "12.1", forRemoval = true) class AdaptedStateCallbacks implements PcodeStateCallbacks { private final MemoryLoadImage loadImage; @@ -184,6 +189,7 @@ public class AdaptedEmulator implements Emulator { } } + @Deprecated(since = "12.1", forRemoval = true) class AdaptedBytesPcodeExecutorState extends BytesPcodeExecutorState { public AdaptedBytesPcodeExecutorState(Language language, MemoryFaultHandler faultHandler, MemoryLoadImage loadImage) { @@ -228,6 +234,7 @@ public class AdaptedEmulator implements Emulator { } } + @Deprecated(since = "12.1", forRemoval = true) static class AdaptedBytesPcodeExecutorStatePiece extends AbstractBytesPcodeExecutorStatePiece { private final MemoryFaultHandler faultHandler; @@ -244,6 +251,7 @@ public class AdaptedEmulator implements Emulator { } } + @Deprecated(since = "12.1", forRemoval = true) static class AdaptedBytesPcodeExecutorStateSpace extends BytesPcodeExecutorStateSpace { private final MemoryFaultHandler faultHandler; @@ -270,6 +278,7 @@ public class AdaptedEmulator implements Emulator { } } + @Deprecated(since = "12.1", forRemoval = true) class AdaptedBreakTableCallback extends BreakTableCallBack { public AdaptedBreakTableCallback() { super((SleighLanguage) language); @@ -299,6 +308,7 @@ public class AdaptedEmulator implements Emulator { * track what filters are installed. The {@link AdaptedBytesPcodeExecutorState} will invoke the * filter chain and then perform the read or write itself. */ + @Deprecated(since = "12.1", forRemoval = true) static class AdaptedFilteredMemoryState extends FilteredMemoryState { private MemoryAccessFilter headFilter; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/AdaptedMemoryState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/AdaptedMemoryState.java index 73e12ec3ef..185ef98460 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/AdaptedMemoryState.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/AdaptedMemoryState.java @@ -4,9 +4,9 @@ * 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. @@ -50,6 +50,7 @@ import ghidra.program.model.address.AddressSpace; * so long as {@link T} can be made concrete. */ @Transitional +@Deprecated(since = "12.1", forRemoval = true) public class AdaptedMemoryState extends AbstractMemoryState { private final PcodeExecutorState state; private final PcodeArithmetic arithmetic; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/DefaultEmulator.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/DefaultEmulator.java index 1cf0a21966..64d4ee4019 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/DefaultEmulator.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/DefaultEmulator.java @@ -4,9 +4,9 @@ * 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. @@ -45,7 +45,10 @@ import ghidra.util.task.TaskMonitor; * to {@code new DefaultEmulator(...)}. It is highly recommended to port to the newer * {@link PcodeEmulator}. You may find the {@link AdaptedEmulator} useful during the transition, but * that class is only transitional. + * + * @deprecated Please use {@link PcodeEmulator} instead. */ +@Deprecated(since = "12.1", forRemoval = true) public class DefaultEmulator implements Emulator { private final MemoryFaultHandler faultHandler; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/Emulator.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/Emulator.java index 2068304655..2113b28370 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/Emulator.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/Emulator.java @@ -4,9 +4,9 @@ * 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. @@ -27,10 +27,10 @@ import ghidra.util.task.TaskMonitor; /** * The emulator interface * - *

- * This interface may soon be deprecated. It was extracted from what has now been renamed - * {@link DefaultEmulator}. Please consider using {@link PcodeEmulator} instead. + * @deprecated This interface was extracted from what has now been renamed {@link DefaultEmulator} + * and is also deprecated. Please use {@link PcodeEmulator} instead. */ +@Deprecated(since = "12.1", forRemoval = true) public interface Emulator { /** diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java index 5e4f53dad6..d8ae60d7d0 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorConfiguration.java @@ -4,9 +4,9 @@ * 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. @@ -20,6 +20,7 @@ import ghidra.pcode.memstate.MemoryFaultHandler; import ghidra.program.model.lang.Language; import ghidra.program.model.lang.Register; +@Deprecated(since = "12.1", forRemoval = true) public interface EmulatorConfiguration { Language getLanguage(); diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorHelper.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorHelper.java index 55edd01da8..3a7c83d757 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorHelper.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/EmulatorHelper.java @@ -4,9 +4,9 @@ * 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. @@ -49,7 +49,9 @@ import ghidra.util.task.TaskMonitor; * * @see PcodeEmulator * @see Emulator + * @deprecated Please use {@link PcodeEmulator} instead. */ +@Deprecated(since = "12.1", forRemoval = true) public class EmulatorHelper implements MemoryFaultHandler, EmulatorConfiguration { private final Program program; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/FilteredMemoryState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/FilteredMemoryState.java index cdbd538ca9..998e12c92a 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/FilteredMemoryState.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/FilteredMemoryState.java @@ -4,9 +4,9 @@ * 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. @@ -19,6 +19,7 @@ import ghidra.pcode.memstate.DefaultMemoryState; import ghidra.program.model.address.AddressSpace; import ghidra.program.model.lang.Language; +@Deprecated(since = "12.1", forRemoval = true) class FilteredMemoryState extends DefaultMemoryState { private MemoryAccessFilter filter; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java index bbd6d931cd..a6a8204d51 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/MemoryAccessFilter.java @@ -4,9 +4,9 @@ * 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. @@ -15,6 +15,8 @@ */ package ghidra.app.emulator; +import ghidra.pcode.emu.PcodeEmulationCallbacks; +import ghidra.pcode.emu.PcodeEmulator; import ghidra.program.model.address.AddressSpace; /** @@ -24,7 +26,11 @@ import ghidra.program.model.address.AddressSpace; * Several of these filters may be chained together, each being invoked in the reverse of the order * added. In this way, the first added gets the "final say," but it also is farthest from the * original request. + * + * @deprecated Please use {@link PcodeEmulator} instead. For similar callbacks, see + * {@link PcodeEmulationCallbacks} */ +@Deprecated(since = "12.1", forRemoval = true) public abstract class MemoryAccessFilter { private MemoryAccessFilter prevFilter; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java index 1972346ee6..3846dc304a 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/CompositeLoadImage.java @@ -4,9 +4,9 @@ * 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. @@ -21,6 +21,7 @@ import ghidra.pcode.memstate.MemoryPage; import ghidra.program.model.address.Address; import ghidra.program.model.address.AddressSetView; +@Deprecated(since = "12.1", forRemoval = true) public class CompositeLoadImage implements MemoryLoadImage { private List providers = new ArrayList(); diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java index 9b4ab98624..fb963f76f8 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/EmulatorLoadData.java @@ -4,9 +4,9 @@ * 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. @@ -18,6 +18,7 @@ package ghidra.app.emulator.memory; import ghidra.app.emulator.state.RegisterState; import ghidra.program.model.address.AddressSetView; +@Deprecated(since = "12.1", forRemoval = true) public interface EmulatorLoadData { public MemoryLoadImage getMemoryLoadImage(); diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryImage.java index 68ada37a49..a6b4327413 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryImage.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryImage.java @@ -15,23 +15,30 @@ */ package ghidra.app.emulator.memory; +import ghidra.pcode.emu.PcodeEmulationCallbacks; +import ghidra.pcode.emu.PcodeEmulator; import ghidra.pcode.memstate.*; import ghidra.program.model.address.AddressSpace; /** * A kind of MemoryBank which retrieves its data from an underlying LoadImage *

- * Any bytes requested on the bank which lie in the LoadImage are retrieved from - * the LoadImage. Other addresses in the space are filled in with zero. - * This bank cannot be written to. + * Any bytes requested on the bank which lie in the LoadImage are retrieved from the LoadImage. + * Other addresses in the space are filled in with zero. This bank cannot be written to. + * + * @deprecated Please use {@link PcodeEmulator} instead. We generally expect the image to be + * manually loaded into the emulator, though you can use {@link PcodeEmulationCallbacks} + * to load an image lazily. */ +@Deprecated(since = "12.1", forRemoval = true) public class MemoryImage extends MemoryBank { private MemoryLoadImage loader; // The underlying LoadImage /** - * A MemoryImage needs everything a basic memory bank needs and is needs to know - * the underlying LoadImage object to forward read requests to. + * A MemoryImage needs everything a basic memory bank needs and is needs to know the underlying + * LoadImage object to forward read requests to. + * * @param spc is the address space associated with the memory bank * @param isBigEndian * @param ps is the number of bytes in a page (must be power of 2) @@ -45,9 +52,9 @@ public class MemoryImage extends MemoryBank { } /** - * Retrieve an aligned page from the bank. First an attempt is made to retrieve the - * page from the LoadImage, which may do its own zero filling. If the attempt fails, the - * page is entirely filled in with zeros. + * Retrieve an aligned page from the bank. First an attempt is made to retrieve the page from + * the LoadImage, which may do its own zero filling. If the attempt fails, the page is entirely + * filled in with zeros. */ @Override public MemoryPage getPage(long addr) { diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java index 74fb7e2fa2..8445aaa987 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/MemoryLoadImage.java @@ -4,9 +4,9 @@ * 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. @@ -18,6 +18,7 @@ package ghidra.app.emulator.memory; import ghidra.pcode.loadimage.LoadImage; import ghidra.program.model.address.Address; +@Deprecated(since = "12.1", forRemoval = true) public interface MemoryLoadImage extends LoadImage { public void writeBack(byte[] bytes, int size, Address addr, int offset); diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java index 7a8ff075a9..8dc49556ed 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramLoadImage.java @@ -4,9 +4,9 @@ * 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. @@ -27,6 +27,7 @@ import ghidra.util.Msg; import ghidra.util.exception.AssertException; // Derived from ProgramMappedMemory +@Deprecated(since = "12.1", forRemoval = true) public class ProgramLoadImage { private Program program; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java index 1d92680147..b0d8a1a763 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedLoadImage.java @@ -4,9 +4,9 @@ * 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. @@ -17,6 +17,7 @@ package ghidra.app.emulator.memory; import ghidra.program.model.address.Address; +@Deprecated(since = "12.1", forRemoval = true) public class ProgramMappedLoadImage implements MemoryLoadImage { private ProgramMappedMemory pmm; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java index 1650623f8a..3c962bc6f3 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/memory/ProgramMappedMemory.java @@ -4,9 +4,9 @@ * 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. @@ -26,6 +26,7 @@ import ghidra.program.model.mem.*; import ghidra.util.Msg; import ghidra.util.exception.AssertException; +@Deprecated(since = "12.1", forRemoval = true) public class ProgramMappedMemory { private Program program; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/DumpMiscState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/DumpMiscState.java index f579296869..36accb8e30 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/DumpMiscState.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/DumpMiscState.java @@ -4,9 +4,9 @@ * 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. @@ -21,6 +21,7 @@ import ghidra.util.*; import java.util.*; +@Deprecated(since = "12.1", forRemoval = true) public class DumpMiscState implements RegisterState { private Map> context = diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java index c053fa9ed5..16c14e6784 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredMemoryPageOverlay.java @@ -4,9 +4,9 @@ * 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. @@ -19,6 +19,7 @@ import ghidra.pcode.memstate.MemoryBank; import ghidra.pcode.memstate.MemoryPageOverlay; import ghidra.program.model.address.AddressSpace; +@Deprecated(since = "12.1", forRemoval = true) public class FilteredMemoryPageOverlay extends MemoryPageOverlay { private boolean writeBack; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java index b554a9b6e0..446fbf8e63 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/FilteredRegisterBank.java @@ -4,9 +4,9 @@ * 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. @@ -20,6 +20,7 @@ import ghidra.pcode.memstate.MemoryPageBank; import ghidra.program.model.address.AddressSpace; import ghidra.program.model.lang.Language; +@Deprecated(since = "12.1", forRemoval = true) public class FilteredRegisterBank extends MemoryPageBank { //private final RegisterState regState; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/RegisterState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/RegisterState.java index 1e56e0b9f8..0ea6b1d3b4 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/RegisterState.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/app/emulator/state/RegisterState.java @@ -18,6 +18,7 @@ package ghidra.app.emulator.state; import java.util.List; import java.util.Set; +@Deprecated(since = "12.1", forRemoval = true) public interface RegisterState { public Set getKeys(); diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakCallBack.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakCallBack.java index 69fdfe0ff8..5ad1bc4ab1 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakCallBack.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakCallBack.java @@ -15,6 +15,8 @@ */ package ghidra.pcode.emulate; +import ghidra.pcode.emu.PcodeMachine; +import ghidra.pcode.exec.AnnotatedPcodeUseropLibrary; import ghidra.pcode.pcoderaw.PcodeOpRaw; import ghidra.program.model.address.Address; @@ -31,7 +33,11 @@ import ghidra.program.model.address.Address; * * depending on whether the breakpoint is tailored for a particular pcode op or for * a machine address. + * + * @deprecated Use {@link PcodeMachine#inject(Address, String)}. By injecting a userop invocation, + * you can receive a callback in a {@link AnnotatedPcodeUseropLibrary}. */ +@Deprecated(since = "12.1", forRemoval = true) public class BreakCallBack { protected Emulate emulate; // The emulator currently associated with this breakpoint diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakTable.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakTable.java index ac6ff2234b..d4273af740 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakTable.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakTable.java @@ -33,6 +33,7 @@ import ghidra.program.model.address.Address; * depending on the type of breakpoint they currently want to invoke */ +@Deprecated(since = "12.1", forRemoval = true) public interface BreakTable { /** diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakTableCallBack.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakTableCallBack.java index 19bbf41619..16f2e56cf8 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakTableCallBack.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/BreakTableCallBack.java @@ -33,6 +33,7 @@ import ghidra.program.model.address.Address; * Breakpoints are stored in map containers, and the core BreakTable methods * are implemented to search in these containers */ +@Deprecated(since = "12.1", forRemoval = true) public class BreakTableCallBack implements BreakTable { public static final String DEFAULT_NAME = "*"; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/Emulate.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/Emulate.java index e44fe88efe..a8c28bd66e 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/Emulate.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/Emulate.java @@ -42,6 +42,7 @@ import ghidra.util.task.TaskMonitor; * as the execution address is set, either explicitly, or via branches and fallthrus. There * are additional methods for inspecting the pcode ops in the current instruction as a sequence. */ +@Deprecated(since = "12.1", forRemoval = true) public class Emulate { private MemoryState memstate; // the memory state of the emulator. diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateDisassemblerContext.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateDisassemblerContext.java index 7d330c7f3e..fcb5d8214b 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateDisassemblerContext.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateDisassemblerContext.java @@ -4,9 +4,9 @@ * 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. @@ -22,6 +22,7 @@ import ghidra.program.model.address.Address; import ghidra.program.model.lang.*; import ghidra.program.util.ProgramContextImpl; +@Deprecated(since = "12.1", forRemoval = true) public class EmulateDisassemblerContext implements DisassemblerContext { private final Language language; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateExecutionState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateExecutionState.java index ad775c68b7..236c255fac 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateExecutionState.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateExecutionState.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * 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. @@ -16,6 +15,7 @@ */ package ghidra.pcode.emulate; +@Deprecated(since = "12.1", forRemoval = true) public enum EmulateExecutionState { /** diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateInstructionStateModifier.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateInstructionStateModifier.java index 18dd3f470f..ea4315ee31 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateInstructionStateModifier.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateInstructionStateModifier.java @@ -19,6 +19,8 @@ import java.util.*; import ghidra.pcode.emulate.callother.OpBehaviorOther; import ghidra.pcode.error.LowlevelError; +import ghidra.pcode.exec.AnnotatedPcodeUseropLibrary; +import ghidra.pcode.exec.PcodeUseropLibrary; import ghidra.program.model.address.Address; import ghidra.program.model.lang.Language; import ghidra.program.model.lang.RegisterValue; @@ -30,7 +32,10 @@ import ghidra.program.model.pcode.Varnode; * emulation with adjusting the current execution state, providing support for custom pcodeop's * (i.e., CALLOTHER). The implementation of this interface must provide a public constructor which * takes a single Emulate argument. + * + * @deprecated Use {@link PcodeUseropLibrary} or {@link AnnotatedPcodeUseropLibrary} instead */ +@Deprecated(since = "12.1", forRemoval = true) public abstract class EmulateInstructionStateModifier { protected final Emulate emu; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateMemoryStateBuffer.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateMemoryStateBuffer.java index 889b90a54a..53b89ac749 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateMemoryStateBuffer.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/EmulateMemoryStateBuffer.java @@ -4,9 +4,9 @@ * 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. @@ -26,6 +26,7 @@ import ghidra.program.model.mem.*; * which wraps an emulator MemoryState. This implementation wraps all specified * memory offsets within the associated address space. */ +@Deprecated(since = "12.1", forRemoval = true) public class EmulateMemoryStateBuffer implements MemBuffer { private final MemoryState memState; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/InstructionDecodeException.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/InstructionDecodeException.java index ab317d5ddb..1d005271b8 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/InstructionDecodeException.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/InstructionDecodeException.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * 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. @@ -19,6 +18,7 @@ package ghidra.pcode.emulate; import ghidra.pcode.error.LowlevelError; import ghidra.program.model.address.Address; +@Deprecated(since = "12.1", forRemoval = true) public class InstructionDecodeException extends LowlevelError { private Address pc; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/UnimplementedCallOtherException.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/UnimplementedCallOtherException.java index fcd1bc558e..483aabd570 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/UnimplementedCallOtherException.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/UnimplementedCallOtherException.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * 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. @@ -19,6 +18,7 @@ package ghidra.pcode.emulate; import ghidra.pcode.error.LowlevelError; import ghidra.pcode.pcoderaw.PcodeOpRaw; +@Deprecated(since = "12.1", forRemoval = true) public class UnimplementedCallOtherException extends LowlevelError { private String opName; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/UnimplementedInstructionException.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/UnimplementedInstructionException.java index 8caf4fa78f..05ff1aac62 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/UnimplementedInstructionException.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/UnimplementedInstructionException.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * 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. @@ -19,6 +18,7 @@ package ghidra.pcode.emulate; import ghidra.pcode.error.LowlevelError; import ghidra.program.model.address.Address; +@Deprecated(since = "12.1", forRemoval = true) public class UnimplementedInstructionException extends LowlevelError { private Address addr; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/callother/OpBehaviorOther.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/callother/OpBehaviorOther.java index c2cbde1d5d..3458399d8a 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/callother/OpBehaviorOther.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/callother/OpBehaviorOther.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * 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. @@ -19,6 +18,7 @@ package ghidra.pcode.emulate.callother; import ghidra.pcode.emulate.Emulate; import ghidra.program.model.pcode.Varnode; +@Deprecated(since = "12.1", forRemoval = true) public interface OpBehaviorOther { /** diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/callother/OpBehaviorOtherNOP.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/callother/OpBehaviorOtherNOP.java index 68c7239f61..6f31014b97 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/callother/OpBehaviorOtherNOP.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/callother/OpBehaviorOtherNOP.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * 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. @@ -19,6 +18,7 @@ package ghidra.pcode.emulate.callother; import ghidra.pcode.emulate.Emulate; import ghidra.program.model.pcode.Varnode; +@Deprecated(since = "12.1", forRemoval = true) public class OpBehaviorOtherNOP implements OpBehaviorOther { @Override diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/loadimage/LoadImage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/loadimage/LoadImage.java index e540dc16ec..aa8ee31bac 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/loadimage/LoadImage.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/loadimage/LoadImage.java @@ -19,6 +19,7 @@ import ghidra.program.model.address.Address; // API for accessing a binary load image // using 1 of possibly many different methods behind the scenes +@Deprecated(since = "12.1", forRemoval = true) public interface LoadImage { // TODO this doesn't appear to be used. diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/loadimage/LoadImageFunc.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/loadimage/LoadImageFunc.java index 635edb4386..ee92bc20f9 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/loadimage/LoadImageFunc.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/loadimage/LoadImageFunc.java @@ -1,13 +1,12 @@ /* ### * IP: GHIDRA - * REVIEWED: YES * * 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. @@ -18,6 +17,7 @@ package ghidra.pcode.loadimage; import ghidra.program.model.address.Address; +@Deprecated(since = "12.1", forRemoval = true) public class LoadImageFunc { public Address address; // Start of function public String name; // Name of function diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/AbstractMemoryState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/AbstractMemoryState.java index cd34f29d71..7e7b490869 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/AbstractMemoryState.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/AbstractMemoryState.java @@ -4,9 +4,9 @@ * 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. @@ -24,6 +24,7 @@ import ghidra.program.model.lang.Language; import ghidra.program.model.lang.Register; import ghidra.program.model.pcode.Varnode; +@Deprecated(since = "12.1", forRemoval = true) public abstract class AbstractMemoryState implements MemoryState { final Language language; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/DefaultMemoryState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/DefaultMemoryState.java index 77dd280da3..6501755773 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/DefaultMemoryState.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/DefaultMemoryState.java @@ -4,9 +4,9 @@ * 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. @@ -28,6 +28,7 @@ import ghidra.program.model.lang.Language; * (AddressSpace,offset,size). This class allows getting and setting of all state information of * this form. */ +@Deprecated(since = "12.1", forRemoval = true) public class DefaultMemoryState extends AbstractMemoryState { VectorSTL memspace = new VectorSTL(); diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryBank.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryBank.java index 0484dbc68a..4bf9b425cc 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryBank.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryBank.java @@ -17,6 +17,7 @@ package ghidra.pcode.memstate; import ghidra.program.model.address.AddressSpace; +@Deprecated(since = "12.1", forRemoval = true) public abstract class MemoryBank { private final int pagesize; // Number of bytes in an aligned page access diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryFaultHandler.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryFaultHandler.java index 6b4176ff6b..c84cf5cd1b 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryFaultHandler.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryFaultHandler.java @@ -4,9 +4,9 @@ * 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. @@ -17,6 +17,7 @@ package ghidra.pcode.memstate; import ghidra.program.model.address.Address; +@Deprecated(since = "12.1", forRemoval = true) public interface MemoryFaultHandler { /** diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPage.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPage.java index f1a2bf895f..fe63c4aaae 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPage.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPage.java @@ -4,9 +4,9 @@ * 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. @@ -24,6 +24,7 @@ import java.util.Arrays; * mask indicates that all data within the page is initialized. A one-bit * within the mask indicates that the corresponding data byte is initialized. */ +@Deprecated(since = "12.1", forRemoval = true) public class MemoryPage { public final byte[] data; diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPageBank.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPageBank.java index 93efd693ea..0071ae7fac 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPageBank.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPageBank.java @@ -4,9 +4,9 @@ * 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. @@ -18,6 +18,7 @@ package ghidra.pcode.memstate; import generic.stl.*; import ghidra.program.model.address.AddressSpace; +@Deprecated(since = "12.1", forRemoval = true) public class MemoryPageBank extends MemoryBank { protected MapSTL page = new ComparableMapSTL<>(); diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPageOverlay.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPageOverlay.java index e7812cb190..fc43d6c11a 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPageOverlay.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryPageOverlay.java @@ -27,6 +27,7 @@ import ghidra.program.model.address.AddressSpace; * of this page implementation. The underlying memory bank can be a null pointer * in which case, this memory bank behaves as if it were initially filled with zeros. */ +@Deprecated(since = "12.1", forRemoval = true) public class MemoryPageOverlay extends MemoryPageBank { protected MemoryBank underlie; // underlying memory object diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryState.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryState.java index 6e8d97a643..feb509ff0b 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryState.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/MemoryState.java @@ -4,9 +4,9 @@ * 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. @@ -22,6 +22,7 @@ import ghidra.program.model.address.AddressSpace; import ghidra.program.model.lang.Register; import ghidra.program.model.pcode.Varnode; +@Deprecated(since = "12.1", forRemoval = true) public interface MemoryState { /** diff --git a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/UniqueMemoryBank.java b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/UniqueMemoryBank.java index 625eae2527..1046daf297 100644 --- a/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/UniqueMemoryBank.java +++ b/Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/memstate/UniqueMemoryBank.java @@ -4,9 +4,9 @@ * 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. @@ -24,6 +24,7 @@ import ghidra.program.model.address.AddressSpace; * An subclass of {@link MemoryBank} intended for modeling the "unique" memory * space. The space is byte-addressable and paging is not supported. */ +@Deprecated(since = "12.1", forRemoval = true) public class UniqueMemoryBank extends MemoryBank { /**A map from {@link Long} offsets to byte values would require many lookups.