org.xwt.mips
Class VM
java.lang.Object
   org.xwt.mips.VM
org.xwt.mips.VM
- All Implemented Interfaces: 
- org.xwt.mips.Errno, org.xwt.mips.Syscalls
- Direct Known Subclasses: 
- Interpreter
- public abstract class VM- extends java.lang.Object- implements org.xwt.mips.Syscalls, org.xwt.mips.Errno
 
 
 
| Method Summary | 
| protected abstract  void | _start(int pc)
 | 
|  void | copyin(int addr,
       byte[] a,
       int length)
 | 
|  void | copyout(byte[] a,
        int addr,
        int length)
 | 
|  java.lang.String | cstring(int addr)
 | 
| abstract  void | execute()
 | 
|  int | exitStatus()
 | 
|  int | getState()
 | 
|  int | getUserInfo(int index)
 | 
| protected  void | initPage(int page)
 | 
| protected static int | max(int a,
    int b)
 | 
|  int | memRead(int addr)
 | 
| protected  void | memWrite(int addr,
         int value)
 | 
| protected static int | min(int a,
    int b)
 | 
|  int | run(java.lang.String[] args)
 | 
|  int | sbrk(int incr)
 | 
|  void | setUserInfo(int index,
            int word)
 | 
|  void | start(java.lang.String[] args)
 | 
| protected  int | syscall(int syscall,
        int a,
        int b,
        int c,
        int d)
 | 
| protected static java.lang.String | toHex(int n)
 | 
 
| Methods inherited from class java.lang.Object | 
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
ZERO
protected static final int ZERO
- See Also:
- Constant Field Values
AT
protected static final int AT
- See Also:
- Constant Field Values
K0
protected static final int K0
- See Also:
- Constant Field Values
K1
protected static final int K1
- See Also:
- Constant Field Values
GP
protected static final int GP
- See Also:
- Constant Field Values
SP
protected static final int SP
- See Also:
- Constant Field Values
FP
protected static final int FP
- See Also:
- Constant Field Values
RA
protected static final int RA
- See Also:
- Constant Field Values
V0
protected static final int V0
- See Also:
- Constant Field Values
V1
protected static final int V1
- See Also:
- Constant Field Values
A0
protected static final int A0
- See Also:
- Constant Field Values
A1
protected static final int A1
- See Also:
- Constant Field Values
A2
protected static final int A2
- See Also:
- Constant Field Values
A3
protected static final int A3
- See Also:
- Constant Field Values
T0
protected static final int T0
- See Also:
- Constant Field Values
T1
protected static final int T1
- See Also:
- Constant Field Values
T2
protected static final int T2
- See Also:
- Constant Field Values
T3
protected static final int T3
- See Also:
- Constant Field Values
T4
protected static final int T4
- See Also:
- Constant Field Values
T5
protected static final int T5
- See Also:
- Constant Field Values
T6
protected static final int T6
- See Also:
- Constant Field Values
T7
protected static final int T7
- See Also:
- Constant Field Values
T8
protected static final int T8
- See Also:
- Constant Field Values
T9
protected static final int T9
- See Also:
- Constant Field Values
S0
protected static final int S0
- See Also:
- Constant Field Values
S1
protected static final int S1
- See Also:
- Constant Field Values
S2
protected static final int S2
- See Also:
- Constant Field Values
S3
protected static final int S3
- See Also:
- Constant Field Values
S4
protected static final int S4
- See Also:
- Constant Field Values
S5
protected static final int S5
- See Also:
- Constant Field Values
S6
protected static final int S6
- See Also:
- Constant Field Values
S7
protected static final int S7
- See Also:
- Constant Field Values
PAGE_SIZE
protected static final int PAGE_SIZE
- See Also:
- Constant Field Values
PAGE_WORDS
protected static final int PAGE_WORDS
- See Also:
- Constant Field Values
PAGE_SHIFT
protected static final int PAGE_SHIFT
- See Also:
- Constant Field Values
STACK_PAGES
protected static final int STACK_PAGES
- See Also:
- Constant Field Values
TOTAL_PAGES
protected static final int TOTAL_PAGES
- See Also:
- Constant Field Values
BRK_LIMIT
protected static final int BRK_LIMIT
- See Also:
- Constant Field Values
ARGS_ADDR
protected static final int ARGS_ADDR
- See Also:
- Constant Field Values
USER_INFO_ADDR
protected static final int USER_INFO_ADDR
- See Also:
- Constant Field Values
INITIAL_SP
protected static final int INITIAL_SP
- See Also:
- Constant Field Values
readPages
protected final int[][] readPages
writePages
protected final int[][] writePages
brk
protected int brk
entryPoint
protected int entryPoint
UNINITIALIZED
public static final int UNINITIALIZED
- See Also:
- Constant Field Values
INITIALIZED
public static final int INITIALIZED
- See Also:
- Constant Field Values
RUNNING
public static final int RUNNING
- See Also:
- Constant Field Values
PAUSED
public static final int PAUSED
- See Also:
- Constant Field Values
DONE
public static final int DONE
- See Also:
- Constant Field Values
state
protected int state
exitStatus
protected int exitStatus
PID
public static final int PID
- See Also:
- Constant Field Values
SYS_null
public static final int SYS_null
- See Also:
- Constant Field Values
SYS_exit
public static final int SYS_exit
- See Also:
- Constant Field Values
SYS_pause
public static final int SYS_pause
- See Also:
- Constant Field Values
SYS_open
public static final int SYS_open
- See Also:
- Constant Field Values
SYS_close
public static final int SYS_close
- See Also:
- Constant Field Values
SYS_read
public static final int SYS_read
- See Also:
- Constant Field Values
SYS_write
public static final int SYS_write
- See Also:
- Constant Field Values
SYS_sbrk
public static final int SYS_sbrk
- See Also:
- Constant Field Values
SYS_fstat
public static final int SYS_fstat
- See Also:
- Constant Field Values
SYS_isatty
public static final int SYS_isatty
- See Also:
- Constant Field Values
SYS_seek
public static final int SYS_seek
- See Also:
- Constant Field Values
SYS_kill
public static final int SYS_kill
- See Also:
- Constant Field Values
SYS_getpid
public static final int SYS_getpid
- See Also:
- Constant Field Values
EPERM
public static final int EPERM
- See Also:
- Constant Field Values
ENOENT
public static final int ENOENT
- See Also:
- Constant Field Values
ESRCH
public static final int ESRCH
- See Also:
- Constant Field Values
EINTR
public static final int EINTR
- See Also:
- Constant Field Values
EIO
public static final int EIO
- See Also:
- Constant Field Values
ENXIO
public static final int ENXIO
- See Also:
- Constant Field Values
ENOEXEC
public static final int ENOEXEC
- See Also:
- Constant Field Values
EBADF
public static final int EBADF
- See Also:
- Constant Field Values
ECHILD
public static final int ECHILD
- See Also:
- Constant Field Values
EAGAIN
public static final int EAGAIN
- See Also:
- Constant Field Values
ENOMEM
public static final int ENOMEM
- See Also:
- Constant Field Values
EACCES
public static final int EACCES
- See Also:
- Constant Field Values
EFAULT
public static final int EFAULT
- See Also:
- Constant Field Values
ENOTBLK
public static final int ENOTBLK
- See Also:
- Constant Field Values
EBUSY
public static final int EBUSY
- See Also:
- Constant Field Values
EEXIST
public static final int EEXIST
- See Also:
- Constant Field Values
EXDEV
public static final int EXDEV
- See Also:
- Constant Field Values
ENODEV
public static final int ENODEV
- See Also:
- Constant Field Values
ENOTDIR
public static final int ENOTDIR
- See Also:
- Constant Field Values
EISDIR
public static final int EISDIR
- See Also:
- Constant Field Values
EINVAL
public static final int EINVAL
- See Also:
- Constant Field Values
ENFILE
public static final int ENFILE
- See Also:
- Constant Field Values
EMFILE
public static final int EMFILE
- See Also:
- Constant Field Values
ENOTTY
public static final int ENOTTY
- See Also:
- Constant Field Values
ETXTBSY
public static final int ETXTBSY
- See Also:
- Constant Field Values
EFBIG
public static final int EFBIG
- See Also:
- Constant Field Values
ENOSPC
public static final int ENOSPC
- See Also:
- Constant Field Values
ESPIPE
public static final int ESPIPE
- See Also:
- Constant Field Values
EROFS
public static final int EROFS
- See Also:
- Constant Field Values
EMLINK
public static final int EMLINK
- See Also:
- Constant Field Values
EPIPE
public static final int EPIPE
- See Also:
- Constant Field Values
EDOM
public static final int EDOM
- See Also:
- Constant Field Values
ERANGE
public static final int ERANGE
- See Also:
- Constant Field Values
ENOMSG
public static final int ENOMSG
- See Also:
- Constant Field Values
EIDRM
public static final int EIDRM
- See Also:
- Constant Field Values
ECHRNG
public static final int ECHRNG
- See Also:
- Constant Field Values
ELNRNG
public static final int ELNRNG
- See Also:
- Constant Field Values
EUNATCH
public static final int EUNATCH
- See Also:
- Constant Field Values
ENOCSI
public static final int ENOCSI
- See Also:
- Constant Field Values
EDEADLK
public static final int EDEADLK
- See Also:
- Constant Field Values
ENOLCK
public static final int ENOLCK
- See Also:
- Constant Field Values
EBADE
public static final int EBADE
- See Also:
- Constant Field Values
EBADR
public static final int EBADR
- See Also:
- Constant Field Values
EXFULL
public static final int EXFULL
- See Also:
- Constant Field Values
ENOANO
public static final int ENOANO
- See Also:
- Constant Field Values
EBADRQC
public static final int EBADRQC
- See Also:
- Constant Field Values
EBADSLT
public static final int EBADSLT
- See Also:
- Constant Field Values
EDEADLOCK
public static final int EDEADLOCK
- See Also:
- Constant Field Values
EBFONT
public static final int EBFONT
- See Also:
- Constant Field Values
ENOSTR
public static final int ENOSTR
- See Also:
- Constant Field Values
ENODATA
public static final int ENODATA
- See Also:
- Constant Field Values
ETIME
public static final int ETIME
- See Also:
- Constant Field Values
ENOSR
public static final int ENOSR
- See Also:
- Constant Field Values
ENONET
public static final int ENONET
- See Also:
- Constant Field Values
ENOPKG
public static final int ENOPKG
- See Also:
- Constant Field Values
EREMOTE
public static final int EREMOTE
- See Also:
- Constant Field Values
ENOLINK
public static final int ENOLINK
- See Also:
- Constant Field Values
EADV
public static final int EADV
- See Also:
- Constant Field Values
ESRMNT
public static final int ESRMNT
- See Also:
- Constant Field Values
ECOMM
public static final int ECOMM
- See Also:
- Constant Field Values
EPROTO
public static final int EPROTO
- See Also:
- Constant Field Values
EMULTIHOP
public static final int EMULTIHOP
- See Also:
- Constant Field Values
ELBIN
public static final int ELBIN
- See Also:
- Constant Field Values
EDOTDOT
public static final int EDOTDOT
- See Also:
- Constant Field Values
EBADMSG
public static final int EBADMSG
- See Also:
- Constant Field Values
EFTYPE
public static final int EFTYPE
- See Also:
- Constant Field Values
ENOTUNIQ
public static final int ENOTUNIQ
- See Also:
- Constant Field Values
EBADFD
public static final int EBADFD
- See Also:
- Constant Field Values
EREMCHG
public static final int EREMCHG
- See Also:
- Constant Field Values
ELIBACC
public static final int ELIBACC
- See Also:
- Constant Field Values
ELIBBAD
public static final int ELIBBAD
- See Also:
- Constant Field Values
ELIBSCN
public static final int ELIBSCN
- See Also:
- Constant Field Values
ELIBMAX
public static final int ELIBMAX
- See Also:
- Constant Field Values
ELIBEXEC
public static final int ELIBEXEC
- See Also:
- Constant Field Values
ENOSYS
public static final int ENOSYS
- See Also:
- Constant Field Values
ENMFILE
public static final int ENMFILE
- See Also:
- Constant Field Values
ENOTEMPTY
public static final int ENOTEMPTY
- See Also:
- Constant Field Values
ENAMETOOLONG
public static final int ENAMETOOLONG
- See Also:
- Constant Field Values
ELOOP
public static final int ELOOP
- See Also:
- Constant Field Values
EOPNOTSUPP
public static final int EOPNOTSUPP
- See Also:
- Constant Field Values
EPFNOSUPPORT
public static final int EPFNOSUPPORT
- See Also:
- Constant Field Values
ECONNRESET
public static final int ECONNRESET
- See Also:
- Constant Field Values
ENOBUFS
public static final int ENOBUFS
- See Also:
- Constant Field Values
EAFNOSUPPORT
public static final int EAFNOSUPPORT
- See Also:
- Constant Field Values
EPROTOTYPE
public static final int EPROTOTYPE
- See Also:
- Constant Field Values
ENOTSOCK
public static final int ENOTSOCK
- See Also:
- Constant Field Values
ENOPROTOOPT
public static final int ENOPROTOOPT
- See Also:
- Constant Field Values
ESHUTDOWN
public static final int ESHUTDOWN
- See Also:
- Constant Field Values
ECONNREFUSED
public static final int ECONNREFUSED
- See Also:
- Constant Field Values
EADDRINUSE
public static final int EADDRINUSE
- See Also:
- Constant Field Values
ECONNABORTED
public static final int ECONNABORTED
- See Also:
- Constant Field Values
ENETUNREACH
public static final int ENETUNREACH
- See Also:
- Constant Field Values
ENETDOWN
public static final int ENETDOWN
- See Also:
- Constant Field Values
ETIMEDOUT
public static final int ETIMEDOUT
- See Also:
- Constant Field Values
EHOSTDOWN
public static final int EHOSTDOWN
- See Also:
- Constant Field Values
EHOSTUNREACH
public static final int EHOSTUNREACH
- See Also:
- Constant Field Values
EINPROGRESS
public static final int EINPROGRESS
- See Also:
- Constant Field Values
EALREADY
public static final int EALREADY
- See Also:
- Constant Field Values
EDESTADDRREQ
public static final int EDESTADDRREQ
- See Also:
- Constant Field Values
EMSGSIZE
public static final int EMSGSIZE
- See Also:
- Constant Field Values
EPROTONOSUPPORT
public static final int EPROTONOSUPPORT
- See Also:
- Constant Field Values
ESOCKTNOSUPPORT
public static final int ESOCKTNOSUPPORT
- See Also:
- Constant Field Values
EADDRNOTAVAIL
public static final int EADDRNOTAVAIL
- See Also:
- Constant Field Values
ENETRESET
public static final int ENETRESET
- See Also:
- Constant Field Values
EISCONN
public static final int EISCONN
- See Also:
- Constant Field Values
ENOTCONN
public static final int ENOTCONN
- See Also:
- Constant Field Values
ETOOMANYREFS
public static final int ETOOMANYREFS
- See Also:
- Constant Field Values
EPROCLIM
public static final int EPROCLIM
- See Also:
- Constant Field Values
EUSERS
public static final int EUSERS
- See Also:
- Constant Field Values
EDQUOT
public static final int EDQUOT
- See Also:
- Constant Field Values
ESTALE
public static final int ESTALE
- See Also:
- Constant Field Values
ENOTSUP
public static final int ENOTSUP
- See Also:
- Constant Field Values
ENOMEDIUM
public static final int ENOMEDIUM
- See Also:
- Constant Field Values
ENOSHARE
public static final int ENOSHARE
- See Also:
- Constant Field Values
ECASECLASH
public static final int ECASECLASH
- See Also:
- Constant Field Values
EILSEQ
public static final int EILSEQ
- See Also:
- Constant Field Values
EOVERFLOW
public static final int EOVERFLOW
- See Also:
- Constant Field Values
__ELASTERROR
public static final int __ELASTERROR
- See Also:
- Constant Field Values
VM
public VM()
getState
public final int getState()
- 
 
- 
 
execute
public abstract void execute()
                      throws VM.EmulationException
- 
 
- 
- Throws:
- VM.EmulationException
 
_start
protected abstract void _start(int pc)
- 
 
- 
 
copyin
public void copyin(int addr,
                   byte[] a,
                   int length)
            throws VM.ReadFaultException
- 
 
- 
- Throws:
- VM.ReadFaultException
 
copyout
public void copyout(byte[] a,
                    int addr,
                    int length)
             throws VM.FaultException
- 
 
- 
- Throws:
- VM.FaultException
 
memRead
public final int memRead(int addr)
                  throws VM.ReadFaultException
- 
 
- 
- Throws:
- VM.ReadFaultException
 
memWrite
protected final void memWrite(int addr,
                              int value)
                       throws VM.WriteFaultException
- 
 
- 
- Throws:
- VM.WriteFaultException
 
initPage
protected void initPage(int page)
- 
 
- 
 
exitStatus
public final int exitStatus()
- 
 
- 
 
run
public final int run(java.lang.String[] args)
              throws VM.EmulationException
- 
 
- 
- Throws:
- VM.EmulationException
 
setUserInfo
public void setUserInfo(int index,
                        int word)
                 throws VM.EmulationException
- 
 
- 
- Throws:
- VM.EmulationException
 
getUserInfo
public int getUserInfo(int index)
                throws VM.EmulationException
- 
 
- 
- Throws:
- VM.EmulationException
 
start
public final void start(java.lang.String[] args)
                 throws VM.EmulationException
- 
 
- 
- Throws:
- VM.EmulationException
 
sbrk
public int sbrk(int incr)
- 
 
- 
 
syscall
protected int syscall(int syscall,
                      int a,
                      int b,
                      int c,
                      int d)
- 
 
- 
 
cstring
public java.lang.String cstring(int addr)
                         throws VM.ReadFaultException
- 
 
- 
- Throws:
- VM.ReadFaultException
 
toHex
protected static final java.lang.String toHex(int n)
- 
 
- 
 
min
protected static final int min(int a,
                               int b)
- 
 
- 
 
max
protected static final int max(int a,
                               int b)
- 
 
-