30 |
#define SMP_MOTION_H |
#define SMP_MOTION_H |
31 |
|
|
32 |
#ifdef WIN32 |
#ifdef WIN32 |
33 |
|
|
34 |
#include <windows.h> |
#include <windows.h> |
35 |
#define pthread_t HANDLE |
#define pthread_t HANDLE |
36 |
#define pthread_create(t,u,f,d) *(t)=CreateThread(NULL,0,f,d,0,NULL) |
#define pthread_create(t,u,f,d) *(t)=CreateThread(NULL,0,f,d,0,NULL) |
37 |
#define pthread_join(t,s) { WaitForSingleObject(t,INFINITE); \ |
#define pthread_join(t,s) { WaitForSingleObject(t,INFINITE); \ |
38 |
CloseHandle(t); } |
CloseHandle(t); } |
39 |
#define sched_yield() Sleep(0) |
# define sched_yield() Sleep(0); |
40 |
#define HAVE_PTHREAD 1 |
static __inline int pthread_num_processors_np() |
41 |
|
{ |
42 |
|
DWORD p_aff, s_aff, r = 0; |
43 |
|
GetProcessAffinityMask(GetCurrentProcess(), (PDWORD_PTR) &p_aff, (PDWORD_PTR) &s_aff); |
44 |
|
for(; p_aff != 0; p_aff>>=1) r += p_aff&1; |
45 |
|
return r; |
46 |
|
} |
47 |
|
|
48 |
#elif defined(SYS_BEOS) |
#elif defined(SYS_BEOS) |
49 |
|
|
50 |
#include <kernel/OS.h> |
#include <kernel/OS.h> |
51 |
#define pthread_t thread_id |
#define pthread_t thread_id |
52 |
#define pthread_create(t,u,f,d) { *(t)=spawn_thread(f,"",10,d); \ |
#define pthread_create(t,u,f,d) { *(t)=spawn_thread(f,"",10,d); \ |
53 |
resume_thread(*(t)); } |
resume_thread(*(t)); } |
54 |
#define pthread_join(t,s) wait_for_thread(t,(long*)s) |
#define pthread_join(t,s) wait_for_thread(t,(long*)s) |
55 |
#define sched_yield() snooze(0) /* is this correct? */ |
#define sched_yield() snooze(0) /* is this correct? */ |
|
#define HAVE_PTHREAD 1 |
|
56 |
|
|
57 |
#elif HAVE_PTHREAD |
#else |
58 |
#include <pthread.h> |
#include <pthread.h> |
59 |
#endif |
#endif |
60 |
|
|
|
|
|
|
#define THREADS 3 |
|
|
|
|
61 |
typedef struct |
typedef struct |
62 |
{ |
{ |
63 |
pthread_t handle; /* thread's handle */ |
pthread_t handle; /* thread's handle */ |
85 |
|
|
86 |
int MVmax, mvSum, mvCount; /* out */ |
int MVmax, mvSum, mvCount; /* out */ |
87 |
|
|
88 |
uint32_t minfcode; |
int minfcode, minbcode; |
|
uint32_t minbcode; |
|
89 |
} SMPmotionData; |
} SMPmotionData; |
90 |
|
|
91 |
|
|