1d603c8e1SIngo Molnar /* 2d603c8e1SIngo Molnar * Copyright 2006 Andi Kleen, SUSE Labs. 3d603c8e1SIngo Molnar * Subject to the GNU Public License, v.2 4d603c8e1SIngo Molnar * 5d603c8e1SIngo Molnar * Fast user context implementation of getcpu() 6d603c8e1SIngo Molnar */ 7d603c8e1SIngo Molnar 8d603c8e1SIngo Molnar #include <linux/kernel.h> 9d603c8e1SIngo Molnar #include <linux/getcpu.h> 10d603c8e1SIngo Molnar #include <linux/time.h> 11d603c8e1SIngo Molnar #include <asm/vgtod.h> 12d603c8e1SIngo Molnar 13d603c8e1SIngo Molnar notrace long 14d603c8e1SIngo Molnar __vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused) 15d603c8e1SIngo Molnar { 1622245bdfSIngo Molnar vdso_read_cpunode(cpu, node); 17d603c8e1SIngo Molnar return 0; 18d603c8e1SIngo Molnar } 19d603c8e1SIngo Molnar 20d603c8e1SIngo Molnar long getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache) 21d603c8e1SIngo Molnar __attribute__((weak, alias("__vdso_getcpu"))); 22