__sparc_utrap_setup.c revision 91174
1227569Sphilip/*-
2284555Sarybchik * Copyright (c) 2001 Jake Burkholder.
3227569Sphilip * All rights reserved.
4227569Sphilip *
5227569Sphilip * Redistribution and use in source and binary forms, with or without
6227569Sphilip * modification, are permitted provided that the following conditions
7227569Sphilip * are met:
8227569Sphilip * 1. Redistributions of source code must retain the above copyright
9284555Sarybchik *    notice, this list of conditions and the following disclaimer.
10227569Sphilip * 2. Redistributions in binary form must reproduce the above copyright
11284555Sarybchik *    notice, this list of conditions and the following disclaimer in the
12284555Sarybchik *    documentation and/or other materials provided with the distribution.
13284555Sarybchik *
14284555Sarybchik * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15284555Sarybchik * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16284555Sarybchik * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17284555Sarybchik * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18284555Sarybchik * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19284555Sarybchik * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20284555Sarybchik * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21284555Sarybchik * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22284555Sarybchik * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23284555Sarybchik * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24284555Sarybchik * SUCH DAMAGE.
25284555Sarybchik */
26284555Sarybchik
27284555Sarybchik#include <sys/cdefs.h>
28284555Sarybchik__FBSDID("$FreeBSD: head/lib/libc/sparc64/sys/__sparc_utrap_setup.c 91174 2002-02-23 21:37:18Z tmm $");
29284555Sarybchik
30284555Sarybchik#include <sys/types.h>
31284555Sarybchik
32227569Sphilip#include <machine/utrap.h>
33227569Sphilip#include <machine/sysarch.h>
34227569Sphilip
35227569Sphilip#include <stdlib.h>
36227569Sphilip
37227569Sphilip#include "__sparc_utrap_private.h"
38227569Sphilip
39227569Sphilipstatic const struct sparc_utrap_args ua[] = {
40227569Sphilip	{ UT_FP_DISABLED, __sparc_utrap_fp_disabled, NULL, NULL, NULL },
41227569Sphilip	{ UT_FP_EXCEPTION_IEEE_754, __sparc_utrap_gen, NULL, NULL, NULL },
42227569Sphilip	{ UT_FP_EXCEPTION_OTHER, __sparc_utrap_gen, NULL, NULL, NULL },
43227569Sphilip#if 0
44284555Sarybchik	{ UT_ILLEGAL_INSTRUCTION, __sparc_utrap_gen, NULL, NULL, NULL },
45227569Sphilip	{ UT_MEM_ADDRESS_NOT_ALIGNED, __sparc_utrap_gen, NULL, NULL, NULL },
46227569Sphilip#endif
47227569Sphilip	{ UT_TRAP_INSTRUCTION_16, __sparc_utrap_gen, NULL, NULL, NULL },
48227569Sphilip};
49227569Sphilip
50227569Sphilipstatic const struct sparc_utrap_install_args uia[] = {
51227569Sphilip	sizeof (ua) / sizeof (*ua), ua
52293946Sarybchik};
53293946Sarybchik
54293946Sarybchikvoid
55293946Sarybchik__sparc_utrap_setup(void)
56227569Sphilip{
57227569Sphilip
58227569Sphilip	sysarch(SPARC_UTRAP_INSTALL, &uia);
59227569Sphilip}
60227569Sphilip