Blame view

kernel/linux-rt-4.4.41/arch/mips/dec/reset.c 713 Bytes
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  /*
   * Reset a DECstation machine.
   *
   * Copyright (C) 199x  the Anonymous
   * Copyright (C) 2001, 2002, 2003  Maciej W. Rozycki
   */
  #include <linux/interrupt.h>
  #include <linux/linkage.h>
  
  #include <asm/addrspace.h>
  
  typedef void __noreturn (* noret_func_t)(void);
  
  static inline void __noreturn back_to_prom(void)
  {
  	noret_func_t func = (void *)CKSEG1ADDR(0x1fc00000);
  
  	func();
  }
  
  void __noreturn dec_machine_restart(char *command)
  {
  	back_to_prom();
  }
  
  void __noreturn dec_machine_halt(void)
  {
  	back_to_prom();
  }
  
  void __noreturn dec_machine_power_off(void)
  {
      /* DECstations don't have a software power switch */
  	back_to_prom();
  }
  
  irqreturn_t dec_intr_halt(int irq, void *dev_id)
  {
  	dec_machine_halt();
  }