text: /* (-lgl
   *	Coherent 386 release 4.2
   *	Copyright (c) 1982, 1993 by Mark Williams Company.
   *	All rights reserved. May not be copied without permission.
   *	For copying permission and licensing info, write licensing@mwc.com
   -lgl) */
  
  #ifndef	__KERNEL_INTR_H__
  #define	__KERNEL_INTR_H__
  
  /*
   * Some definitions relating to setting up interrupt vectors in Coherent 4.2
   *
   * The assembly-language code that handles the incoming interrupt deals with
   * saving the CPU context and then pulls some information out of the following
   * table for manipulating the PIC context and for passing information to the
   * C-language interrupt handler.
   *
   * A similar structure is defined in the kernel assembly-language library
   * code; keep that in synch with this, or else...
   */
  
  #include <common/ccompat.h>
  #include <common/_intmask.h>
  
  typedef	struct __interrupt_control	__int_control_t;
  
  typedef	void	     (*	__int_func_t)	__PROTO ((int _arg,
  						  __int_control_t * _info));
  
  struct __interrupt_control {
  	intmask_t	_int_mask;	/* masking information */
  	__int_func_t	_int_func;	/* handler to call */
  	int		_int_arg;	/* argument for handler */
  	int		_int_count;	/* entry count */
  	__VOID__      *	_int_stat;	/* reserved for statistics */
  
  	unsigned long	__reserved [3];	/* reserved */
  };
  
  #define	__DECLARE_INT(mask, func, arg) { (mask), (func), (arg) }
  
  #endif	/* ! defined (__KERNEL_INTR_H__) */
  
  