cregit-Linux how code gets into the kernel

Release 4.16 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%

extern int set_thread_uses_vas(void); extern int set_thread_tidr(struct task_struct *t); extern void clear_thread_tidr(struct task_struct *t); #endif /* _ASM_POWERPC_SWITCH_TO_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Anton Blanchard15832.24%735.00%
David Howells10922.24%15.00%
Michael Ellerman9018.37%210.00%
Cyril Bur6112.45%315.00%
Kevin Hao357.14%210.00%
Sukadev Bhattiprolu275.51%210.00%
Bharat Bhushan51.02%15.00%
Leonidas Da Silva Barbosa40.82%15.00%
Greg Kroah-Hartman10.20%15.00%
Total490100.00%20100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.