zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

undefined.h (3007B) - Raw


      1 /*	$NetBSD: undefined.h,v 1.4 2001/12/20 01:20:23 thorpej Exp $	*/
      2 
      3 /*-
      4  * SPDX-License-Identifier: BSD-4-Clause
      5  *
      6  * Copyright (c) 1995-1996 Mark Brinicombe.
      7  * Copyright (c) 1995 Brini.
      8  * All rights reserved.
      9  *
     10  * This code is derived from software written for Brini by Mark Brinicombe
     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 Brini.
     23  * 4. The name of the company nor the name of the author may be used to
     24  *    endorse or promote products derived from this software without specific
     25  *    prior written permission.
     26  *
     27  * THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR IMPLIED
     28  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     29  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     30  * IN NO EVENT SHALL BRINI OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
     31  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     32  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     33  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     34  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     35  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     36  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     37  * SUCH DAMAGE.
     38  *
     39  * RiscBSD kernel project
     40  *
     41  * undefined.h
     42  *
     43  * Undefined instruction types, symbols and prototypes
     44  *
     45  * Created      : 08/02/95
     46  */
     47 
     48 #ifndef _MACHINE_UNDEFINED_H_
     49 #define _MACHINE_UNDEFINED_H_
     50 #ifdef _KERNEL
     51 
     52 #include <sys/queue.h>
     53 
     54 struct trapframe;
     55 
     56 typedef int (*undef_handler_t) (unsigned int, unsigned int, struct trapframe *, int);
     57 
     58 #define FP_COPROC	1
     59 #define FP_COPROC2	2
     60 #define MAX_COPROCS	16
     61 
     62 /* Prototypes for undefined.c */
     63 
     64 void *install_coproc_handler (int, undef_handler_t);
     65 void remove_coproc_handler (void *);
     66 void undefined_init (void);
     67 
     68 /*
     69  * XXX Stuff below here is for use before malloc() is available.  Most code
     70  * shouldn't use it.
     71  */
     72 
     73 struct undefined_handler {
     74 	LIST_ENTRY(undefined_handler) uh_link;
     75 	undef_handler_t uh_handler;
     76 };
     77 
     78 /*
     79  * Handlers installed using install_coproc_handler_static shouldn't be
     80  * removed.
     81  */
     82 void install_coproc_handler_static (int, struct undefined_handler *);
     83 
     84 /* Calls up to undefined.c from trap handlers */
     85 void undefinedinstruction(struct trapframe *);
     86 
     87 #endif
     88 
     89 /* End of undefined.h */
     90 
     91 #endif /* _MACHINE_UNDEFINED_H_ */