瀏覽代碼

added getnprocs()

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7109 8c9fc860-2736-0410-a75d-ab315db34111
eth.guenter 8 年之前
父節點
當前提交
1baac06b92
共有 1 個文件被更改,包括 8 次插入1 次删除
  1. 8 1
      source/Generic.Solaris.I386.Unix.Mod

+ 8 - 1
source/Generic.Solaris.I386.Unix.Mod

@@ -415,7 +415,7 @@ VAR
 
 	sigstack-: ARRAY 32*4096 OF CHAR;
 	
-	 
+	sysconf	: PROCEDURE {C} ( name: LONGINT ): WORD;
 	
 	pthread_mutex_init		: PROCEDURE {C} ( mutex: ADDRESS; mutexattr: ADDRESS ): WORD;
 	pthread_mutex_destroy	: PROCEDURE {C} ( mutex: ADDRESS ): WORD;
@@ -565,6 +565,12 @@ VAR
 		loc := errno_location();
 		RETURN S.GET32( loc );
 	END errno;	
+	
+	PROCEDURE getnprocs* ( ): LONGINT;
+	BEGIN
+		RETURN sysconf( 15 ); (* 14 for number of processors configured, 15 for number of processors online *)
+	END getnprocs;
+
 
 	(*------------------------------------------------------------------------------------------------------*)
 	
@@ -1015,6 +1021,7 @@ VAR
 		libp := Dlopen( libpthreadname, 2 ); 
 		
 		Dlsym( libc, "exit",		ADDRESSOF( exit ) );
+		Dlsym( libc, "sysconf", ADDRESSOF( sysconf ) );
 
 		Dlsym( libc, "pthread_mutex_init", ADDRESSOF( pthread_mutex_init ) );
 		Dlsym( libc, "pthread_mutex_destroy", ADDRESSOF( pthread_mutex_destroy ) );