cregit-Linux how code gets into the kernel

Release 4.8 arch/sh/kernel/reboot.c

Directory: arch/sh/kernel
#include <linux/pm.h>
#include <linux/kexec.h>
#include <linux/kernel.h>
#include <linux/reboot.h>
#include <linux/module.h>
#ifdef CONFIG_SUPERH32
#include <asm/watchdog.h>
#endif
#include <asm/addrspace.h>
#include <asm/reboot.h>
#include <asm/tlbflush.h>
#include <asm/traps.h>


void (*pm_power_off)(void);

EXPORT_SYMBOL(pm_power_off);

#ifdef CONFIG_SUPERH32

static void watchdog_trigger_immediate(void) { sh_wdt_write_cnt(0xFF); sh_wdt_write_csr(0xC2); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt18100.00%1100.00%
Total18100.00%1100.00%

#endif
static void native_machine_restart(char * __unused) { local_irq_disable(); /* Destroy all of the TLBs in preparation for reset by MMU */ __flush_tlb_global(); /* Address error with SR.BL=1 first. */ trigger_address_error(); #ifdef CONFIG_SUPERH32 /* If that fails or is unsupported, go for the watchdog next. */ watchdog_trigger_immediate(); #endif /* * Give up and sleep. */ while (1) cpu_sleep(); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt38100.00%2100.00%
Total38100.00%2100.00%


static void native_machine_shutdown(void) { smp_send_stop(); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt11100.00%1100.00%
Total11100.00%1100.00%


static void native_machine_power_off(void) { if (pm_power_off) pm_power_off(); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt15100.00%1100.00%
Total15100.00%1100.00%


static void native_machine_halt(void) { /* stop other cpus */ machine_shutdown(); /* stop this cpu */ stop_this_cpu(NULL); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt18100.00%1100.00%
Total18100.00%1100.00%

struct machine_ops machine_ops = { .power_off = native_machine_power_off, .shutdown = native_machine_shutdown, .restart = native_machine_restart, .halt = native_machine_halt, #ifdef CONFIG_KEXEC .crash_shutdown = native_machine_crash_shutdown, #endif };
void machine_power_off(void) { machine_ops.power_off(); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt12100.00%1100.00%
Total12100.00%1100.00%


void machine_shutdown(void) { machine_ops.shutdown(); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt12100.00%1100.00%
Total12100.00%1100.00%


void machine_restart(char *cmd) { machine_ops.restart(cmd); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt16100.00%1100.00%
Total16100.00%1100.00%


void machine_halt(void) { machine_ops.halt(); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt12100.00%1100.00%
Total12100.00%1100.00%

#ifdef CONFIG_KEXEC
void machine_crash_shutdown(struct pt_regs *regs) { machine_ops.crash_shutdown(regs); }

Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt17100.00%1100.00%
Total17100.00%1100.00%

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
paul mundtpaul mundt26399.25%266.67%
david howellsdavid howells20.75%133.33%
Total265100.00%3100.00%
Directory: arch/sh/kernel
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.