Преглед на файлове

changed initialization order, Glue is first now

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6623 8c9fc860-2736-0410-a75d-ab315db34111
eth.guenter преди 9 години
родител
ревизия
24d1137541
променени са 2 файла, в които са добавени 14 реда и са изтрити 13 реда
  1. 11 9
      source/Unix.BootConsole.Mod
  2. 3 4
      source/Unix.Glue.Mod

+ 11 - 9
source/Unix.BootConsole.Mod

@@ -1,6 +1,6 @@
 MODULE BootConsole;	(** AUTHOR "G.F."; PURPOSE "Boot console"; *)
 
-IMPORT S := SYSTEM, Trace, Glue, Unix, Modules, Objects, Commands;
+IMPORT S := SYSTEM, Trace, Glue, Unix, Modules, Objects, Commands, Heaps;
 
 TYPE
 	Module = Modules.Module;
@@ -145,22 +145,24 @@ VAR
 	
 	
 	
-	PROCEDURE InitPrelinkedModules;
+	PROCEDURE InitializeCoreModules;
 	TYPE Body = PROCEDURE;
 	VAR m: Modules.Module;  body: Body;  trace: BOOLEAN;
 	BEGIN
-		m := Modules.root;  trace := FALSE;  
+		m := Modules.root;  trace :=  Glue.debug # {};
 		LOOP
 			IF m.name = "BootConsole" THEN  EXIT   END;   (* initialize modules belonging to bootfile only *)
 			IF trace THEN
-				Trace.String( "Initializing " );  Trace.String( m.name ); Trace.Ln
+				Trace.String( "#### Initializing " );  Trace.String( m.name ); 
+				Trace.String( "     code: [" ); Trace.Hex( ADDRESSOF( m.code[0] ), -8 );
+				Trace.String( ".." ); Trace.Hex( ADDRESSOF( m.code[0] ) + LEN( m.code^ ), -8 );
+				Trace.Char( ']' ); Trace.Ln
 			END;
 			body := S.VAL( Body, ADDRESSOF( m.code[0] ) );
 			body;	
-			IF m.name = "Glue" THEN  trace := Glue.debug # {}  END;
 			m := m.next
 		END
-	END InitPrelinkedModules;
+	END InitializeCoreModules;
 
 
 	PROCEDURE StartSystem;
@@ -180,11 +182,11 @@ VAR
 	END StartSystem;
 
 
-
 BEGIN
-	InitPrelinkedModules;
+	Glue.Initialize;
+	InitializeCoreModules;
 	StartSystem;
-	Objects.GCLoop;
+	Objects.GCLoop
 END BootConsole.
 
 

+ 3 - 4
source/Unix.Glue.Mod

@@ -36,7 +36,7 @@ VAR
 
 
 
-	PROCEDURE Init;
+	PROCEDURE Initialize*;
 	VAR i: LONGINT;
 	BEGIN
 		S.MOVE( ADDRESSOF( AAgetadr ), ADDRESSOF( dlsym ), AddrSize );
@@ -50,8 +50,7 @@ VAR
 		stackBottom := ADDRESSOF( i ) + 2*AddrSize;
 		
 		Trace.Char := Char;
-	END Init;
+	END Initialize;
+
 
-BEGIN
-	Init;
 END Glue.