Quellcode durchsuchen

allow to disable trace output at all

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7661 8c9fc860-2736-0410-a75d-ab315db34111
eth.morozova vor 7 Jahren
Ursprung
Commit
d03063c66a
1 geänderte Dateien mit 9 neuen und 3 gelöschten Zeilen
  1. 9 3
      source/Serials.Mod

+ 9 - 3
source/Serials.Mod

@@ -215,7 +215,7 @@ END TraceChar;
 (**
 	Setup serial port for kernel trace output
 
-	portNumber: serial port number; a value < 0 for disabling trace output over an already set up serial port
+	portNumber: serial port number, or 0 to disable trace output, or a negative value for rolling back to the initial trace output configuration
 	bps, data, parity, stop: serial port settings
 *)
 PROCEDURE SetTracePort*(portNumber: LONGINT; bps, data, parity, stop: LONGINT; VAR res: LONGINT);
@@ -241,7 +241,7 @@ BEGIN{EXCLUSIVE}
 			END;
 		END;
 
-		IF traceChar0 # TraceChar THEN
+		IF Trace.Char # TraceChar THEN
 			traceChar0 := Trace.Char;
 		END;
 
@@ -253,8 +253,14 @@ BEGIN{EXCLUSIVE}
 		Machine.Release(Machine.TraceOutput);
 
 		TRACE(Trace.Char);
+	ELSIF portNumber = 0 THEN
+		tracePort := NIL;
+		IF Trace.Char # TraceChar THEN
+			traceChar0 := Trace.Char;
+		END;
+		Trace.Char := TraceChar;
 	ELSIF portNumber < 0 THEN
-		IF tracePort # NIL THEN
+		IF traceChar0 # NIL THEN
 
 			Machine.Acquire(Machine.TraceOutput);
 			Trace.Char := traceChar0;