frysk.proc.dead
Class DeadTask

java.lang.Object
  extended by frysk.proc.Task
      extended by frysk.proc.dead.DeadTask
Direct Known Subclasses:
LinuxCoreTask, LinuxExeTask

abstract class DeadTask
extends Task

A dead Host/Proc/Task is characterised by its lack of state, and an in ability to respond to stateful requests such as add/remove observers.


Nested Class Summary
 
Nested classes/interfaces inherited from class frysk.proc.Task
Task.TaskEventObservable
 
Field Summary
private static Log fine
           
private  ISA isa
           
private  RegisterBanks registerBanks
           
 
Constructor Summary
DeadTask(Proc proc, int pid, ISA isa, RegisterBanks registerBanks)
           
 
Method Summary
 ISA getISA()
          Return's this Task's Instruction Set Architecture; or throw a NullPointerException if the ISA is not available.
 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.
protected  RegisterBanks getRegisterBanks()
          Return this task's register banks.
protected  String getStateFIXME()
          Return the state as a string; do not use!!!!
 boolean isInstructionObserverAdded(TaskObserver.Instruction o)
          Returns true if the observer has been added to task's instruction observer list.
 void requestAddAttachedObserver(TaskAttachedObserverXXX o)
          Add a TaskAttachedObserverXXX observer.
 void requestAddClonedObserver(TaskObserver.Cloned o)
          Add a TaskObserver.Cloned observer.
 void requestAddCodeObserver(TaskObserver.Code o, long a)
          Add TaskObserver.Code to the TaskObserver pool.
 void requestAddExecedObserver(TaskObserver.Execed o)
          Add TaskObserver.Execed to the TaskObserver pool.
 void requestAddForkedObserver(TaskObserver.Forked o)
          Add a TaskObserver.Forked observer.
 void requestAddInstructionObserver(TaskObserver.Instruction o)
          Request the addition of a Instruction observer that will be notified as soon as the task executes an instruction.
 void requestAddSignaledObserver(TaskObserver.Signaled o)
          Add TaskObserver.Signaled to the TaskObserver pool.
 void requestAddSyscallsObserver(TaskObserver.Syscalls o)
          Add TaskObserver.Syscalls to the TaskObserver pool.
 void requestAddTerminatedObserver(TaskObserver.Terminated o)
          Add a TaskObserver.Terminated observer.
 void requestAddTerminatingObserver(TaskObserver.Terminating o)
          Add TaskObserver.Terminating to the TaskObserver pool.
 void requestAddWatchObserver(TaskObserver.Watch o, long address, int length, boolean writeOnly)
          Add TaskObserver.Watch to the TaskObserver pool.
 void requestDeleteAttachedObserver(TaskAttachedObserverXXX o)
          Delete a TaskAttachedObserverXXX observer.
 void requestDeleteClonedObserver(TaskObserver.Cloned o)
          Delete a TaskObserver.Cloned observer.
 void requestDeleteCodeObserver(TaskObserver.Code o, long a)
          Delete TaskObserver.Code for the TaskObserver pool.
 void requestDeleteExecedObserver(TaskObserver.Execed o)
          Delete TaskObserver.Execed.
 void requestDeleteForkedObserver(TaskObserver.Forked o)
          Delete a TaskObserver.Forked observer.
 void requestDeleteInstructionObserver(TaskObserver.Instruction o)
          Delete TaskObserver.Instruction from the TaskObserver pool.
 void requestDeleteSignaledObserver(TaskObserver.Signaled o)
          Delete TaskObserver.Signaled.
 void requestDeleteSyscallsObserver(TaskObserver.Syscalls o)
          Delete TaskObserver.Syscall.
 void requestDeleteTerminatedObserver(TaskObserver.Terminated o)
          Delete a TaskObserver.Terminated observer.
 void requestDeleteTerminatingObserver(TaskObserver.Terminating o)
          Delete TaskObserver.Terminating.
 void requestDeleteWatchObserver(TaskObserver.Watch o, long address, int length, boolean writeOnly)
          Delete TaskObserver.Watch from the TaskObserver pool.
 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.
 void setPC(long addr)
          Set the address of the instruction that this task will execute next.
 
Methods inherited from class frysk.proc.Task
access, bogusUseOfInternalBlockersVariableFIXME, clearIsa, compareTo, getMemory, getName, getPC, getProc, getRegister, getRegisterBuffersFIXME, getSignalTable, getSyscallTable, getTid, setRegister, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

fine

private static final Log fine

isa

private final ISA isa

registerBanks

private final RegisterBanks registerBanks
Constructor Detail

DeadTask

DeadTask(Proc proc,
         int pid,
         ISA isa,
         RegisterBanks registerBanks)
Method Detail

getStateFIXME

protected String getStateFIXME()
Description copied from class: Task
Return the state as a string; do not use!!!!

Specified by:
getStateFIXME in class Task

requestUnblock

public 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.

Specified by:
requestUnblock in class Task

requestAddClonedObserver

public void requestAddClonedObserver(TaskObserver.Cloned o)
Add a TaskObserver.Cloned observer.

Specified by:
requestAddClonedObserver in class Task

requestDeleteClonedObserver

public void requestDeleteClonedObserver(TaskObserver.Cloned o)
Delete a TaskObserver.Cloned observer.

Specified by:
requestDeleteClonedObserver in class Task

requestAddAttachedObserver

public void requestAddAttachedObserver(TaskAttachedObserverXXX o)
Add a TaskAttachedObserverXXX observer.

Specified by:
requestAddAttachedObserver in class Task

requestDeleteAttachedObserver

public void requestDeleteAttachedObserver(TaskAttachedObserverXXX o)
Delete a TaskAttachedObserverXXX observer.

Specified by:
requestDeleteAttachedObserver in class Task

requestAddForkedObserver

public void requestAddForkedObserver(TaskObserver.Forked o)
Add a TaskObserver.Forked observer.

Specified by:
requestAddForkedObserver in class Task

requestDeleteForkedObserver

public void requestDeleteForkedObserver(TaskObserver.Forked o)
Delete a TaskObserver.Forked observer.

Specified by:
requestDeleteForkedObserver in class Task

requestAddTerminatedObserver

public void requestAddTerminatedObserver(TaskObserver.Terminated o)
Add a TaskObserver.Terminated observer.

Specified by:
requestAddTerminatedObserver in class Task

requestDeleteTerminatedObserver

public void requestDeleteTerminatedObserver(TaskObserver.Terminated o)
Delete a TaskObserver.Terminated observer.

Specified by:
requestDeleteTerminatedObserver in class Task

requestAddTerminatingObserver

public void requestAddTerminatingObserver(TaskObserver.Terminating o)
Add TaskObserver.Terminating to the TaskObserver pool.

Specified by:
requestAddTerminatingObserver in class Task

requestDeleteTerminatingObserver

public void requestDeleteTerminatingObserver(TaskObserver.Terminating o)
Delete TaskObserver.Terminating.

Specified by:
requestDeleteTerminatingObserver in class Task

requestAddExecedObserver

public void requestAddExecedObserver(TaskObserver.Execed o)
Add TaskObserver.Execed to the TaskObserver pool.

Specified by:
requestAddExecedObserver in class Task

requestDeleteExecedObserver

public void requestDeleteExecedObserver(TaskObserver.Execed o)
Delete TaskObserver.Execed.

Specified by:
requestDeleteExecedObserver in class Task

requestAddSyscallsObserver

public void requestAddSyscallsObserver(TaskObserver.Syscalls o)
Add TaskObserver.Syscalls to the TaskObserver pool.

Specified by:
requestAddSyscallsObserver in class Task

requestDeleteSyscallsObserver

public void requestDeleteSyscallsObserver(TaskObserver.Syscalls o)
Delete TaskObserver.Syscall.

Specified by:
requestDeleteSyscallsObserver in class Task

requestAddSignaledObserver

public void requestAddSignaledObserver(TaskObserver.Signaled o)
Add TaskObserver.Signaled to the TaskObserver pool.

Specified by:
requestAddSignaledObserver in class Task

requestDeleteSignaledObserver

public void requestDeleteSignaledObserver(TaskObserver.Signaled o)
Delete TaskObserver.Signaled.

Specified by:
requestDeleteSignaledObserver in class Task

requestAddWatchObserver

public void requestAddWatchObserver(TaskObserver.Watch o,
                                    long address,
                                    int length,
                                    boolean writeOnly)
Add TaskObserver.Watch to the TaskObserver pool.

Specified by:
requestAddWatchObserver in class Task

requestDeleteWatchObserver

public void requestDeleteWatchObserver(TaskObserver.Watch o,
                                       long address,
                                       int length,
                                       boolean writeOnly)
Delete TaskObserver.Watch from the TaskObserver pool.

Specified by:
requestDeleteWatchObserver in class Task

requestAddCodeObserver

public void requestAddCodeObserver(TaskObserver.Code o,
                                   long a)
Add TaskObserver.Code to the TaskObserver pool.

Specified by:
requestAddCodeObserver in class Task

requestDeleteCodeObserver

public void requestDeleteCodeObserver(TaskObserver.Code o,
                                      long a)
Delete TaskObserver.Code for the TaskObserver pool.

Specified by:
requestDeleteCodeObserver in class Task

requestAddInstructionObserver

public void requestAddInstructionObserver(TaskObserver.Instruction o)
Request the addition of a Instruction observer that will be notified as soon as the task executes an instruction. o.updateExecuted is called as soon as the Task starts running again (is not blocked or stopped) and executes the next instruction.

Specified by:
requestAddInstructionObserver in class Task

requestDeleteInstructionObserver

public void requestDeleteInstructionObserver(TaskObserver.Instruction o)
Delete TaskObserver.Instruction from the TaskObserver pool.

Specified by:
requestDeleteInstructionObserver in class Task

isInstructionObserverAdded

public boolean isInstructionObserverAdded(TaskObserver.Instruction o)
Description copied from class: Task
Returns true if the observer has been added to task's instruction observer list.

Specified by:
isInstructionObserverAdded in class Task

getMod

public int getMod()
Description copied from class: Task
Use a counter rather than a boolean because multiple caches may depend on this count and no cache should be able to clear it.

Specified by:
getMod in class Task

setPC

public void setPC(long addr)
Description copied from class: Task
Set the address of the instruction that this task will execute next.

Specified by:
setPC in class Task

getISA

public ISA getISA()
Description copied from class: Task
Return's this Task's Instruction Set Architecture; or throw a NullPointerException if the ISA is not available. The isa is only available while the task is under observation (attached) as an un-observed task can switch isa's (using exec(2)) undetected.

Specified by:
getISA in class Task

getRegisterBanks

protected RegisterBanks getRegisterBanks()
Description copied from class: Task
Return this task's register banks.

Specified by:
getRegisterBanks in class Task