Coherent4.2.10/include/kernel/intr.h

/* (-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__) */