summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2003-11-17 06:08:10 +0000
committerpeter <peter@FreeBSD.org>2003-11-17 06:08:10 +0000
commit38ebd79a92378dac00a8e0c47929a4b05dafe8c4 (patch)
treeb207e3997cb5f553a4f230ff216cf3043d19cce7
parent69f4b4a52058d1df6cd90f7309848b41087e74b0 (diff)
downloadFreeBSD-src-38ebd79a92378dac00a8e0c47929a4b05dafe8c4.zip
FreeBSD-src-38ebd79a92378dac00a8e0c47929a4b05dafe8c4.tar.gz
Expand the argument to the ithread enable/disable helper hooks from an
int to something big enough to hold a pointer. amd64 needs this.
-rw-r--r--sys/kern/kern_intr.c6
-rw-r--r--sys/sys/interrupt.h12
2 files changed, 9 insertions, 9 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index 0e05df8..e42cd10 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -58,7 +58,7 @@ __FBSDID("$FreeBSD$");
struct int_entropy {
struct proc *proc;
- int vector;
+ uintptr_t vector;
};
void *vm_ih;
@@ -169,8 +169,8 @@ ithread_update(struct ithd *ithd)
}
int
-ithread_create(struct ithd **ithread, int vector, int flags,
- void (*disable)(int), void (*enable)(int), const char *fmt, ...)
+ithread_create(struct ithd **ithread, uintptr_t vector, int flags,
+ void (*disable)(uintptr_t), void (*enable)(uintptr_t), const char *fmt, ...)
{
struct ithd *ithd;
struct thread *td;
diff --git a/sys/sys/interrupt.h b/sys/sys/interrupt.h
index cdf829d..63e9bac 100644
--- a/sys/sys/interrupt.h
+++ b/sys/sys/interrupt.h
@@ -67,12 +67,12 @@ struct ithd {
LIST_ENTRY(ithd) it_list; /* All interrupt threads. */
TAILQ_HEAD(, intrhand) it_handlers; /* Interrupt handlers. */
struct ithd *it_interrupted; /* Who we interrupted. */
- void (*it_disable)(int); /* Enable interrupt source. */
- void (*it_enable)(int); /* Disable interrupt source. */
+ void (*it_disable)(uintptr_t); /* Enable interrupt source. */
+ void (*it_enable)(uintptr_t); /* Disable interrupt source. */
void *it_md; /* Hook for MD interrupt code. */
int it_flags; /* Interrupt-specific flags. */
int it_need; /* Needs service. */
- int it_vector;
+ uintptr_t it_vector;
char it_name[MAXCOMLEN + 1];
};
@@ -114,9 +114,9 @@ extern char intrnames[]; /* string table containing device names */
#ifdef DDB
void db_dump_ithread(struct ithd *ithd, int handlers);
#endif
-int ithread_create(struct ithd **ithread, int vector, int flags,
- void (*disable)(int), void (*enable)(int), const char *fmt, ...)
- __printflike(6, 7);
+int ithread_create(struct ithd **ithread, uintptr_t vector, int flags,
+ void (*disable)(uintptr_t), void (*enable)(uintptr_t),
+ const char *fmt, ...) __printflike(6, 7);
int ithread_destroy(struct ithd *ithread);
u_char ithread_priority(enum intr_type flags);
int ithread_add_handler(struct ithd *ithread, const char *name,
OpenPOWER on IntegriCloud