- Fix a botch in the IPI bitmasks (they were right-shifted by 1), and

add an IPI which causes the target CPU to perform AST processing when
  it returns to userspace.
- Add a way to get/set a private pointer in the shared interrupt header.
This commit is contained in:
thorpej 1999-11-29 19:58:39 +00:00
parent 406791739c
commit df2cf70865
1 changed files with 13 additions and 7 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: intr.h,v 1.21 1999/08/10 18:53:03 thorpej Exp $ */
/* $NetBSD: intr.h,v 1.22 1999/11/29 19:58:39 thorpej Exp $ */
/*
* Copyright (c) 1997 Christopher G. Demetriou. All rights reserved.
@ -96,13 +96,14 @@ extern u_int64_t ssir;
/*
* Interprocessor interrupts. In order how we want them processed.
*/
#define ALPHA_IPI_HALT 0x0000000000000000UL
#define ALPHA_IPI_TBIA 0x0000000000000001UL
#define ALPHA_IPI_TBIAP 0x0000000000000002UL
#define ALPHA_IPI_SHOOTDOWN 0x0000000000000004UL
#define ALPHA_IPI_IMB 0x0000000000000008UL
#define ALPHA_IPI_HALT 0x0000000000000001UL
#define ALPHA_IPI_TBIA 0x0000000000000002UL
#define ALPHA_IPI_TBIAP 0x0000000000000004UL
#define ALPHA_IPI_SHOOTDOWN 0x0000000000000008UL
#define ALPHA_IPI_IMB 0x0000000000000010UL
#define ALPHA_IPI_AST 0x0000000000000020UL
#define ALPHA_NIPIS 5 /* must not exceed 64 */
#define ALPHA_NIPIS 6 /* must not exceed 64 */
typedef void (*ipifunc_t) __P((void));
extern ipifunc_t ipifuncs[ALPHA_NIPIS];
@ -126,6 +127,7 @@ struct alpha_shared_intrhand {
struct alpha_shared_intr {
TAILQ_HEAD(,alpha_shared_intrhand)
intr_q;
void *intr_private;
int intr_sharetype;
int intr_dfltsharetype;
int intr_nstrays;
@ -153,6 +155,10 @@ void alpha_shared_intr_set_maxstrays __P((struct alpha_shared_intr *,
unsigned int, int));
void alpha_shared_intr_stray __P((struct alpha_shared_intr *, unsigned int,
const char *));
void alpha_shared_intr_set_private __P((struct alpha_shared_intr *,
unsigned int, void *));
void *alpha_shared_intr_get_private __P((struct alpha_shared_intr *,
unsigned int));
#endif /* _KERNEL */
#endif /* ! _ALPHA_INTR_H_ */