linux/arch/x86/entry/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/time.h>
  11#include <asm/vgtod.h>
  12
  13notrace long
  14__vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused)
  15{
  16        unsigned int p;
  17
  18        p = __getcpu();
  19
  20        if (cpu)
  21                *cpu = p & VGETCPU_CPU_MASK;
  22        if (node)
  23                *node = p >> 12;
  24        return 0;
  25}
  26
  27long getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache)
  28        __attribute__((weak, alias("__vdso_getcpu")));
  29