浏览代码

Fixed remaining address issues

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8078 8c9fc860-2736-0410-a75d-ab315db34111
negelef 7 年之前
父节点
当前提交
d7bd4e9bd7
共有 4 个文件被更改,包括 22 次插入22 次删除
  1. 4 4
      source/BIOS.Oberon.Diskettes.Mod
  2. 6 6
      source/FirewireLow.Mod
  3. 11 11
      source/FirewireLowUtil.Mod
  4. 1 1
      source/FirewireSBP2.Mod

+ 4 - 4
source/BIOS.Oberon.Diskettes.Mod

@@ -51,7 +51,7 @@ VAR
 	state: SHORTINT;
 	result: ARRAY 7 OF SET;
 	errors: ARRAY 3 OF SET;
-	dmabufvirt, dmabufphys, dmabufsize: LONGINT;
+	dmabufvirt, dmabufphys: ADDRESS; dmabufsize: LONGINT;
 	motor, interrupt, installed: BOOLEAN;
 	trace: SHORTINT;
 
@@ -91,7 +91,7 @@ END Error;
 (* SetupDMA - Start a DMA operation *)
 
 PROCEDURE SetupDMA(read: BOOLEAN; chan, len: LONGINT);
-VAR adr, page, mode: LONGINT;
+VAR adr: ADDRESS; page, mode: LONGINT;
 BEGIN
 	adr := dmabufphys;
 	ASSERT(len <= dmabufsize);
@@ -600,10 +600,10 @@ BEGIN {EXCLUSIVE}
 END Remove;
 
 BEGIN
-	dmabufsize := Machine.dmaSize;
+	dmabufsize := LONGINT(Machine.dmaSize);
 	IF dmabufsize > 0 THEN
 		dmabufphys := Machine.lowTop;
-		Machine.MapPhysical(dmabufphys, dmabufsize, SYSTEM.VAL(ADDRESS,dmabufvirt))
+		Machine.MapPhysical(dmabufphys, dmabufsize, dmabufvirt)
 	ELSE
 		dmabufphys := 0
 	END;

+ 6 - 6
source/FirewireLow.Mod

@@ -60,7 +60,7 @@ TYPE
 
 		(** Allocates the receive buffer for the SelfID DMA context *)
 		PROCEDURE SelfIDAlloc;
-		VAR buffer: FirewireLowUtil.CharBuffer; adr: LONGINT; s: SET;
+		VAR buffer: FirewireLowUtil.CharBuffer; adr: ADDRESS; s: SET;
 		BEGIN
 			(* KernelLog.String("Entering ConfigSelfID"); *)
 			KernelLog.Ln();
@@ -948,7 +948,7 @@ TYPE
 		PROCEDURE SendPacket(contest: Contest; VAR packet : OHCIPacket; z: LONGINT);
 		VAR cycleTimer: SET; desc,descLast: FirewireLowUtil.GeneralDesc; descOMI: FirewireLowUtil.OutputMoreImmediate;
 			descOL: FirewireLowUtil.OutputLast; descOLI: FirewireLowUtil.OutputLastImmediate; block: FirewireLowUtil.Block;
-			branchAddressPtr: LONGINT; ptrToBuf: FirewireLowUtil.CharBuffer;
+			branchAddressPtr: ADDRESS; ptrToBuf: FirewireLowUtil.CharBuffer;
 		BEGIN
 			(* KernelLog.String("Sending packet to node: "); KernelLog.Int(SYSTEM.VAL(LONGINT,packet.nodeID),2); KernelLog.Ln(); *)
 
@@ -1251,7 +1251,7 @@ TYPE
 
 		(** Allocates a buffer for the configuration rom *)
 		PROCEDURE ConfigRomAlloc;
-		VAR buffer: FirewireLowUtil.CharBuffer; adr: LONGINT; s: SET;
+		VAR buffer: FirewireLowUtil.CharBuffer; adr: ADDRESS; s: SET;
 		BEGIN
 			(* KernelLog.String("Entering configuration rom allocation"); KernelLog.Ln(); *)
 			(* Allocating 2k buffer *)
@@ -1389,7 +1389,7 @@ TYPE
 		PROCEDURE InitAsyncRecvCont;
 			VAR i: LONGINT; desc: FirewireLowUtil.InputMoreDesc; s, Z, branchAddress, dataAddress:SET;
 			quadlet1, quadlet2, quadlet3, quadlet4, reqCount: SET; reqCntst, resCntst: FirewireLowUtil.Contest; block: FirewireLowUtil.Block;
-			branchAddressPtr: LONGINT;
+			branchAddressPtr: ADDRESS;
 		BEGIN
 			desc:= OHCI.IMDesc;
 			reqCntst:= OHCI.ARController.GetReqContest();
@@ -1465,7 +1465,7 @@ TYPE
 		PROCEDURE InitIsochRecvCont;
 		VAR i: LONGINT; desc: FirewireLowUtil.InputMoreDesc; s, Z, branchAddress, dataAddress:SET;
 			quadlet1, quadlet2, quadlet3, quadlet4, reqCount: SET; contest: FirewireLowUtil.IRContest; block: FirewireLowUtil.Block;
-			branchAddressPtr: LONGINT;
+			branchAddressPtr: ADDRESS;
 		BEGIN
 			OHCI.IRController.ResetIterator();
 			IF OHCI.IRController.hasNext THEN contest:= OHCI.IRController.GetNextContest() END;
@@ -2629,4 +2629,4 @@ Builder.Compile \s *
 Aos.Call FirewireLow.Install ~
 Aos.Call FirewireLowUtil.PrintSelfIDCount ~
 Aos.Call FirewireLow.TestReset ~
-System.OpenKernelLog
+System.OpenKernelLog

+ 11 - 11
source/FirewireLowUtil.Mod

@@ -662,17 +662,17 @@ TYPE
 	(** Represents a descriptor block *)
 	Block* = RECORD
 		descNum*: LONGINT;
-		start*: LONGINT;
-		end*: LONGINT; (* Points to first quadlet of last descriptor *)
+		start*: ADDRESS;
+		end*: ADDRESS; (* Points to first quadlet of last descriptor *)
 	END;
 
 	(** Represents a context program *)
 	Program* = OBJECT
-		VAR blockBuffer*: BlockBuffer; bufferAddr*: LONGINT; j,blockNum: LONGINT; hasNext,result: BOOLEAN;
-			branchAddressPtr, branchAddress: LONGINT; nextAddr*: LONGINT; packetOffset*: LONGINT; curDesc*: SET;
+		VAR blockBuffer*: BlockBuffer; bufferAddr*: ADDRESS; j,blockNum: LONGINT; hasNext,result: BOOLEAN;
+			branchAddressPtr, branchAddress: ADDRESS; nextAddr*: ADDRESS; packetOffset*: LONGINT; curDesc*: SET;
 			ptrToBuf*: CharBuffer; oldPtrToBlck,ptrToBlck: CharBuffer;
 
-		PROCEDURE SetBranchAddress*(address,ptr: LONGINT;newPtrToBlck: CharBuffer);
+		PROCEDURE SetBranchAddress*(address,ptr: ADDRESS;newPtrToBlck: CharBuffer);
 		BEGIN
 			oldPtrToBlck:= ptrToBlck;
 			ptrToBlck:= newPtrToBlck;
@@ -684,7 +684,7 @@ TYPE
 		END SetBranchAddress;
 
 		(* Used to set the program buffer address *)
-		 PROCEDURE SetBufferAddr*(addr: LONGINT);
+		 PROCEDURE SetBufferAddr*(addr: ADDRESS);
 		 BEGIN
 		 	bufferAddr:= addr;
 		 	(* nextAddr and curDesc represent basically the same thing *)
@@ -692,7 +692,7 @@ TYPE
 		 	curDesc:= SYSTEM.VAL(SET,bufferAddr); (* just to initialize *)
 		 END SetBufferAddr;
 
-		 PROCEDURE GetBufferAddr*():LONGINT;
+		 PROCEDURE GetBufferAddr*():ADDRESS;
 		 BEGIN
 		 	RETURN bufferAddr;
 		 END GetBufferAddr;
@@ -1510,8 +1510,8 @@ BEGIN
 	END;
 END SetPhyControl;
 
-(** Converts a LONGINT to a set *)
-PROCEDURE ConvertToSet*(l: LONGINT):SET;
+(** Converts a value to a set *)
+PROCEDURE ConvertToSet*(l: ADDRESS):SET;
 BEGIN
 	RETURN SYSTEM.VAL(SET,l)
 END ConvertToSet;
@@ -1531,8 +1531,8 @@ BEGIN
 END DelOffset;
 
 (** Basically does what system.move does *)
-PROCEDURE AllocPacket*(dataAddr: ARRAY OF SET; dataSize: LONGINT;adr: LONGINT):SET;
-VAR i,j: LONGINT; address: SET;
+PROCEDURE AllocPacket*(dataAddr: ARRAY OF SET; dataSize: SIZE;adr: ADDRESS):SET;
+VAR i,j: SIZE; address: SET;
 BEGIN
 	(* dataSize is in bytes *)
 	address:= SYSTEM.VAL(SET,adr);

+ 1 - 1
source/FirewireSBP2.Mod

@@ -744,7 +744,7 @@ END InvertByteOrder;
 
 (* Allocates quadlet aligned buffers *)
 PROCEDURE AllocBuf(size:LONGINT;VAR ptrToBfr: Buffer):SET;
-VAR buffer: Buffer; adr: LONGINT; s: SET;
+VAR buffer: Buffer; adr: ADDRESS; s: SET;
 BEGIN
 	NEW(buffer, size + 4);
 	adr:= ADDRESSOF(buffer[0]);