update to have full r-type bits
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 27 Apr 2018 04:04:46 +0000 (05:04 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 27 Apr 2018 04:04:46 +0000 (05:04 +0100)
isa_conflict_resolution/ioctl.mdwn

index 7acd97bd5b8224be660fbec92a66a7bff5962789..a48e5f63eadb96dbb6801bffb77f251d3ca30280 100644 (file)
@@ -86,14 +86,17 @@ ioctl number:
 "Ioctls" (arbitrarily 8 separate R-type opcodes) then perform a redirect
 based on what the global state for that numbered "ioctl" has been set to:
 
-    def ioctl_fn0(*rargs): # star means "take all arguments as a tuple"
+    def ioctl_fn0(funct7, rs2, rs1, funct3, rd): # all r-type bits
         if handle_global_state[0] == CUSTOMEXT1UUID:
-           CUSTOMEXT1_FN0(*rargs) # apply all arguments to function
+           CUSTEXT1_FN0(funct7, rs2, rs1, funct3, rd) # all r-type bits
         elif handle_global_state[0] == CUSTOMEXT2UUID:
-           CUSTOMEXT2_FN0(*rargs) # apply all arguments to function
+           CUSTEXT2_FN0(funct7, rs2, rs1, funct3, rd, opcode) # all r-type bits
         else:
             raise Exception("undefined opcode")
 
+Note that the "ioctl" receives all r-type bits (31:7) with the exception of the
+opcode (6:0).
+
 === RB ==
 
 not quite I think. It is more like