Ejemplo n.º 1
0
RTDECL(PRTCPUSET) RTMpGetOnlineSet(PRTCPUSET pSet)
{
    union
    {
        uint64_t u64;
        MPAFFINITY mpaff;
    } u;

    int rc = DosQueryThreadAffinity(AFNTY_SYSTEM, &u.mpaff);
    if (rc)
        u.u64 = 1;
    return RTCpuSetFromU64(pSet, u.u64);
}
RTR3DECL(int) RTThreadGetAffinity(PRTCPUSET pCpuSet)
{
    union
    {
        uint64_t u64;
        MPAFFINITY mpaff;
    } u;

    APIRET rc = DosQueryThreadAffinity(AFNTY_THREAD, &u.mpaff);
    if (!rc)
    {
        RTCpuSetFromU64(pCpuSet, u.u64);
        return VINF_SUCCESS;
    }
    return RTErrConvertFromOS2(rc);
}