Bläddra i källkod

Verbose Unix logging into both log file and stdout must now be explicitly enabled (BootConsole enables it for backward-compatible behaviour)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7977 8c9fc860-2736-0410-a75d-ab315db34111
negelef 7 år sedan
förälder
incheckning
54d75732af
3 ändrade filer med 17 tillägg och 10 borttagningar
  1. 8 5
      source/Unix.AMD64.Machine.Mod
  2. 1 0
      source/Unix.BootConsole.Mod
  3. 8 5
      source/Unix.I386.Machine.Mod

+ 8 - 5
source/Unix.AMD64.Machine.Mod

@@ -677,9 +677,11 @@ END GetTimer;
 	PROCEDURE Shutdown*( reboot: BOOLEAN );
 	VAR r: LONGINT;  logstat: Unix.Status;
 	BEGIN
-		r := Unix.fstat( logfile, logstat );
-		r := Unix.close( logfile );
-		IF logstat.size = 0 THEN  r := Unix.unlink( ADDRESSOF( logname) )  END;
+		IF logfile > 0 THEN
+			r := Unix.fstat( logfile, logstat );
+			r := Unix.close( logfile );
+			IF logstat.size = 0 THEN  r := Unix.unlink( ADDRESSOF( logname) )  END;
+		END;
 		IF reboot THEN  Unix.exit( 0 )  ELSE  Unix.exit( 1 )  END;
 	END Shutdown;
 		
@@ -753,6 +755,7 @@ END GetTimer;
 	PROCEDURE InitLog;
 	VAR pid, i: LONGINT; 
 	BEGIN
+		IF logfile > 0 THEN RETURN END;
 		logname := "AOS.xxxxx.Log";
 		pid := Unix.getpid();  i := 8;
 		REPEAT
@@ -760,16 +763,17 @@ END GetTimer;
 			pid := pid DIV 10;		
 		UNTIL i = 3;
 		logfile := Unix.open( ADDRESSOF( logname ), Unix.rdwr + Unix.creat + Unix.trunc, Unix.rwrwr );
-		VerboseLog;	
 	END InitLog;
 	
 	PROCEDURE SilentLog*;
 	BEGIN
+		InitLog;
 		Trace.Char := LogFileOnly
 	END SilentLog;
 	
 	PROCEDURE VerboseLog*;
 	BEGIN
+		InitLog;
 		Trace.Char := Log
 	END VerboseLog;
 
@@ -794,7 +798,6 @@ END GetTimer;
 		InitLocks;
 		traceHeap := 1 IN Glue.debug;
 		InitConfig;
-		InitLog;
 		CPUSpeed;
 		IF CpuIdSupported() THEN
 			CPUID( vendor, ver, features, features2 );	 SetupSSE2Ext

+ 1 - 0
source/Unix.BootConsole.Mod

@@ -197,6 +197,7 @@ VAR
 	END InitSignalHandling;
 	
 BEGIN
+	Machine.VerboseLog;
 	Glue.Initialize;
 	InitializeCoreModules;
 	InitSignalHandling;

+ 8 - 5
source/Unix.I386.Machine.Mod

@@ -672,9 +672,11 @@ END GetTimer;
 	PROCEDURE Shutdown*( reboot: BOOLEAN );
 	VAR r: LONGINT;  logstat: Unix.Status;
 	BEGIN
-		r := Unix.fstat( logfile, logstat );
-		r := Unix.close( logfile );
-		IF logstat.size = 0 THEN  r := Unix.unlink( ADDRESSOF( logname) )  END;
+		IF logfile > 0 THEN
+			r := Unix.fstat( logfile, logstat );
+			r := Unix.close( logfile );
+			IF logstat.size = 0 THEN  r := Unix.unlink( ADDRESSOF( logname) )  END;
+		END;
 		IF reboot THEN  Unix.exit( 0 )  ELSE  Unix.exit( 1 )  END;
 	END Shutdown;
 		
@@ -748,6 +750,7 @@ END GetTimer;
 	PROCEDURE InitLog;
 	VAR pid, i: LONGINT; 
 	BEGIN
+		IF logfile > 0 THEN RETURN END;
 		logname := "AOS.xxxxx.Log";
 		pid := Unix.getpid();  i := 8;
 		REPEAT
@@ -755,16 +758,17 @@ END GetTimer;
 			pid := pid DIV 10;		
 		UNTIL i = 3;
 		logfile := Unix.open( ADDRESSOF( logname ), Unix.rdwr + Unix.creat + Unix.trunc, Unix.rwrwr );
-		VerboseLog;	
 	END InitLog;
 	
 	PROCEDURE SilentLog*;
 	BEGIN
+		InitLog;
 		Trace.Char := LogFileOnly
 	END SilentLog;
 	
 	PROCEDURE VerboseLog*;
 	BEGIN
+		InitLog;
 		Trace.Char := Log
 	END VerboseLog;
 
@@ -789,7 +793,6 @@ END GetTimer;
 		InitLocks;
 		traceHeap := 1 IN Glue.debug;
 		InitConfig;
-		InitLog;
 		CPUSpeed;
 		IF CpuIdSupported() THEN
 			CPUID( vendor, ver, features, features2 );	 SetupSSE2Ext