Package ghidra.app.cmd.memory
Class AddByteMappedMemoryBlockCmd
- java.lang.Object
-
- ghidra.app.cmd.memory.AddByteMappedMemoryBlockCmd
-
- All Implemented Interfaces:
Command
public class AddByteMappedMemoryBlockCmd extends java.lang.Object
Command for adding byte-mapped memory blocks
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
comment
protected boolean
execute
protected boolean
isOverlay
protected boolean
isVolatile
protected long
length
protected java.lang.String
message
protected java.lang.String
name
protected boolean
read
protected java.lang.String
source
protected Address
start
protected boolean
write
-
Constructor Summary
Constructors Constructor Description AddByteMappedMemoryBlockCmd(java.lang.String name, java.lang.String comment, java.lang.String source, Address start, long length, boolean read, boolean write, boolean execute, boolean isVolatile, Address mappedAddress, boolean isOverlay)
Create a new AddByteMappedMemoryBlockCmd with 1:1 byte mapping schemeAddByteMappedMemoryBlockCmd(java.lang.String name, java.lang.String comment, java.lang.String source, Address start, long length, boolean read, boolean write, boolean execute, boolean isVolatile, Address mappedAddress, ByteMappingScheme byteMappingScheme, boolean isOverlay)
Create a new AddByteMappedMemoryBlockCmd with a specified byte mapping scheme.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
applyTo(DomainObject obj)
Applies the command to the given domain object.protected MemoryBlock
createMemoryBlock(Memory memory)
java.lang.String
getName()
Returns the name of this command.java.lang.String
getStatusMsg()
Returns the status message indicating the status of the command.
-
-
-
Field Detail
-
message
protected java.lang.String message
-
name
protected final java.lang.String name
-
comment
protected final java.lang.String comment
-
source
protected final java.lang.String source
-
start
protected final Address start
-
length
protected final long length
-
read
protected final boolean read
-
write
protected final boolean write
-
execute
protected final boolean execute
-
isVolatile
protected final boolean isVolatile
-
isOverlay
protected final boolean isOverlay
-
-
Constructor Detail
-
AddByteMappedMemoryBlockCmd
public AddByteMappedMemoryBlockCmd(java.lang.String name, java.lang.String comment, java.lang.String source, Address start, long length, boolean read, boolean write, boolean execute, boolean isVolatile, Address mappedAddress, ByteMappingScheme byteMappingScheme, boolean isOverlay)
Create a new AddByteMappedMemoryBlockCmd with a specified byte mapping scheme. Byte mapping scheme is specified by two values schemeDestByteCount and schemeSrcByteCount which may be viewed as a ratio of number of destination bytes to number of mapped source bytes. When the destination consumes bytes from the mapped source it consume schemeDestByteCount bytes then skips (schemeSrcByteCount - schemeDestByteCount) bytes before repeating the mapping sequence over the extent of the destination block. The block start address and source mappedAddress must be chosen carefully as they relate to the mapping scheme when it is anything other than 1:1.- Parameters:
name
- the name for the new memory block.comment
- the comment for the blocksource
- indicates what is creating the blockstart
- the start address for the the blocklength
- the length of the new blockread
- sets the block's read permission flagwrite
- sets the block's write permission flagexecute
- sets the block's execute permission flagisVolatile
- sets the block's volatile flagmappedAddress
- the address in memory that will serve as the bytes source for the blockbyteMappingScheme
- byte mapping scheme (may be null for 1:1 mapping)isOverlay
- if true, the block will be created in a new overlay address space.
-
AddByteMappedMemoryBlockCmd
public AddByteMappedMemoryBlockCmd(java.lang.String name, java.lang.String comment, java.lang.String source, Address start, long length, boolean read, boolean write, boolean execute, boolean isVolatile, Address mappedAddress, boolean isOverlay)
Create a new AddByteMappedMemoryBlockCmd with 1:1 byte mapping scheme- Parameters:
name
- the name for the new memory block.comment
- the comment for the blocksource
- indicates what is creating the blockstart
- the start address for the the blocklength
- the length of the new blockread
- sets the block's read permission flagwrite
- sets the block's write permission flagexecute
- sets the block's execute permission flagisVolatile
- sets the block's volatile flagmappedAddress
- the address in memory that will serve as the bytes source for the blockisOverlay
- if true, the block will be created in a new overlay address space.
-
-
Method Detail
-
createMemoryBlock
protected MemoryBlock createMemoryBlock(Memory memory) throws LockException, MemoryConflictException, AddressOverflowException, java.lang.IllegalArgumentException
- Throws:
LockException
MemoryConflictException
AddressOverflowException
java.lang.IllegalArgumentException
-
getStatusMsg
public java.lang.String getStatusMsg()
Description copied from interface:Command
Returns the status message indicating the status of the command.- Specified by:
getStatusMsg
in interfaceCommand
- Returns:
- reason for failure, or null if the status of the command was successful
-
getName
public java.lang.String getName()
Description copied from interface:Command
Returns the name of this command.
-
applyTo
public boolean applyTo(DomainObject obj)
Description copied from interface:Command
Applies the command to the given domain object.
-
-