Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
cpu_set_t: what's the equivalent for NetBSD?
Hi!
Can someone please tell me how the following code should be rewritten
for NetBSD?
I tried replacing cpu_set_t with cpuset_t, but then the size wasn't
known for cmask, and CPU_ZERO and CPU_SET don't exist.
The code is from sdlmame (wip/sdlmame).
//============================================================
// osd_thread_cpu_affinity
//============================================================
int osd_thread_cpu_affinity(osd_thread *thread, UINT32 mask)
{
#if !defined(NO_THREAD_COOPERATIVE) && !defined(NO_AFFINITY_NP)
cpu_set_t cmask;
pthread_t lthread;
int bitnum;
CPU_ZERO(&cmask);
for (bitnum=0; bitnum<32; bitnum++)
if (mask & (1<<bitnum))
CPU_SET(bitnum, &cmask);
if (thread == NULL)
lthread = pthread_self();
else
lthread = thread->thread;
if (pthread_setaffinity_np(lthread, sizeof(cmask), &cmask) <0)
{
/* Not available during link in all targets */
fprintf(stderr, "error %d setting cpu affinity to mask %08x",
errno, mask);
return FALSE;
}
else
return TRUE;
#else
return TRUE;
#endif
}
Thank you,
Thomas
Home |
Main Index |
Thread Index |
Old Index