__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