OSDN Git Service

Saearch & Replace domain names to move from .m0k.org to handbrake.fr. Only covers...
[handbrake-jp/handbrake-jp-git.git] / libhb / ports.c
index bdeadc1..cecfc56 100644 (file)
@@ -1,10 +1,10 @@
 /* $Id: ports.c,v 1.15 2005/10/15 18:05:03 titer Exp $
 
    This file is part of the HandBrake source code.
-   Homepage: <http://handbrake.m0k.org/>.
+   Homepage: <http://handbrake.fr/>.
    It may be used under the terms of the GNU General Public License. */
 
-#include <time.h> 
+#include <time.h>
 #include <sys/time.h>
 
 #if defined( SYS_BEOS )
@@ -12,6 +12,8 @@
 #include <signal.h>
 #elif defined( SYS_CYGWIN )
 #include <windows.h>
+#elif defined( SYS_SunOS )
+#include <sys/processor.h>
 #endif
 
 #if USE_PTHREAD
@@ -74,7 +76,7 @@ void hb_snooze( int delay )
     }
 #if defined( SYS_BEOS )
     snooze( 1000 * delay );
-#elif defined( SYS_DARWIN ) || defined( SYS_LINUX ) || defined( SYS_FREEBSD )
+#elif defined( SYS_DARWIN ) || defined( SYS_LINUX ) || defined( SYS_FREEBSD) || defined( SYS_SunOS )
     usleep( 1000 * delay );
 #elif defined( SYS_CYGWIN )
     Sleep( delay );
@@ -146,6 +148,22 @@ int hb_get_cpu_count()
     SYSTEM_INFO cpuinfo;
     GetSystemInfo( &cpuinfo );
     cpu_count = cpuinfo.dwNumberOfProcessors;
+#elif defined( SYS_SunOS )
+    {
+        processorid_t cpumax;
+        int i,j=0;
+
+        cpumax = sysconf(_SC_CPUID_MAX);
+
+        for(i = 0; i <= cpumax; i++ )
+        {
+            if(p_online(i, P_STATUS) != -1)
+            {
+                j++;
+            }
+        }
+        cpu_count=j;
+    }
 #endif
 
     cpu_count = MAX( 1, cpu_count );
@@ -194,7 +212,7 @@ void hb_get_tempory_filename( hb_handle_t * h, char name[1024],
 
     hb_get_tempory_directory( h, name );
     strcat( name, "/" );
-    
+
     va_start( args, fmt );
     vsnprintf( &name[strlen(name)], 1024 - strlen(name), fmt, args );
     va_end( args );
@@ -267,7 +285,7 @@ static void hb_thread_func( void * _t )
     t->function( t->arg );
 
     /* Inform that the thread can be joined now */
-    hb_log( "thread %d exited (\"%s\")", t->thread, t->name );
+    hb_log( "thread %x exited (\"%s\")", t->thread, t->name );
     hb_lock( t->lock );
     t->exited = 1;
     hb_unlock( t->lock );
@@ -312,7 +330,7 @@ hb_thread_t * hb_thread_init( char * name, void (* function)(void *),
 //        SetThreadPriority( GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL );
 #endif
 
-    hb_log( "thread %d started (\"%s\")", t->thread, t->name );
+    hb_log( "thread %x started (\"%s\")", t->thread, t->name );
     return t;
 }
 
@@ -329,21 +347,21 @@ void hb_thread_close( hb_thread_t ** _t )
 #if defined( SYS_BEOS )
     long exit_value;
     wait_for_thread( t->thread, &exit_value );
-    
+
 #elif USE_PTHREAD
     pthread_join( t->thread, NULL );
 
 //#elif defined( SYS_CYGWIN )
 //    WaitForSingleObject( t->thread, INFINITE );
 #endif
-    
-    hb_log( "thread %d joined (\"%s\")",
+
+    hb_log( "thread %x joined (\"%s\")",
             t->thread, t->name );
 
     hb_lock_close( &t->lock );
     free( t->name );
     free( t );
-    *_t = NULL; 
+    *_t = NULL;
 }
 
 /************************************************************************
@@ -573,7 +591,7 @@ hb_net_t * hb_net_open( char * address, int port )
         free( n );
         return NULL;
     }
-    
+
     return n;
 }