RTMpCpuId-generic.cpp revision 5e91fc5e5ea9cccb7a40636f73253d489fbe340b
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync/* $Id$ */
247efe202344328bffb8de7e47aee60039cd95e0vboxsync/** @file
247efe202344328bffb8de7e47aee60039cd95e0vboxsync * innotek Portable Runtime - Multiprocessor, Generic RTMpCpuId.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync */
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync/*
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * Copyright (C) 2008 innotek GmbH
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync *
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * available from http://www.virtualbox.org. This file is free software;
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * you can redistribute it and/or modify it under the terms of the GNU
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * General Public License (GPL) as published by the Free Software
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync *
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * The contents of this file may alternatively be used under the terms
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * of the Common Development and Distribution License Version 1.0
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * VirtualBox OSE distribution, in which case the provisions of the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * CDDL are applicable instead of those of the GPL.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync *
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * You may elect to license modified versions of this file under the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync * terms and conditions of either the GPL or the CDDL or both.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync */
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
6095269a3237b1ef8bf4edefc11f2d888d8a41ebvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync/*******************************************************************************
685409983863f02e8295369273d1844dca1f51c5vboxsync* Header Files *
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync*******************************************************************************/
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#include <iprt/mp.h>
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#include <iprt/asm.h>
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncRTDECL(RTCPUID) RTMpCpuId(void)
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync{
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#if defined(RT_ARCH_X86) || defined(RT_ARCH_AMD64)
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync return ASMGetApicId();
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#else
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync# error "Not ported to this architecture."
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync return NIL_RTAPICID;
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#endif
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync}
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync