Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/mips/dec/reset.c
10817 views
1
/*
2
* Reset a DECstation machine.
3
*
4
* Copyright (C) 199x the Anonymous
5
* Copyright (C) 2001, 2002, 2003 Maciej W. Rozycki
6
*/
7
#include <linux/interrupt.h>
8
#include <linux/linkage.h>
9
10
#include <asm/addrspace.h>
11
12
typedef void __noreturn (* noret_func_t)(void);
13
14
static inline void __noreturn back_to_prom(void)
15
{
16
noret_func_t func = (void *)CKSEG1ADDR(0x1fc00000);
17
18
func();
19
}
20
21
void __noreturn dec_machine_restart(char *command)
22
{
23
back_to_prom();
24
}
25
26
void __noreturn dec_machine_halt(void)
27
{
28
back_to_prom();
29
}
30
31
void __noreturn dec_machine_power_off(void)
32
{
33
/* DECstations don't have a software power switch */
34
back_to_prom();
35
}
36
37
irqreturn_t dec_intr_halt(int irq, void *dev_id)
38
{
39
dec_machine_halt();
40
}
41
42