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?


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;

        for (bitnum=0; bitnum<32; bitnum++)
                if (mask & (1<<bitnum))
                        CPU_SET(bitnum, &cmask);
        if (thread == NULL)
                lthread = pthread_self();
                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;
                return TRUE;
        return TRUE;

Thank you,

Home | Main Index | Thread Index | Old Index