Ver Fonte

cleanup, removed outdated superfluous code

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6558 8c9fc860-2736-0410-a75d-ab315db34111
eth.guenter há 9 anos atrás
pai
commit
756f0bbff4
3 ficheiros alterados com 54 adições e 70 exclusões
  1. 2 8
      source/Unix.BootConsole.Mod
  2. 51 62
      source/Unix.I386.Machine.Mod
  3. 1 0
      source/Unix.Objects.Mod

+ 2 - 8
source/Unix.BootConsole.Mod

@@ -1,6 +1,6 @@
 MODULE BootConsole;	(** AUTHOR "G.F."; PURPOSE "Boot console"; *)
 
-IMPORT S := SYSTEM, Trace, Glue, Unix, Machine, Modules, Objects, Commands;
+IMPORT S := SYSTEM, Trace, Glue, Unix, Modules, Objects, Commands;
 
 TYPE
 	Module = Modules.Module;
@@ -69,9 +69,7 @@ VAR
 		m := Modules.ThisModule( modName, res, msg );
 		IF m # NIL THEN
 			cmd := ThisCommand( m, procName );
-			IF cmd # NIL THEN  
-				IF Machine.standaloneAppl THEN  Machine.SilentLog  END;
-				cmd
+			IF cmd # NIL THEN  cmd
 			ELSE
 				Trace.String( "BootConsole.Execute:  module '" );  Trace.String( modName );
 				Trace.String( "' has no command '" );  Trace.String( procName );  Trace.Char( "'" );
@@ -128,7 +126,6 @@ VAR
 	BEGIN
 		Unix.GetArgval( "-x", cmd );
 		IF cmd # "" THEN  	
-			Machine.VerboseLog;
 			ci := 0;
 			IF GetName( modName ) & GetName( cmdName ) THEN  
 				IF Glue.debug # {} THEN
@@ -186,10 +183,7 @@ VAR
 
 BEGIN
 	InitPrelinkedModules;
-	
 	StartSystem;
-	
-	Objects.SetPriority( Objects.GCPriority );
 	Objects.GCLoop;
 END BootConsole.
 

+ 51 - 62
source/Unix.I386.Machine.Mod

@@ -6,7 +6,7 @@ IMPORT S := SYSTEM, Trace, Unix, Glue;
 CONST
 	DefaultConfig = "Color 0  StackSize 128";
 	
-	Version = "Aos (rev.6275)";
+	Version = "Aos (rev.6547)";
 
 	DefaultObjectFileExtension* = ".Obj";
 	
@@ -112,7 +112,6 @@ VAR
 	
 	timer0	: HUGEINT;
 
-(** -- Processor identification -- *)
 
 	(** Return current processor ID (0 to MaxNum-1). *)
 	PROCEDURE {REALTIME} ID* (): LONGINT;
@@ -231,32 +230,47 @@ VAR
 			cur := cur.next
 		END
 	END TraceHeap;
+	
 
+	(* returns if an address is a currently allocated heap address *)
+	PROCEDURE ValidHeapAddress*( p: ADDRESS ): BOOLEAN;
+	VAR mb: MemoryBlock; 
+	BEGIN
+		mb := memBlockHead;  
+		WHILE mb # NIL DO
+			IF (p >= mb.beginBlockAdr) & (p <= mb.endBlockAdr) THEN  RETURN TRUE  END;  
+			mb := mb.next;  
+		END;  
+		RETURN FALSE  
+	END ValidHeapAddress;
 	
+
 	(** Return information on free memory in Kbytes. *)
 	PROCEDURE GetFreeK*(VAR total, lowFree, highFree: SIZE);
 	BEGIN
-		(* meaningless in Unix port, for interface compatibility only *)
+		(*! meaningless in Unix port, for interface compatibility only *)
 		total := 0;
 		lowFree := 0;
 		highFree := 0
 	END GetFreeK;
+	
+	
 
-(** Fill "size" bytes at "destAdr" with "filler". "size" must be multiple of 4. *)
-PROCEDURE {REALTIME} Fill32* (destAdr: ADDRESS; size: SIZE; filler: LONGINT);
-CODE {SYSTEM.i386}
-	MOV EDI, [EBP+destAdr]
-	MOV ECX, [EBP+size]
-	MOV EAX, [EBP+filler]
-	TEST ECX, 3
-	JZ ok
-	PUSH 8	; ASSERT failure
-	INT 3
-ok:
-	SHR ECX, 2
-	CLD
-	REP STOSD
-END Fill32;
+	(** Fill "size" bytes at "destAdr" with "filler". "size" must be multiple of 4. *)
+	PROCEDURE {REALTIME} Fill32* (destAdr: ADDRESS; size: SIZE; filler: LONGINT);
+	CODE {SYSTEM.i386}
+		MOV EDI, [EBP+destAdr]
+		MOV ECX, [EBP+size]
+		MOV EAX, [EBP+filler]
+		TEST ECX, 3
+		JZ ok
+		PUSH 8	; ASSERT failure
+		INT 3
+	ok:
+		SHR ECX, 2
+		CLD
+		REP STOSD
+	END Fill32;
 
 
 PROCEDURE  Portin8*(port: LONGINT; VAR val: CHAR);
@@ -278,28 +292,6 @@ PROCEDURE  Portout32*(port: LONGINT; val: LONGINT);
 END Portout32;
 
 
-(* returns if an address is a currently allocated heap address *)
-PROCEDURE ValidHeapAddress*( p: ADDRESS ): BOOLEAN;
-VAR mb: MemoryBlock; 
-BEGIN
-	mb := memBlockHead;  
-	WHILE mb # NIL DO
-		IF (p >= mb.beginBlockAdr) & (p <= mb.endBlockAdr) THEN  RETURN TRUE  END;  
-		mb := mb.next;  
-	END;  
-	RETURN FALSE  
-END ValidHeapAddress;
-
-PROCEDURE Ensure32BitAddress*( adr: ADDRESS ): LONGINT;
-BEGIN
-	RETURN adr
-END Ensure32BitAddress;
-
-PROCEDURE Is32BitAddress*( adr: ADDRESS ): BOOLEAN;
-BEGIN  RETURN S.VAL( LONGINT, adr ) = adr;
-END Is32BitAddress;
-
-
 (** -- Atomic operations -- *)
 
 (** Atomic INC(x). *)
@@ -443,7 +435,7 @@ CODE {SYSTEM.Pentium}
 END GetTimer;
 
 
-(** -- Configuration and bootstrapping -- *)
+	(** -- Configuration and bootstrapping -- *)
 
 	(** Return the value of the configuration string specified by parameter name in parameter val. Returns val = "" if the string was not found, or has an empty value. *)
 	PROCEDURE GetConfig* (CONST name: ARRAY OF CHAR; VAR val: ARRAY OF CHAR);
@@ -608,20 +600,11 @@ END GetTimer;
 		AVXSupport := SSE3Support & (AVXFlag IN features2);
 
 		IF SSESupport & (FXSRFlag IN features) THEN
-			(* InitSSE(); *) (*! not privileged mode in Windows and Unix not allowed *)
+			(* InitSSE(); *) (*! not privileged mode in Windows and Unix, not allowed *)
 		END;
 	END SetupSSE2Ext;
 	
 
-	PROCEDURE -InitSSE;
-	CODE {SYSTEM.Pentium, SYSTEM.Privileged}
-		MOV	EAX, CR4
-		OR		EAX, 00000200H		; set bit 9 (OSFXSR)
-		AND	EAX, 0FFFFFBFFH	; delete bit 10 (OSXMMEXCPT)
-		MOV	CR4, EAX
-	END InitSSE;
-	
-
 	(** -- Processor initialization -- *)
 	PROCEDURE -SetFCR( s: SET );
 	CODE {SYSTEM.i386, SYSTEM.FPU}
@@ -748,22 +731,22 @@ END GetTimer;
 		END
 	END CPUSpeed;
 	
-	PROCEDURE Log1( c: CHAR );
+	PROCEDURE Log( c: CHAR );
 	VAR ignore: LONGINT;
 	BEGIN
 		ignore := Unix.write( 1, ADDRESSOF( c ), 1 );
 		ignore := Unix.write( logfile, ADDRESSOF( c ), 1 );
-	END Log1;
+	END Log;
 	
-	PROCEDURE Log2( c: CHAR );
+	PROCEDURE LogFileOnly( c: CHAR );
 	VAR ignore: LONGINT;
 	BEGIN
 		ignore := Unix.write( logfile, ADDRESSOF( c ), 1 );
-	END Log2;
+	END LogFileOnly;
 	
 	
 	PROCEDURE InitLog;
-	VAR name: ARRAY 32 OF CHAR;  pid, i, d: LONGINT;
+	VAR name, cmd: ARRAY 32 OF CHAR;  pid, i: LONGINT; 
 	BEGIN
 		name := "AOS.xxxxx.Log";
 		pid := Unix.getpid();  i := 8;
@@ -772,19 +755,24 @@ 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 < 3 THEN  VerboseLog  
-		ELSE  standaloneAppl := TRUE;  SilentLog
+		IF Unix.argc > 2 THEN
+			Unix.GetArgval( "-x", cmd );
+			IF cmd # "" THEN  SilentLog;  standaloneAppl := TRUE 
+			ELSE  VerboseLog 
+			END
+		ELSE
+			VerboseLog
 		END
 	END InitLog;
 	
 	PROCEDURE SilentLog*;
 	BEGIN
-		Trace.Char := Log2
+		Trace.Char := LogFileOnly
 	END SilentLog;
 	
 	PROCEDURE VerboseLog*;
 	BEGIN
-		Trace.Char := Log1
+		Trace.Char := Log
 	END VerboseLog;
 
 	
@@ -828,8 +816,9 @@ END GetTimer;
 		InitConfig;
 		InitLog;
 		CPUSpeed;
-		
-		CPUID( vendor, ver, features, features2 );	 SetupSSE2Ext;
+		IF CpuIdSupported() THEN
+			CPUID( vendor, ver, features, features2 );	 SetupSSE2Ext
+		END;
 		fcr := (FCR() - {0,2,3,10,11}) + {0..5,8,9};	(* default FCR RC=00B *)
 	END Init;
 

+ 1 - 0
source/Unix.Objects.Mod

@@ -684,6 +684,7 @@ TYPE
 	*)
 	PROCEDURE GCLoop*;	(* Timer and GC activity *)
 	BEGIN
+		SetPriority( GCPriority );
 		LOOP
 			IF collect THEN  
 				collect := FALSE;