Package ghidra.pcode.emu.unix
Class AbstractEmuUnixFileSystem<T>
java.lang.Object
ghidra.pcode.emu.unix.AbstractEmuUnixFileSystem<T>
- Type Parameters:
T
- the type of values stored in the file system
- All Implemented Interfaces:
EmuUnixFileSystem<T>
- Direct Known Subclasses:
BytesEmuUnixFileSystem
An abstract emulated file system, exported to an emulated user-space program
-
Nested Class Summary
Nested classes/interfaces inherited from interface ghidra.pcode.emu.unix.EmuUnixFileSystem
EmuUnixFileSystem.OpenFlag
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncreateOrGetFile
(String pathname, int mode) Get the named file, creating it if it doesn't already existGet the named fileabstract AbstractEmuUnixFile
<T> A factory for constructing a new file (without adding it to the file system)open
(String pathname, Set<EmuUnixFileSystem.OpenFlag> flags, EmuUnixUser user, int mode) Open the requested file according to the given flags and uservoid
putFile
(String pathname, EmuUnixFile<T> file) Place the given file at the given locationvoid
unlink
(String pathname, EmuUnixUser user) Remove the file at the given location
-
Field Details
-
filesByPath
-
-
Constructor Details
-
AbstractEmuUnixFileSystem
public AbstractEmuUnixFileSystem()
-
-
Method Details
-
newFile
Description copied from interface:EmuUnixFileSystem
A factory for constructing a new file (without adding it to the file system)- Specified by:
newFile
in interfaceEmuUnixFileSystem<T>
- Parameters:
pathname
- the path of the filemode
- the mode of the new file- Returns:
- the new file
- Throws:
EmuIOException
- if the file cannot be constructed
-
createOrGetFile
Description copied from interface:EmuUnixFileSystem
Get the named file, creating it if it doesn't already existThis is accessed by the emulator user, not the target program.
- Specified by:
createOrGetFile
in interfaceEmuUnixFileSystem<T>
- Parameters:
pathname
- the pathname of the requested filemode
- the mode of a created file. Ignored if the file exists- Returns:
- the file
- Throws:
EmuIOException
- if an error occurred
-
getFile
Description copied from interface:EmuUnixFileSystem
Get the named fileThis is accessed by the emulator user, not the target program.
- Specified by:
getFile
in interfaceEmuUnixFileSystem<T>
- Parameters:
pathname
- the pathname of the requested file- Returns:
- the file, or
null
if it doesn't exist - Throws:
EmuIOException
- if an error occurred
-
putFile
Description copied from interface:EmuUnixFileSystem
Place the given file at the given locationThis is accessed by the emulator user, not the target program. If the file already exists, it is replaced silently.
- Specified by:
putFile
in interfaceEmuUnixFileSystem<T>
- Parameters:
pathname
- the pathname of the filefile
- the file, presumably having the same pathname- Throws:
EmuIOException
- if an error occurred
-
open
public EmuUnixFile<T> open(String pathname, Set<EmuUnixFileSystem.OpenFlag> flags, EmuUnixUser user, int mode) throws EmuIOException Description copied from interface:EmuUnixFileSystem
Open the requested file according to the given flags and userThis is generally accessed by the target program via a
DefaultEmuUnixFileHandle
.- Specified by:
open
in interfaceEmuUnixFileSystem<T>
- Parameters:
pathname
- the pathname of the requested fileflags
- the requested open flagsuser
- the user making the requestmode
- the mode to assign the file, if created. Otherwise ignored- Returns:
- the file
- Throws:
EmuIOException
- if an error occurred, e.g., file not found, or access denied
-
unlink
Description copied from interface:EmuUnixFileSystem
Remove the file at the given locationTODO: Separate the user-facing routine from the target-facing routine.
If the file does not exist, this has no effect.
- Specified by:
unlink
in interfaceEmuUnixFileSystem<T>
- Parameters:
pathname
- the pathname of the file to unlinkuser
- the user requesting the unlink- Throws:
EmuIOException
- if an error occurred
-