Home | History | Annotate | Line # | Download | only in include
intr.h revision 1.14.20.1
      1  1.14.20.1       ad /*	$NetBSD: intr.h,v 1.14.20.1 2006/11/18 21:29:05 ad Exp $	*/
      2        1.1       is 
      3        1.7       is /*-
      4        1.8       is  * Copyright (c) 1997 The NetBSD Foundation, Inc.
      5        1.1       is  * All rights reserved.
      6        1.1       is  *
      7        1.7       is  * This code is derived from software contributed to The NetBSD Foundation
      8        1.7       is  * by Ignatios Souvatzis.
      9        1.7       is  *
     10        1.1       is  * Redistribution and use in source and binary forms, with or without
     11        1.1       is  * modification, are permitted provided that the following conditions
     12        1.1       is  * are met:
     13        1.1       is  * 1. Redistributions of source code must retain the above copyright
     14        1.1       is  *    notice, this list of conditions and the following disclaimer.
     15        1.1       is  * 2. Redistributions in binary form must reproduce the above copyright
     16        1.1       is  *    notice, this list of conditions and the following disclaimer in the
     17        1.1       is  *    documentation and/or other materials provided with the distribution.
     18        1.1       is  * 3. All advertising materials mentioning features or use of this software
     19        1.1       is  *    must display the following acknowledgement:
     20        1.7       is  *        This product includes software developed by the NetBSD
     21        1.7       is  *        Foundation, Inc. and its contributors.
     22        1.7       is  * 4. Neither the name of The NetBSD Foundation nor the names of its
     23        1.7       is  *    contributors may be used to endorse or promote products derived
     24        1.7       is  *    from this software without specific prior written permission.
     25        1.1       is  *
     26        1.7       is  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     27        1.7       is  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     28        1.7       is  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     29        1.7       is  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     30        1.7       is  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     31        1.7       is  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     32        1.7       is  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     33        1.7       is  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     34        1.7       is  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     35        1.7       is  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     36        1.7       is  * POSSIBILITY OF SUCH DAMAGE.
     37        1.1       is  */
     38        1.1       is 
     39        1.1       is /*
     40        1.1       is  * machine/intr.h for the Amiga port.
     41        1.1       is  * Currently, only a wrapper, for most of the stuff, around the old
     42        1.1       is  * include files.
     43        1.1       is  */
     44        1.1       is 
     45  1.14.20.1       ad #ifndef _AMIGA_INTR_H_
     46  1.14.20.1       ad #define _AMIGA_INTR_H_
     47        1.1       is 
     48        1.1       is #include <amiga/amiga/isr.h>
     49        1.1       is #include <amiga/include/mtpr.h>
     50       1.13      chs #include <m68k/psl.h>
     51        1.1       is 
     52       1.12       is #define IPL_SOFTCLOCK 1
     53        1.1       is #define IPL_SOFTSERIAL 1
     54        1.6       is #define IPL_SOFTNET 1
     55        1.9  aymeric 
     56        1.9  aymeric /* not used yet, should reflect psl.h */
     57        1.9  aymeric #define IPL_BIO		3
     58        1.9  aymeric #define IPL_NET		3
     59       1.10  aymeric #define IPL_SERIAL	4
     60        1.9  aymeric #define IPL_TTY		4
     61        1.9  aymeric 
     62        1.2       is 
     63        1.2       is #ifdef splaudio
     64        1.2       is #undef splaudio
     65        1.2       is #define splaudio spl6
     66        1.2       is #endif
     67        1.5       is 
     68        1.5       is #define spllpt()	spl6()
     69        1.1       is 
     70       1.13      chs #if !defined(_LKM)
     71       1.13      chs #include "opt_lev6_defer.h"
     72       1.13      chs #endif
     73       1.13      chs 
     74       1.13      chs #define	spl0()			_spl0()	/* we have real software interrupts */
     75       1.13      chs 
     76       1.13      chs #define splnone()		spl0()
     77       1.13      chs #define	spllowersoftclock()	spl1()
     78       1.13      chs 
     79       1.13      chs #define splsoftclock()		splraise1()
     80       1.13      chs #define splsoftnet()		splraise1()
     81       1.13      chs #define splbio()		splraise3()
     82       1.13      chs #define splnet()		splraise3()
     83       1.13      chs 
     84       1.13      chs /*
     85       1.13      chs  * splserial hack, idea by Jason Thorpe.
     86       1.13      chs  * drivers which need it (at the present only the coms) raise the variable to
     87       1.13      chs  * their serial interrupt level.
     88       1.13      chs  *
     89       1.13      chs  * serialspl is statically initialized in machdep.c at the moment; should
     90       1.13      chs  * be some driver independent file.
     91       1.13      chs  */
     92       1.13      chs 
     93       1.13      chs extern uint16_t		amiga_serialspl;
     94       1.13      chs 
     95       1.13      chs #define splserial()	_splraise(amiga_serialspl)
     96       1.13      chs #define spltty()	splraise4()
     97       1.13      chs #define	splvm()		splraise4()
     98       1.13      chs 
     99       1.13      chs #ifndef _LKM
    100       1.13      chs 
    101       1.13      chs #ifndef LEV6_DEFER
    102       1.13      chs #define splclock()	splraise6()
    103       1.13      chs #define splstatclock()	splraise6()
    104       1.13      chs #define splhigh()	spl7()
    105       1.13      chs #define splsched()	spl7()
    106       1.13      chs #define spllock()	spl7()
    107       1.13      chs #else
    108       1.13      chs #define splclock()	splraise4()
    109       1.13      chs #define splstatclock()	splraise4()
    110       1.13      chs #define splhigh()	splraise4()
    111       1.13      chs #define splsched()	splraise4()
    112       1.13      chs #define spllock()	splraise4()
    113       1.13      chs #endif
    114       1.13      chs 
    115       1.13      chs #else	/* _LKM */
    116       1.13      chs 
    117       1.13      chs extern int _spllkm6(void);
    118       1.13      chs extern int _spllkm7(void);
    119       1.13      chs 
    120       1.13      chs #define splclock()	_spllkm6()
    121       1.13      chs #define splstatclock()	_spllkm6()
    122       1.13      chs #define spllock()	_spllkm7()
    123       1.13      chs #define splhigh()	_spllkm7()
    124       1.13      chs #define splsched()	_spllkm7()
    125       1.13      chs 
    126       1.13      chs #endif /* _LKM */
    127       1.13      chs 
    128       1.13      chs #define splx(s)		_spl(s)
    129       1.13      chs 
    130  1.14.20.1       ad #endif	/* !_AMIGA_INTR_H_ */
    131