Interface Syscall

All Known Implementing Classes:
AbstractSyscall, SyscallClose, SyscallConfirmDialog, SyscallExit, SyscallExit2, SyscallInputDialogDouble, SyscallInputDialogFloat, SyscallInputDialogInt, SyscallInputDialogString, SyscallMessageDialog, SyscallMessageDialogDouble, SyscallMessageDialogFloat, SyscallMessageDialogInt, SyscallMessageDialogString, SyscallMidiOut, SyscallMidiOutSync, SyscallOpen, SyscallPrintChar, SyscallPrintDouble, SyscallPrintFloat, SyscallPrintInt, SyscallPrintIntBinary, SyscallPrintIntHex, SyscallPrintIntUnsigned, SyscallPrintIOMessage, SyscallPrintString, SyscallRandDouble, SyscallRandFloat, SyscallRandInt, SyscallRandIntRange, SyscallRandSeed, SyscallRead, SyscallReadChar, SyscallReadDouble, SyscallReadFloat, SyscallReadInt, SyscallReadString, SyscallSbrk, SyscallSeek, SyscallSleep, SyscallTime, SyscallWrite

public interface Syscall
Interface for any MIPS syscall system service. A qualifying service must be a class in the mars.mips.instructions.syscalls package that implements the Syscall interface, must be compiled into a .class file, and its .class file must be in the same folder as Syscall.class. Mars will detect a qualifying syscall upon startup, create an instance using its no-argument constructor and add it to its syscall list. When its service is invoked at runtime ("syscall" instruction with its service number stored in register $v0), its simulate() method will be invoked.
  • Method Summary

    Modifier and Type
    Method
    Description
    Return a name you have chosen for this syscall.
    int
    Return the assigned service number.
    void
    setNumber(int number)
    Set the service number.
    void
    Performs syscall function.
  • Method Details

    • getName

      String getName()
      Return a name you have chosen for this syscall. This can be used by a MARS user to refer to the service when choosing to override its default service number in the configuration file.
      Returns:
      service name as a string
    • setNumber

      void setNumber(int number)
      Set the service number. This is provided to allow MARS implementer or user to override the default service number.
      Parameters:
      number - specified service number to override the default.
    • getNumber

      int getNumber()
      Return the assigned service number. This is the number the MIPS programmer must store into $v0 before issuing the SYSCALL instruction.
      Returns:
      assigned service number
    • simulate

      void simulate(BasicStatement statement) throws SimulatorException, InterruptedException
      Performs syscall function. It will be invoked when the service is invoked at simulation time. Service is identified by value stored in $v0.
      Parameters:
      statement - BasicStatement for this syscall statement.
      Throws:
      SimulatorException
      InterruptedException