- 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:
parent
406791739c
commit
df2cf70865
|
@ -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_ */
|
||||
|
|
Loading…
Reference in New Issue