Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/powerpc/include/asm/current.h
15117 views
1
#ifndef _ASM_POWERPC_CURRENT_H
2
#define _ASM_POWERPC_CURRENT_H
3
#ifdef __KERNEL__
4
5
/*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version
9
* 2 of the License, or (at your option) any later version.
10
*/
11
12
struct task_struct;
13
14
#ifdef __powerpc64__
15
#include <linux/stddef.h>
16
#include <asm/paca.h>
17
18
static inline struct task_struct *get_current(void)
19
{
20
struct task_struct *task;
21
22
__asm__ __volatile__("ld %0,%1(13)"
23
: "=r" (task)
24
: "i" (offsetof(struct paca_struct, __current)));
25
26
return task;
27
}
28
#define current get_current()
29
30
#else
31
32
/*
33
* We keep `current' in r2 for speed.
34
*/
35
register struct task_struct *current asm ("r2");
36
37
#endif
38
39
#endif /* __KERNEL__ */
40
#endif /* _ASM_POWERPC_CURRENT_H */
41
42