xref: /openbsd-src/sys/arch/luna88k/include/cpu.h (revision aa27b8383c6c017dceb2b54a1e12abd8964fa11f)
1*aa27b838Svisa /* $OpenBSD: cpu.h,v 1.10 2018/03/24 04:19:43 visa Exp $ */
23180e169Smiod /* public domain */
32fa72412Spirofti #ifndef	_MACHINE_CPU_H_
46670778bSaoyama #define	_MACHINE_CPU_H_
5d22fc21dSmiod 
6d17918f3Saoyama #include <m88k/asm_macro.h>
73180e169Smiod #include <m88k/cpu.h>
8d22fc21dSmiod 
9d22fc21dSmiod #ifdef _KERNEL
108adebe84Smiod 
118adebe84Smiod /*
128adebe84Smiod  * 88110 systems only have cpudep6..7 available so far.
138adebe84Smiod  * By the time Luna2001/2010 are supported, we can grow ci_cpudep to a
148adebe84Smiod  * couple more fields to unbreak this.
158adebe84Smiod  */
168adebe84Smiod #ifndef M88110
178adebe84Smiod #define	ci_curspl	ci_cpudep4
188adebe84Smiod #define	ci_swireg	ci_cpudep5
198adebe84Smiod #endif
208adebe84Smiod #define	ci_intr_mask	ci_cpudep6
218adebe84Smiod #define	ci_clock_ack	ci_cpudep7
228adebe84Smiod 
2332bca666Smiod void luna88k_ext_int(struct trapframe *eframe);
24d22fc21dSmiod #define	md_interrupt_func	luna88k_ext_int
25d17918f3Saoyama 
26d17918f3Saoyama static inline u_long
intr_disable(void)27d17918f3Saoyama intr_disable(void)
28d17918f3Saoyama {
29d17918f3Saoyama 	u_long psr;
30d17918f3Saoyama 
31d17918f3Saoyama 	psr = get_psr();
32d17918f3Saoyama 	set_psr(psr | PSR_IND);
33d17918f3Saoyama 	return psr;
34d17918f3Saoyama }
35d17918f3Saoyama 
36d17918f3Saoyama static inline void
intr_restore(u_long psr)37d17918f3Saoyama intr_restore(u_long psr)
38d17918f3Saoyama {
39*aa27b838Svisa 	set_psr(psr);
40d17918f3Saoyama }
41d17918f3Saoyama 
42d22fc21dSmiod #endif	/* _KERNEL */
43d22fc21dSmiod 
446670778bSaoyama #endif	/* _MACHINE_CPU_H_ */
45