浏览代码

minor changes in Kernel (mostly comments)

Alexander Shiryaev 12 年之前
父节点
当前提交
1cd9ea81a8
共有 4 个文件被更改,包括 10 次插入32 次删除
  1. 二进制
      BlackBox/Lin/Mod/Obsd.Kernel.odc
  2. 10 32
      BlackBox/Lin/Mod/Obsd.Kernel.txt
  3. 二进制
      BlackBox/libBB.so
  4. 二进制
      BlackBox/libBB0.so

二进制
BlackBox/Lin/Mod/Obsd.Kernel.odc


+ 10 - 32
BlackBox/Lin/Mod/Obsd.Kernel.txt

@@ -9,6 +9,11 @@ MODULE Kernel;
 		+ 20120822 Marc changes
 		Some parts taken from OpenBUGS linKernel
 
+		Most Windows-specific code removed
+		Some Windows-specific code commented and marked red
+		Windows COM-specific code re-marked from green to gray
+		OpenBSD(/Linux)-specific code marked green
+
 		TODO:
 			IsReadable
 			correct cmdLine
@@ -598,13 +603,9 @@ MODULE Kernel;
 	END AllocHeapMem;
 
 	PROCEDURE FreeHeapMem (c: Cluster);
-		VAR adr: Libc.PtrVoid;
-			size: INTEGER;
-			res: INTEGER;
 	BEGIN
 		DEC(used, c.size); DEC(total, c.size);
-		adr := c.max; size := (S.VAL(INTEGER, c) - adr) + c.size;
-		HeapFree(adr, size)
+		HeapFree(c.max, (S.VAL(INTEGER, c) - c.max) + c.size)
 	END FreeHeapMem;
 
 	PROCEDURE AllocModMem* (descSize, modSize: INTEGER; VAR descAdr, modAdr: INTEGER);
@@ -723,6 +724,9 @@ MODULE Kernel;
 		IF (nofdim < 0)OR(nofdim>1FFFFFFCH) THEN RETURN 0 END;(*20120822 Marc*)
 		headSize := 4 * nofdim + 12; fin := FALSE;
 		CASE eltyp OF
+(*
+		| -1: eltyp := S.ADR(IntPtrType); fin := TRUE
+*)
 		| -1: HALT(100)
 		| 0: eltyp := S.ADR(PtrType)
 		| 1: eltyp := S.ADR(Char8Type)
@@ -879,7 +883,7 @@ MODULE Kernel;
 					res := Libc.printf(", R|W|E) failed: errno = "); Int(errno);
 					res := Libc.printf(0AX);
 					
-					(* HALT(100) *)
+					HALT(100)
 				ELSE ASSERT(res = 0)
 				END;
 
@@ -2052,32 +2056,9 @@ MODULE Kernel;
 		END
 	END InstallSignals;
 
-(*
-	PROCEDURE ReserveCrossArea;
-		CONST
-			allocSize = 65536 * 5;
-		VAR x: Libc.PtrVoid;
-			n: INTEGER;
-	BEGIN
-		n := 10000;
-		x := Libc.calloc(1, allocSize);
-		WHILE (n > 0) & (x # Libc.NULL) & ((x > 0) & (x + allocSize > 0) OR (x < 0) & (x + allocSize < 0)) DO
-			Libc.free(x);
-			x := Libc.calloc(1, allocSize);
-			DEC(n)
-		END;
-		IF (n > 0) & (x # Libc.NULL) THEN
-			Msg("CROSS AREA RESERVED")
-		ELSE
-			Msg("CROSS AREA NOT RESERVED")
-		END
-	END ReserveCrossArea;
-*)
-
 	PROCEDURE Init;
 		VAR i: INTEGER;
 	BEGIN
-		(* ReserveCrossArea; *)
 		InstallSignals; (* init exception handling *)
 		currentTryContext := NIL;
 
@@ -2088,9 +2069,6 @@ MODULE Kernel;
 (*
 		S.PUTREG(ML, S.ADR(modList));
 *)
-(*
-		WinApi.OutputDebugStringW("BlackBox started");
-*)
 
 		i := N;
 		REPEAT DEC(i); free[i] := sentinel UNTIL i = 0;

二进制
BlackBox/libBB.so


二进制
BlackBox/libBB0.so