xref: /netbsd-src/sys/arch/alpha/include/alpha.h (revision 17dd36da8292193180754d5047c0926dbb56818c)
1 /* $NetBSD: alpha.h,v 1.14 2000/12/13 03:16:38 mycroft Exp $ */
2 
3 /*
4  * Copyright (c) 1988 University of Utah.
5  * Copyright (c) 1982, 1990, 1993
6  *	The Regents of the University of California.  All rights reserved.
7  *
8  * This code is derived from software contributed to Berkeley by
9  * the Systems Programming Group of the University of Utah Computer
10  * Science Department.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  * 1. Redistributions of source code must retain the above copyright
16  *    notice, this list of conditions and the following disclaimer.
17  * 2. Redistributions in binary form must reproduce the above copyright
18  *    notice, this list of conditions and the following disclaimer in the
19  *    documentation and/or other materials provided with the distribution.
20  * 3. All advertising materials mentioning features or use of this software
21  *    must display the following acknowledgement:
22  *	This product includes software developed by the University of
23  *	California, Berkeley and its contributors.
24  * 4. Neither the name of the University nor the names of its contributors
25  *    may be used to endorse or promote products derived from this software
26  *    without specific prior written permission.
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
29  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
32  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
36  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
37  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38  * SUCH DAMAGE.
39  *
40  * from: Utah $Hdr: cpu.h 1.16 91/03/25$
41  *
42  *	@(#)cpu.h	8.4 (Berkeley) 1/5/94
43  */
44 
45 #ifndef _ALPHA_H_
46 #define _ALPHA_H_
47 #ifdef _KERNEL
48 
49 #include <machine/bus.h>
50 
51 struct pcb;
52 struct proc;
53 struct reg;
54 struct rpb;
55 struct trapframe;
56 
57 extern int bootdev_debug;
58 
59 void	XentArith(u_int64_t, u_int64_t, u_int64_t);		/* MAGIC */
60 void	XentIF(u_int64_t, u_int64_t, u_int64_t);		/* MAGIC */
61 void	XentInt(u_int64_t, u_int64_t, u_int64_t);		/* MAGIC */
62 void	XentMM(u_int64_t, u_int64_t, u_int64_t);		/* MAGIC */
63 void	XentRestart(void);					/* MAGIC */
64 void	XentSys(u_int64_t, u_int64_t, u_int64_t);		/* MAGIC */
65 void	XentUna(u_int64_t, u_int64_t, u_int64_t);		/* MAGIC */
66 void	alpha_init(u_long, u_long, u_long, u_long, u_long);
67 int	alpha_pa_access(u_long);
68 void	ast(struct trapframe *);
69 int	badaddr(void *, size_t);
70 int	badaddr_read(void *, size_t, void *);
71 void	child_return(void *);
72 u_int64_t console_restart(struct trapframe *);
73 void	do_sir(void);
74 void	dumpconf(void);
75 void	exception_return(void);					/* MAGIC */
76 void	frametoreg(struct trapframe *, struct reg *);
77 long	fswintrberr(void);					/* MAGIC */
78 void	init_bootstrap_console(void);
79 void	init_prom_interface(struct rpb *);
80 void	interrupt(unsigned long, unsigned long, unsigned long,
81 	    struct trapframe *);
82 void	machine_check(unsigned long, struct trapframe *, unsigned long,
83 	    unsigned long);
84 u_int64_t hwrpb_checksum(void);
85 void	hwrpb_restart_setup(void);
86 void	regdump(struct trapframe *);
87 void	regtoframe(struct reg *, struct trapframe *);
88 void	savectx(struct pcb *);
89 void    switch_exit(struct proc *);				/* MAGIC */
90 void	proc_trampoline(void);					/* MAGIC */
91 void	trap(unsigned long, unsigned long, unsigned long, unsigned long,
92 	    struct trapframe *);
93 void	trap_init(void);
94 void	enable_nsio_ide(bus_space_tag_t);
95 char *	dot_conv(unsigned long);
96 
97 void	fpusave_cpu(struct cpu_info *, int);
98 void	fpusave_proc(struct proc *, int);
99 
100 /* Multiprocessor glue; cpu.c */
101 struct cpu_info;
102 int	cpu_iccb_send(long, const char *);
103 void	cpu_iccb_receive(void);
104 void	cpu_hatch(struct cpu_info *);
105 void	cpu_halt(void) __attribute__((__noreturn__));
106 void	cpu_spinup_trampoline(void);				/* MAGIC */
107 void	cpu_pause(unsigned long);
108 void	cpu_resume(unsigned long);
109 #if defined(DDB)
110 void	cpu_debug_dump(void);
111 #endif
112 
113 #endif /* _KERNEL */
114 #endif /* _ALPHA_H_ */
115