cregit-Linux how code gets into the kernel

Release 4.14 arch/powerpc/include/asm/switch_to.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 1999 Cort Dougan <cort@cs.nmt.edu>
 */
#ifndef _ASM_POWERPC_SWITCH_TO_H

#define _ASM_POWERPC_SWITCH_TO_H

#include <asm/reg.h>

struct thread_struct;
struct task_struct;
struct pt_regs;

extern struct task_struct *__switch_to(struct task_struct *,
	struct task_struct *);

#define switch_to(prev, next, last)	((last) = __switch_to((prev), (next)))

extern struct task_struct *_switch(struct thread_struct *prev,
				   struct thread_struct *next);

extern void switch_booke_debug_regs(struct debug_reg *new_debug);

extern int emulate_altivec(struct pt_regs *);

extern void flush_all_to_thread(struct task_struct *);
extern void giveup_all(struct task_struct *);

#ifdef CONFIG_PPC_FPU
extern void enable_kernel_fp(void);
extern void flush_fp_to_thread(struct task_struct *);
extern void giveup_fpu(struct task_struct *);
extern void save_fpu(struct task_struct *);

static inline void disable_kernel_fp(void) { msr_check_and_clear(MSR_FP); }

Contributors

PersonTokensPropCommitsCommitProp
Anton Blanchard14100.00%1100.00%
Total14100.00%1100.00%

#else
static inline void __giveup_fpu(struct task_struct *t) { }

Contributors

PersonTokensPropCommitsCommitProp
Cyril Bur11100.00%1100.00%
Total11100.00%1100.00%


static inline void save_fpu(struct task_struct *t) { }

Contributors

PersonTokensPropCommitsCommitProp
Cyril Bur11100.00%1100.00%
Total11100.00%1100.00%


static inline void flush_fp_to_thread(struct task_struct *t) { }

Contributors

PersonTokensPropCommitsCommitProp
Kevin Hao11100.00%1100.00%
Total11100.00%1100.00%

#endif #ifdef CONFIG_ALTIVEC extern void enable_kernel_altivec(void); extern void flush_altivec_to_thread(struct task_struct *); extern void giveup_altivec(struct task_struct *); extern void save_altivec(struct task_struct *);
static inline void disable_kernel_altivec(void) { msr_check_and_clear(MSR_VEC); }

Contributors

PersonTokensPropCommitsCommitProp
Anton Blanchard14100.00%1100.00%
Total14100.00%1100.00%

#else
static inline void save_altivec(struct task_struct *t) { }

Contributors

PersonTokensPropCommitsCommitProp
Cyril Bur11100.00%1100.00%
Total11100.00%1100.00%


static inline void __giveup_altivec(struct task_struct *t) { }

Contributors

PersonTokensPropCommitsCommitProp
Cyril Bur11100.00%1100.00%
Total11100.00%1100.00%

#endif #ifdef CONFIG_VSX extern void enable_kernel_vsx(void); extern void flush_vsx_to_thread(struct task_struct *);
static inline void disable_kernel_vsx(void) { msr_check_and_clear(MSR_FP|MSR_VEC|MSR_VSX); }

Contributors

PersonTokensPropCommitsCommitProp
Anton Blanchard18100.00%1100.00%
Total18100.00%1100.00%

#endif #ifdef CONFIG_SPE extern void enable_kernel_spe(void); extern void flush_spe_to_thread(struct task_struct *); extern void giveup_spe(struct task_struct *); extern void __giveup_spe(struct task_struct *);
static inline void disable_kernel_spe(void) { msr_check_and_clear(MSR_SPE); }

Contributors

PersonTokensPropCommitsCommitProp
Anton Blanchard14100.00%1100.00%
Total14100.00%1100.00%

#else
static inline void __giveup_spe(struct task_struct *t) { }

Contributors

PersonTokensPropCommitsCommitProp
Cyril Bur11100.00%1100.00%
Total11100.00%1100.00%

#endif
static inline void clear_task_ebb(struct task_struct *t) { #ifdef CONFIG_PPC_BOOK3S_64 /* EBB perf events are not inherited, so clear all EBB state. */ t->thread.ebbrr = 0; t->thread.ebbhr = 0; t->thread.bescr = 0; t->thread.mmcr2 = 0; t->thread.mmcr0 = 0; t->thread.siar = 0; t->thread.sdar = 0; t->thread.sier = 0; t->thread.used_ebb = 0; #endif }

Contributors

PersonTokensPropCommitsCommitProp
Michael Ellerman90100.00%2100.00%
Total90100.00%2100.00%

#endif /* _ASM_POWERPC_SWITCH_TO_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Anton Blanchard15834.13%531.25%
David Howells11023.76%16.25%
Michael Ellerman9019.44%212.50%
Cyril Bur6113.17%318.75%
Kevin Hao357.56%212.50%
Bharat Bhushan51.08%16.25%
Leonidas Da Silva Barbosa30.65%16.25%
Greg Kroah-Hartman10.22%16.25%
Total463100.00%16100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.