188794Sjake/*- 288794Sjake * Copyright (c) 2001 Jake Burkholder. 388794Sjake * All rights reserved. 488794Sjake * 588794Sjake * Redistribution and use in source and binary forms, with or without 688794Sjake * modification, are permitted provided that the following conditions 788794Sjake * are met: 888794Sjake * 1. Redistributions of source code must retain the above copyright 988794Sjake * notice, this list of conditions and the following disclaimer. 1088794Sjake * 2. Redistributions in binary form must reproduce the above copyright 1188794Sjake * notice, this list of conditions and the following disclaimer in the 1288794Sjake * documentation and/or other materials provided with the distribution. 1388794Sjake * 1488794Sjake * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1588794Sjake * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1688794Sjake * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1788794Sjake * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1888794Sjake * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1988794Sjake * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2088794Sjake * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2188794Sjake * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2288794Sjake * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2388794Sjake * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2488794Sjake * SUCH DAMAGE. 2588794Sjake */ 2688794Sjake 2788794Sjake#include <sys/cdefs.h> 2888794Sjake__FBSDID("$FreeBSD: releng/10.3/lib/libc/sparc64/sys/__sparc_utrap_setup.c 263763 2014-03-26 07:31:57Z dim $"); 2988794Sjake 3088794Sjake#include <sys/types.h> 3188794Sjake 3288794Sjake#include <machine/utrap.h> 3388794Sjake#include <machine/sysarch.h> 3488794Sjake 3588794Sjake#include <stdlib.h> 3688794Sjake 3788794Sjake#include "__sparc_utrap_private.h" 3888794Sjake 3988794Sjakestatic const struct sparc_utrap_args ua[] = { 4088794Sjake { UT_FP_DISABLED, __sparc_utrap_fp_disabled, NULL, NULL, NULL }, 4188794Sjake { UT_FP_EXCEPTION_IEEE_754, __sparc_utrap_gen, NULL, NULL, NULL }, 4288794Sjake { UT_FP_EXCEPTION_OTHER, __sparc_utrap_gen, NULL, NULL, NULL }, 4395587Sjake { UT_ILLEGAL_INSTRUCTION, __sparc_utrap_gen, NULL, NULL, NULL }, 4488794Sjake { UT_MEM_ADDRESS_NOT_ALIGNED, __sparc_utrap_gen, NULL, NULL, NULL }, 4588794Sjake}; 4688794Sjake 4788794Sjakestatic const struct sparc_utrap_install_args uia[] = { 48124182Snectar { sizeof (ua) / sizeof (*ua), ua } 4988794Sjake}; 5088794Sjake 51122883Sjakevoid __sparc_utrap_setup(void) __attribute__((constructor)); 52122883Sjake 5388794Sjakevoid 5488794Sjake__sparc_utrap_setup(void) 5588794Sjake{ 5688794Sjake 57263763Sdim sysarch(SPARC_UTRAP_INSTALL, (void *)&uia); 5888794Sjake} 59