blob: 7b78275e6d33d270608b1480e127614da7472bd3 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef __ASM_MACH_APICDEF_H
2#define __ASM_MACH_APICDEF_H
3
Siddha, Suresh B58d5fa72007-10-17 18:04:33 +02004#include <asm/apic.h>
5
Glauber de Oliveira Costaf6bc4022008-03-19 14:25:53 -03006#ifdef CONFIG_X86_64
7#define APIC_ID_MASK (0xFFu<<24)
8#define SET_APIC_ID(x) (((x)<<24))
9#else
Linus Torvalds1da177e2005-04-16 15:20:36 -070010#define APIC_ID_MASK (0xF<<24)
Glauber de Oliveira Costaf6bc4022008-03-19 14:25:53 -030011#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070012
13static inline unsigned get_apic_id(unsigned long x)
14{
Siddha, Suresh B58d5fa72007-10-17 18:04:33 +020015 unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR));
16 if (APIC_XAPIC(ver))
17 return (((x)>>24)&0xFF);
18 else
19 return (((x)>>24)&0xF);
Linus Torvalds1da177e2005-04-16 15:20:36 -070020}
21
22#define GET_APIC_ID(x) get_apic_id(x)
23
24#endif