X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2FMachineDefinition.java;h=b568e7e0830c7ade4a88461b227e9e84d8a00faf;hb=cc800d982ab9fe3e7d026655847a2160e34a5f8e;hp=02cf375709d0ed9f68b8b29d8c890803b42b4f7e;hpb=7d05144c25daa53e60fc9ed9fd503546a86567f8;p=Mograsim.git diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java index 02cf3757..b568e7e0 100644 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineDefinition.java @@ -1,11 +1,28 @@ package net.mograsim.machine; -import java.util.Set; +import java.util.List; import net.mograsim.machine.mi.MicroInstructionMemoryDefinition; +import net.mograsim.machine.registers.Register; +import net.mograsim.machine.registers.RegisterGroup; public interface MachineDefinition { + /** + * This returns the MachineDefinitions ID. This must be consistent and coherent with the id in the extension point (Eclipse plugin xml) + * providing the definition. + * + * @return a human readable, unique id representing the specified machine. + * @author Christian Femers + */ + String getId(); + + /** + * Returns a human-readable description of the machine definition. + * + * @author Daniel Kirschten + */ + String getDescription(); /** * Creates a new instance of the machine @@ -24,12 +41,20 @@ public interface MachineDefinition ISASchema getISASchema(); /** - * Returns a set of all {@link Register}s present in the machine. + * Returns a set of all {@link Register}s present in the machine that are not part of a register group. * * @return all registers present in the machine. * @author Christian Femers */ - Set getRegisters(); + List getUnsortedRegisters(); + + /** + * Returns a set of all RegisterGroups that the machine contains + * + * @return all register groups present in the machine. + * @author Christian Femers + */ + List getRegisterGroups(); /** * The number of bits used by the machine to address main memory. Note that this should be the number of bits used in the CPU, not a