java.lang.Object
com.ibm.j9ddr.corereaders.tdump.zebedee.mvs.Tcb

public class Tcb extends Object
This class represents an MVS Task Control Block (TCB). Methods that begin with "tcb" return the value of fields as defined in the IKJTCB macro.
  • Constructor Details

    • Tcb

      public Tcb(AddressSpace space, long address)
      Create a new Tcb for the given address space.
      Parameters:
      space - the AddressSpace to which this Tcb belongs
      address - the address of this Tcb
  • Method Details

    • getTcbs

      public static Tcb[] getTcbs(AddressSpace space)
      Returns an array containing all of the Tcbs in the given AddressSpace. Returns null if this address space contains no Tcbs.
    • address

      public long address()
      Returns the address of this Tcb
    • space

      public AddressSpace space()
      Returns the AddressSpace we belong to
    • tcbcelap

      public long tcbcelap() throws IOException
      Return the celap pointer for this Tcb.
      Throws:
      IOException - if an error occurred reading from the address space
    • tcbrtwa

      public long tcbrtwa() throws IOException
      Return the rtwa pointer for this Tcb.
      Throws:
      IOException - if an error occurred reading from the address space
    • tcbcmp

      public long tcbcmp() throws IOException
      Return the task completion code for this Tcb.
      Throws:
      IOException - if an error occurred reading from the address space
    • tcbrbp

      public long tcbrbp() throws IOException
      Return the rbp pointer for this Tcb.
      Throws:
      IOException - if an error occurred reading from the address space
    • tcbstcb

      public long tcbstcb() throws IOException
      Return the stcb pointer for this Tcb.
      Throws:
      IOException - if an error occurred reading from the address space
    • tcbtcb

      public long tcbtcb() throws IOException
      Return the pointer to the next Tcb in the queue
      Throws:
      IOException - if an error occurred reading from the address space
    • tcbotcb

      public long tcbotcb() throws IOException
      Return the pointer to the Otcb structure
      Throws:
      IOException - if an error occurred reading from the address space
    • tcbthli

      public long tcbthli() throws IOException
      Return the pointer to the THLI
      Throws:
      IOException - if an error occurred reading from the address space
    • getRegisters

      public RegisterSet getRegisters() throws IOException
      Get registers from the TCB itself. The registers are in the TCB and the PSW comes from the RB.
      Throws:
      IOException
    • getRegistersFromBPXGMSTA

      public RegisterSet getRegistersFromBPXGMSTA() throws IOException
      Try and get the registers by simulating the BPXGMSTA service. (XXX I think this is probably the best place to implement this kernel call?)
      Throws:
      IOException
    • getRegistersFromUsta

      public RegisterSet getRegistersFromUsta() throws IOException
      Get the Usta registers.
      Throws:
      IOException
    • getLinkageStack

      public Lse[] getLinkageStack() throws IOException
      Return the linkage stack as an array of Lse entries. The length of the array will be zero if the linkage stack is empty. The top of the stack (as represented by stcblsdp) is the first element in the array and the end of the stack (also sometimes referred to as the first entry, aka stcbestk) is the last element in the array.
      Throws:
      IOException
    • isIFAEnabled

      public boolean isIFAEnabled() throws IOException
      Returns true if this TCB/thread is IFA/zAAP/zIIP enabled.
      Throws:
      IOException
    • getIFAFlags

      public byte getIFAFlags() throws IOException
      Returns the value of the IFA flags for this thread.
      Throws:
      IOException