linux/arch/x86/vdso/vgetcpu.c
<<
>>
Prefs
   1/*
   2 * Copyright 2006 Andi Kleen, SUSE Labs.
   3 * Subject to the GNU Public License, v.2
   4 *
   5 * Fast user context implementation of getcpu()
   6 */
   7
   8#include <linux/kernel.h>
   9#include <linux/getcpu.h>
  10#include <linux/jiffies.h>
  11#include <linux/time.h>
  12#include <asm/vsyscall.h>
  13#include <asm/vgtod.h>
  14
  15notrace long
  16__vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused)
  17{
  18        unsigned int p;
  19
  20        p = __getcpu();
  21
  22        if (cpu)
  23                *cpu = p & VGETCPU_CPU_MASK;
  24        if (node)
  25                *node = p >> 12;
  26        return 0;
  27}
  28
  29long getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache)
  30        __attribute__((weak, alias("__vdso_getcpu")));
  31