Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0766440 authored by Christoph Lameter's avatar Christoph Lameter Committed by Thomas Gleixner
Browse files

x86: unify current.h



Simply stitch these together. There are just two definitions that are shared
but the file is resonably small and putting these things together shows that
further unifications requires a unification of the per cpu / pda handling
between both arches.

Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent bfe4bb15
Loading
Loading
Loading
Loading
+38 −4
Original line number Diff line number Diff line
#ifndef _X86_CURRENT_H
#define _X86_CURRENT_H

#ifdef CONFIG_X86_32
# include "current_32.h"
#else
# include "current_64.h"
#endif
#include <linux/compiler.h>
#include <asm/percpu.h>

struct task_struct;

DECLARE_PER_CPU(struct task_struct *, current_task);
static __always_inline struct task_struct *get_current(void)
{
	return x86_read_percpu(current_task);
}

#else /* X86_32 */

#ifndef __ASSEMBLY__
#include <asm/pda.h>

struct task_struct;

static __always_inline struct task_struct *get_current(void)
{
	return read_pda(pcurrent);
}

#else /* __ASSEMBLY__ */

#include <asm/asm-offsets.h>
#define GET_CURRENT(reg) movq %gs:(pda_pcurrent),reg

#endif /* __ASSEMBLY__ */

#endif /* X86_32 */

#define current get_current()

#endif /* X86_CURRENT_H */

include/asm-x86/current_32.h

deleted100644 → 0
+0 −17
Original line number Diff line number Diff line
#ifndef _I386_CURRENT_H
#define _I386_CURRENT_H

#include <linux/compiler.h>
#include <asm/percpu.h>

struct task_struct;

DECLARE_PER_CPU(struct task_struct *, current_task);
static __always_inline struct task_struct *get_current(void)
{
	return x86_read_percpu(current_task);
}

#define current get_current()

#endif /* !(_I386_CURRENT_H) */

include/asm-x86/current_64.h

deleted100644 → 0
+0 −27
Original line number Diff line number Diff line
#ifndef _X86_64_CURRENT_H
#define _X86_64_CURRENT_H

#if !defined(__ASSEMBLY__)
struct task_struct;

#include <asm/pda.h>

static inline struct task_struct *get_current(void)
{
	struct task_struct *t = read_pda(pcurrent);
	return t;
}

#define current get_current()

#else

#ifndef ASM_OFFSET_H
#include <asm/asm-offsets.h>
#endif

#define GET_CURRENT(reg) movq %gs:(pda_pcurrent),reg

#endif

#endif /* !(_X86_64_CURRENT_H) */