public abstract class UnixSyscallHandler<T extends NewFileIO> extends Object implements SyscallHandler<T>
| 限定符和类型 | 字段和说明 |
|---|---|
protected Map<Integer,T> |
fdMap |
protected static int |
SIGBUS |
protected static int |
SIGCHLD |
protected boolean |
threadDispatcherEnabled |
protected boolean |
verbose |
DARWIN_SWI_SYSCALL| 构造器和说明 |
|---|
UnixSyscallHandler() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addIOResolver(IOResolver<T> resolver)
后面添加的优先级高
|
protected int |
bind(Emulator<?> emulator,
int sockfd,
com.sun.jna.Pointer addr,
int addrlen) |
protected int |
close(Emulator<?> emulator,
int fd) |
protected int |
connect(Emulator<?> emulator,
int sockfd,
com.sun.jna.Pointer addr,
int addrlen) |
protected Breaker |
createBreaker(Emulator<?> emulator) |
protected abstract T |
createByteArrayFileIO(String pathname,
int oflags,
byte[] data) |
protected abstract T |
createDriverFileIO(Emulator<?> emulator,
int oflags,
String pathname) |
protected FileResult<T> |
createFdDir(int oflags,
String pathname) |
MainTask |
createSignalHandlerTask(Emulator<?> emulator,
int sig) |
protected FileResult<T> |
createTaskDir(Emulator<T> emulator,
int oflags,
String pathname) |
void |
destroy() |
void |
detach() |
protected int |
fcntl(Emulator<?> emulator,
int fd,
int cmd,
long arg) |
FileIO |
getFileIO(int fd) |
protected int |
getMinFd() |
protected int |
getrandom(com.sun.jna.Pointer buf,
int bufSize,
int flags) |
protected int |
gettimeofday(Emulator<?> emulator,
com.sun.jna.Pointer tv,
com.sun.jna.Pointer tz) |
protected int |
gettimeofday64(com.sun.jna.Pointer tv,
com.sun.jna.Pointer tz) |
protected boolean |
handleSyscall(Emulator<?> emulator,
int NR) |
protected boolean |
handleUnknownSyscall(Emulator<?> emulator,
int NR)
handle unknown syscall
|
boolean |
isVerbose() |
protected int |
listen(Emulator<?> emulator,
int sockfd,
int backlog) |
void |
onAttach(UnHook unHook) |
int |
open(Emulator<T> emulator,
String pathname,
int oflags) |
protected int |
pread(Emulator<?> emulator,
int fd,
com.sun.jna.Pointer buffer,
int count,
long offset) |
protected int |
read(Emulator<?> emulator,
int fd,
com.sun.jna.Pointer buffer,
int count) |
protected int |
readlink(Emulator<?> emulator,
String path,
com.sun.jna.Pointer buf,
int bufSize) |
protected FileResult<T> |
resolve(Emulator<T> emulator,
String pathname,
int oflags) |
protected int |
sendto(Emulator<?> emulator,
int sockfd,
com.sun.jna.Pointer buf,
int len,
int flags,
com.sun.jna.Pointer dest_addr,
int addrlen) |
void |
serialize(DataOutput out) |
void |
setBreaker(Breaker breaker) |
void |
setEnableThreadDispatcher(boolean threadDispatcherEnabled) |
void |
setFileListener(FileListener fileListener) |
void |
setVerbose(boolean verbose) |
protected int |
sigaction(Emulator<?> emulator,
int signum,
com.sun.jna.Pointer act,
com.sun.jna.Pointer oldact) |
protected int |
sigaction(Emulator<?> emulator,
int signum,
com.sun.jna.Pointer act,
com.sun.jna.Pointer oldact,
int sizeOfSigAction) |
protected int |
sigprocmask(Emulator<?> emulator,
int how,
com.sun.jna.Pointer set,
com.sun.jna.Pointer oldset) |
protected int |
write(Emulator<?> emulator,
int fd,
com.sun.jna.Pointer buffer,
int count) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waithookprotected boolean verbose
protected static final int SIGBUS
protected static final int SIGCHLD
protected boolean threadDispatcherEnabled
public FileIO getFileIO(int fd)
getFileIO 在接口中 SyscallHandler<T extends NewFileIO>public void setVerbose(boolean verbose)
setVerbose 在接口中 SyscallHandler<T extends NewFileIO>public void setFileListener(FileListener fileListener)
setFileListener 在接口中 SyscallHandler<T extends NewFileIO>public boolean isVerbose()
isVerbose 在接口中 SyscallHandler<T extends NewFileIO>public void setBreaker(Breaker breaker)
setBreaker 在接口中 SyscallHandler<T extends NewFileIO>protected int getMinFd()
public void addIOResolver(IOResolver<T> resolver)
SyscallHandleraddIOResolver 在接口中 SyscallHandler<T extends NewFileIO>protected final FileResult<T> resolve(Emulator<T> emulator, String pathname, int oflags)
protected FileResult<T> createTaskDir(Emulator<T> emulator, int oflags, String pathname)
protected FileResult<T> createFdDir(int oflags, String pathname)
protected abstract T createByteArrayFileIO(String pathname, int oflags, byte[] data)
protected int gettimeofday(Emulator<?> emulator, com.sun.jna.Pointer tv, com.sun.jna.Pointer tz)
protected int gettimeofday64(com.sun.jna.Pointer tv,
com.sun.jna.Pointer tz)
protected int sigprocmask(Emulator<?> emulator, int how, com.sun.jna.Pointer set, com.sun.jna.Pointer oldset)
protected final int read(Emulator<?> emulator, int fd, com.sun.jna.Pointer buffer, int count)
protected final int pread(Emulator<?> emulator, int fd, com.sun.jna.Pointer buffer, int count, long offset)
protected final int close(Emulator<?> emulator, int fd)
public final int open(Emulator<T> emulator, String pathname, int oflags)
open 在接口中 SyscallHandler<T extends NewFileIO>protected abstract T createDriverFileIO(Emulator<?> emulator, int oflags, String pathname)
protected int fcntl(Emulator<?> emulator, int fd, int cmd, long arg)
protected int readlink(Emulator<?> emulator, String path, com.sun.jna.Pointer buf, int bufSize)
protected int sigaction(Emulator<?> emulator, int signum, com.sun.jna.Pointer act, com.sun.jna.Pointer oldact)
protected final int sigaction(Emulator<?> emulator, int signum, com.sun.jna.Pointer act, com.sun.jna.Pointer oldact, int sizeOfSigAction)
protected final int bind(Emulator<?> emulator, int sockfd, com.sun.jna.Pointer addr, int addrlen)
protected final int listen(Emulator<?> emulator, int sockfd, int backlog)
protected final int connect(Emulator<?> emulator, int sockfd, com.sun.jna.Pointer addr, int addrlen)
protected final int sendto(Emulator<?> emulator, int sockfd, com.sun.jna.Pointer buf, int len, int flags, com.sun.jna.Pointer dest_addr, int addrlen)
protected final int write(Emulator<?> emulator, int fd, com.sun.jna.Pointer buffer, int count)
protected int getrandom(com.sun.jna.Pointer buf,
int bufSize,
int flags)
protected boolean handleSyscall(Emulator<?> emulator, int NR)
protected boolean handleUnknownSyscall(Emulator<?> emulator, int NR)
NR - syscall numberpublic void serialize(DataOutput out)
serialize 在接口中 Serializablepublic void onAttach(UnHook unHook)
onAttach 在接口中 Detachablepublic void detach()
detach 在接口中 Detachablepublic void destroy()
destroy 在接口中 SyscallHandler<T extends NewFileIO>public void setEnableThreadDispatcher(boolean threadDispatcherEnabled)
setEnableThreadDispatcher 在接口中 SyscallHandler<T extends NewFileIO>public MainTask createSignalHandlerTask(Emulator<?> emulator, int sig)
createSignalHandlerTask 在接口中 SyscallHandler<T extends NewFileIO>Copyright © 2022. All rights reserved.