|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object frysk.proc.Task
public abstract class Task
Nested Class Summary | |
---|---|
class |
Task.TaskEventObservable
|
Field Summary | |
---|---|
private static Log |
fine
|
private TaskId |
id
|
private Proc |
proc
|
private SignalTable |
signalTable
|
private SyscallTable |
syscallTable
|
private int |
tid
|
Constructor Summary | |
---|---|
private |
Task(int pid,
Proc proc)
Create a new Task skeleton. |
protected |
Task(Proc proc)
Create a newly created and attached main Task of Proc that is the result of a fork. |
protected |
Task(Proc proc,
int pid)
Create a new unattached Task. |
protected |
Task(Task cloningTask,
int clone)
Create a new attached CLONE of TASK. |
Method Summary | |
---|---|
void |
access(Register register,
int offset,
int length,
byte[] bytes,
int start,
boolean write)
Access bytes OFFSET:LENGTH of the Task's register read/writing it into the byte buffer from START. |
Set |
bogusUseOfInternalBlockersVariableFIXME()
XXX: Code using this needs a re-think. |
protected void |
clearIsa()
|
int |
compareTo(Object o)
|
abstract ISA |
getISA()
Return's this Task's Instruction Set Architecture; or throw a NullPointerException if the ISA is not available. |
abstract ByteBuffer |
getMemory()
Return the Task's memory. |
abstract int |
getMod()
Use a counter rather than a boolean because multiple caches may depend on this count and no cache should be able to clear it. |
String |
getName()
Return the task's (derived) name |
abstract long |
getPC()
Return the address of the instruction that this task will execute next. |
Proc |
getProc()
Return the containing Proc. |
long |
getRegister(Register register)
Return the Task's Register as a long. |
protected abstract RegisterBanks |
getRegisterBanks()
Return this task's register banks. |
ByteBuffer[] |
getRegisterBuffersFIXME()
Return the machine's register banks as an array of ByteBuffers. |
SignalTable |
getSignalTable()
Return a table of known (and unknown) signals for this ISA. |
protected abstract String |
getStateFIXME()
Return the state as a string; do not use!!!! |
SyscallTable |
getSyscallTable()
|
(package private) TaskId |
getTaskId()
Return the task's corresponding TaskId. |
int |
getTid()
Return the task's process id. |
abstract boolean |
isInstructionObserverAdded(TaskObserver.Instruction o)
Returns true if the observer has been added to task's instruction observer list. |
abstract void |
requestAddAttachedObserver(TaskAttachedObserverXXX o)
Add a TaskAttachedObserverXXX observer. |
abstract void |
requestAddClonedObserver(TaskObserver.Cloned o)
Add a TaskObserver.Cloned observer. |
abstract void |
requestAddCodeObserver(TaskObserver.Code o,
long a)
Add TaskObserver.Code to the TaskObserver pool. |
abstract void |
requestAddExecedObserver(TaskObserver.Execed o)
Add TaskObserver.Execed to the TaskObserver pool. |
abstract void |
requestAddForkedObserver(TaskObserver.Forked o)
Add a TaskObserver.Forked observer. |
abstract void |
requestAddInstructionObserver(TaskObserver.Instruction o)
Request the addition of a Instruction observer that will be notified as soon as the task executes an instruction. |
abstract void |
requestAddSignaledObserver(TaskObserver.Signaled o)
Add TaskObserver.Signaled to the TaskObserver pool. |
abstract void |
requestAddSyscallsObserver(TaskObserver.Syscalls o)
Add TaskObserver.Syscalls to the TaskObserver pool. |
abstract void |
requestAddTerminatedObserver(TaskObserver.Terminated o)
Add a TaskObserver.Terminated observer. |
abstract void |
requestAddTerminatingObserver(TaskObserver.Terminating o)
Add the Terminating observer to the TaskObserver pool. |
abstract void |
requestAddWatchObserver(TaskObserver.Watch o,
long address,
int length,
boolean writeOnly)
Add TaskObserver.Watch to the TaskObserver pool. |
abstract void |
requestDeleteAttachedObserver(TaskAttachedObserverXXX o)
Delete a TaskAttachedObserverXXX observer. |
abstract void |
requestDeleteClonedObserver(TaskObserver.Cloned o)
Delete a TaskObserver.Cloned observer. |
abstract void |
requestDeleteCodeObserver(TaskObserver.Code o,
long a)
Delete TaskObserver.Code for the TaskObserver pool. |
abstract void |
requestDeleteExecedObserver(TaskObserver.Execed o)
Delete TaskObserver.Execed. |
abstract void |
requestDeleteForkedObserver(TaskObserver.Forked o)
Delete a TaskObserver.Forked observer. |
abstract void |
requestDeleteInstructionObserver(TaskObserver.Instruction o)
Delete TaskObserver.Instruction from the TaskObserver pool. |
abstract void |
requestDeleteSignaledObserver(TaskObserver.Signaled o)
Delete TaskObserver.Signaled. |
abstract void |
requestDeleteSyscallsObserver(TaskObserver.Syscalls o)
Delete TaskObserver.Syscall. |
abstract void |
requestDeleteTerminatedObserver(TaskObserver.Terminated o)
Delete a TaskObserver.Terminated observer. |
abstract void |
requestDeleteTerminatingObserver(TaskObserver.Terminating o)
Delete the Terminating observer. |
abstract void |
requestDeleteWatchObserver(TaskObserver.Watch o,
long address,
int length,
boolean writeOnly)
Delete TaskObserver.Watchfor the TaskObserver pool. |
abstract void |
requestUnblock(TaskObserver observerArg)
Request that the observer be removed from this tasks set of blockers; once there are no blocking observers, this task resumes. |
abstract void |
setPC(long addr)
Set the address of the instruction that this task will execute next. |
void |
setRegister(Register register,
long value)
Store the long value in the Task's register. |
String |
toString()
Return a summary of the task's state. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final Log fine
private final TaskId id
private final int tid
private SyscallTable syscallTable
private final Proc proc
private SignalTable signalTable
Constructor Detail |
---|
private Task(int pid, Proc proc)
protected Task(Proc proc, int pid)
protected Task(Task cloningTask, int clone)
protected Task(Proc proc)
Method Detail |
---|
TaskId getTaskId()
public final int getTid()
public final String getName()
protected abstract String getStateFIXME()
public abstract ISA getISA()
public final SyscallTable getSyscallTable()
public Proc getProc()
public String toString()
toString
in class Object
public Set bogusUseOfInternalBlockersVariableFIXME()
public abstract void requestUnblock(TaskObserver observerArg)
public abstract void requestAddClonedObserver(TaskObserver.Cloned o)
public abstract void requestDeleteClonedObserver(TaskObserver.Cloned o)
public abstract void requestAddAttachedObserver(TaskAttachedObserverXXX o)
public abstract void requestDeleteAttachedObserver(TaskAttachedObserverXXX o)
public abstract void requestAddForkedObserver(TaskObserver.Forked o)
public abstract void requestDeleteForkedObserver(TaskObserver.Forked o)
public abstract void requestAddTerminatedObserver(TaskObserver.Terminated o)
public abstract void requestDeleteTerminatedObserver(TaskObserver.Terminated o)
public abstract void requestAddTerminatingObserver(TaskObserver.Terminating o)
public abstract void requestDeleteTerminatingObserver(TaskObserver.Terminating o)
public abstract void requestAddExecedObserver(TaskObserver.Execed o)
public abstract void requestDeleteExecedObserver(TaskObserver.Execed o)
public abstract void requestAddSyscallsObserver(TaskObserver.Syscalls o)
public abstract void requestDeleteSyscallsObserver(TaskObserver.Syscalls o)
public abstract void requestAddSignaledObserver(TaskObserver.Signaled o)
public abstract void requestDeleteSignaledObserver(TaskObserver.Signaled o)
public abstract ByteBuffer getMemory()
public abstract void requestAddCodeObserver(TaskObserver.Code o, long a)
public abstract void requestDeleteCodeObserver(TaskObserver.Code o, long a)
public abstract void requestAddWatchObserver(TaskObserver.Watch o, long address, int length, boolean writeOnly)
public abstract void requestDeleteWatchObserver(TaskObserver.Watch o, long address, int length, boolean writeOnly)
public abstract void requestAddInstructionObserver(TaskObserver.Instruction o)
o.updateExecuted
is called as soon as the Task
starts running again (is not blocked or stopped) and executes
the next instruction.
public abstract void requestDeleteInstructionObserver(TaskObserver.Instruction o)
public abstract boolean isInstructionObserverAdded(TaskObserver.Instruction o)
public abstract long getPC()
public abstract void setPC(long addr)
public long getRegister(Register register)
public void setRegister(Register register, long value)
public void access(Register register, int offset, int length, byte[] bytes, int start, boolean write)
protected abstract RegisterBanks getRegisterBanks()
public ByteBuffer[] getRegisterBuffersFIXME()
public abstract int getMod()
protected void clearIsa()
public SignalTable getSignalTable()
public int compareTo(Object o)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |