Explorar el Código

Silent boot (for stdio shell version)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6939 8c9fc860-2736-0410-a75d-ab315db34111
felixf hace 8 años
padre
commit
cf21db4d09

+ 1 - 4
source/Generic.Linux.I386.Glue.Mod

@@ -7,7 +7,7 @@ IMPORT SYSTEM, Trace;
 
 CONST 
 	base* = 08048000H;
-	debug* = {0,1};
+	debug* = {};
 VAR
 	last-: RECORD END; (* empty variable linked to end of kernel *)
 	
@@ -206,9 +206,6 @@ VAR
 	END Initialize;
 	
 
-
-BEGIN
-	Trace.String("Glue loaded"); Trace.Ln;
 END Glue.
 
 

+ 1 - 5
source/Generic.Linux.I386.Unix.Mod

@@ -1063,9 +1063,7 @@ static void sighandler( int sig, siginfo_t *scp, void *ucp ) {
 	
 	PROCEDURE Init;
 	VAR test: ADDRESS; i: LONGINT; s: ARRAY 256 OF CHAR;
-	BEGIN
-		TRACE("Unix init start");
-		
+	BEGIN		
 		argc := Glue.argc;
 		argv := Glue.argv;
 
@@ -1189,8 +1187,6 @@ static void sighandler( int sig, siginfo_t *scp, void *ucp ) {
 				
 		CreateSignalStack;
 		InitSignalHandler;
-		
-		TRACE("Unix init end");
 	END Init;
 
 	PROCEDURE {INITIAL} Init0;

+ 4 - 2
source/Generic.Modules.Mod

@@ -26,7 +26,7 @@ CONST
 	DefaultContext* = "A2";
 	NoLoader=3400;
 
-	TraceBoot=TRUE;
+	TraceBoot=FALSE;
 
 TYPE
 	(* definitions for object-model loader support *)
@@ -823,7 +823,9 @@ END PublishRegisteredModules;
 PROCEDURE {FINAL, NOPAF} Main-;
 BEGIN
 	(*Machine.Init;*)
-	Trace.String("publish registered modules"); Trace.Ln;
+	IF TraceBoot THEN
+		Trace.String("publish registered modules"); Trace.Ln;
+	END;
 	PublishRegisteredModules;
 END Main;
 

+ 9 - 33
source/Generic.Unix.I386.Machine.Mod

@@ -41,6 +41,8 @@ CONST
 	MaxCPU* = 4;
 	IsCooperative* = FALSE;
 
+	TraceMemBlocks = FALSE;
+
 TYPE	
 	Vendor* = ARRAY 13 OF CHAR;	
 
@@ -808,7 +810,7 @@ END GetTimer;
 			IF Unix.mprotect( adr, memBlkSize, 7 (* READ WRITE EXEC *) ) # 0 THEN
 				Unix.Perror( "Machine.ExpandHeap: mprotect" )
 			END;
-			TRACE(adr, memBlkSize);
+			IF TraceMemBlocks THEN TRACE(adr, memBlkSize) END;
 		END;
 		(*
 		adr := Kernel32.VirtualAlloc(initVal, memBlkSize, {Kernel32.MEMCommit, Kernel32.MEMReserve}, {Kernel32.PageExecuteReadWrite});
@@ -816,9 +818,11 @@ END GetTimer;
 			adr := Kernel32.VirtualAlloc(NilVal, memBlkSize, {Kernel32.MEMCommit}, {Kernel32.PageExecuteReadWrite});
 		END;
 		*)
-		Trace.String("first heap block intVal "); Trace.Int(initVal,1); Trace.Ln;
-		Trace.String("first heap block memBlkSize "); Trace.Int(memBlkSize,1); Trace.Ln;
-		Trace.String("first heap block adr "); Trace.Int(adr,1); Trace.Ln;
+		IF TraceMemBlocks THEN
+			Trace.String("first heap block intVal "); Trace.Int(initVal,1); Trace.Ln;
+			Trace.String("first heap block memBlkSize "); Trace.Int(memBlkSize,1); Trace.Ln;
+			Trace.String("first heap block adr "); Trace.Int(adr,1); Trace.Ln;
+		END;
 		ASSERT(adr # 0);
 
 		alignOffset := (-adr) MOD StaticBlockSize;
@@ -853,8 +857,6 @@ END GetTimer;
 		S.PUT(beginBlockAdr+6*AddressSize,0);
 
 		memoryBlock := memBlock;
-		
-		TRACE("InitHeap done");
 	END InitHeap;
 
 	(*
@@ -945,14 +947,7 @@ END GetTimer;
 			pid := pid DIV 10;		
 		UNTIL i = 3;
 		logfile := Unix.open( ADDRESSOF( name ), Unix.rdwr + Unix.creat + Unix.trunc, Unix.rwrwr );
-		IF Unix.argc > 2 THEN
-			Unix.GetArgval( "-x", cmd );
-			IF cmd # "" THEN  SilentLog;  standaloneAppl := TRUE 
-			ELSE  VerboseLog 
-			END
-		ELSE
-			VerboseLog
-		END
+		SilentLog;
 	END InitLog;
 	
 	PROCEDURE SilentLog*;
@@ -979,24 +974,6 @@ END GetTimer;
 	PROCEDURE Init;
 	VAR vendor: Vendor; ver: LONGINT;
 	BEGIN
-		TRACE("Machine Init Start");
-
-		(*
-		Unix.Dlsym( 0, "Unix.ThrInitialize",	ADDRESSOF( Unix.ThrInitialize ) );
-		
-		Unix.Dlsym( 0, "Unix.MtxInit",		ADDRESSOF( Unix.MtxInit ) );
-		Unix.Dlsym( 0, "Unix.MtxDestroy",	ADDRESSOF( Unix.MtxDestroy ) );
-		Unix.Dlsym( 0, "Unix.MtxLock",		ADDRESSOF( Unix.MtxLock ) );
-		Unix.Dlsym( 0, "Unix.MtxUnlock",	ADDRESSOF( Unix.MtxUnlock ) );
-		
-		Unix.Dlsym( 0, "conInit",		ADDRESSOF( conInit ) );
-		Unix.Dlsym( 0, "conDestroy",	ADDRESSOF( conDestroy ) );
-		Unix.Dlsym( 0, "conWait",		ADDRESSOF( conWait ) );
-		Unix.Dlsym( 0, "conSignal",	ADDRESSOF( conSignal ) );
-			
-		Unix.Dlsym( 0, "thrSleep",	ADDRESSOF( thrSleep ) );
-		Unix.Dlsym( 0, "thrThis",		ADDRESSOF( thrThis ) );
-		*) 
 		standaloneAppl := FALSE;
 		
 		COPY( Unix.Version, version );  Append( version, Version );
@@ -1011,7 +988,6 @@ END GetTimer;
 			CPUID( vendor, ver, features, features2 );	 SetupSSE2Ext
 		END;
 		fcr := (FCR() - {0,2,3,10,11}) + {0..5,8,9};	(* default FCR RC=00B *)
-		TRACE("Machine Init End");
 	END Init;
 
 	PROCEDURE {INITIAL} Init0;

+ 4 - 4
source/Shell.Mod

@@ -520,7 +520,7 @@ TYPE
 			IF (cmd.command = "alias") THEN
 				ReadAlias(cmd, TRUE)
 			ELSIF (cmd.command = "loadalias") THEN
-				LoadAliasesFromFile(cmd.parameters);
+				LoadAliasesFromFile(cmd.parameters, TRUE);
 			ELSIF (cmd.command = "batch") THEN
 				context.out.String(Version); context.out.Ln; context.out.Update;
 				oldContext := context; context := cmd.context;
@@ -621,7 +621,7 @@ TYPE
 		END ParseAliases;
 
 		(* Read aliases from specified file. Returns NIL if file not found or parsing failed. *)
-		PROCEDURE LoadAliasesFromFile(filename : ARRAY OF CHAR);
+		PROCEDURE LoadAliasesFromFile(filename : ARRAY OF CHAR; critical: BOOLEAN);
 		VAR in : Files.Reader; f : Files.File;
 		BEGIN
 			IF filename = "" THEN COPY(DefaultAliasFile, filename); END;
@@ -633,7 +633,7 @@ TYPE
 					ParseAliases(in);
 					context.out.String("done."); context.out.Ln;
 				END;
-			ELSE
+			ELSIF critical THEN
 				context.out.String("Loading aliases failed: File "); context.out.String(filename);
 				context.out.String(" not found."); context.out.Ln;
 			END;
@@ -643,7 +643,7 @@ TYPE
 	BEGIN {ACTIVE, SAFE}
 		context.out.String(Version); context.out.Ln;
 		context.out.String("Enter 'help' if needed"); context.out.Ln;
-		LoadAliasesFromFile(DefaultAliasFile);
+		LoadAliasesFromFile(DefaultAliasFile, FALSE);
 		context.out.Update;
 		Run;
 		IF (upcall # NIL) THEN upcall(ExitShell); END;

+ 8 - 0
source/Win32.Machine.Mod

@@ -279,6 +279,13 @@ END SetSP;
 		IF Kernel32.GetPrivateProfileString (ConfigKey, name, "", val, LEN (val), userConfigFile) # 0 THEN
 		ELSIF Kernel32.GetPrivateProfileString (ConfigKey, name, "", val, LEN (val), defaultConfigFile) # 0 THEN
 		END;
+		IF (name = "ObjectFileExtension") & (val = "") THEN
+			IF Kernel32.Generic THEN
+				val := ".GofW";
+			ELSE
+				val := ".Obw"
+			END;
+		END;
 	END GetConfig;
 
 	PROCEDURE Shutdown*( restart: BOOLEAN );
@@ -1080,3 +1087,4 @@ BEGIN
 		Init
 	END;
 END Machine.
+

+ 0 - 1
source/Win32.StdIo.Mod

@@ -49,7 +49,6 @@ VAR
 BEGIN
 	WinTrace.OpenConsole;
 	str := Args();
-	TRACE(str^); 
 	NEW( arg, LEN(str) ); arg.Set(str^);
 	NEW( stdin, WinTrace.Receive, 1024 );
 	NEW( stdout, WinTrace.Send, 1024 );