linux/arch/powerpc/include/asm/current.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2#ifndef _ASM_POWERPC_CURRENT_H
   3#define _ASM_POWERPC_CURRENT_H
   4#ifdef __KERNEL__
   5
   6/*
   7 */
   8
   9struct task_struct;
  10
  11#ifdef __powerpc64__
  12#include <linux/stddef.h>
  13#include <asm/paca.h>
  14
  15static inline struct task_struct *get_current(void)
  16{
  17        struct task_struct *task;
  18
  19        /* get_current can be cached by the compiler, so no volatile */
  20        asm ("ld %0,%1(13)"
  21        : "=r" (task)
  22        : "i" (offsetof(struct paca_struct, __current)));
  23
  24        return task;
  25}
  26#define current get_current()
  27
  28#else
  29
  30/*
  31 * We keep `current' in r2 for speed.
  32 */
  33register struct task_struct *current asm ("r2");
  34
  35#endif
  36
  37#endif /* __KERNEL__ */
  38#endif /* _ASM_POWERPC_CURRENT_H */
  39