Page MenuHomeFreeBSD

D35386.id106571.diff
No OneTemporary

D35386.id106571.diff

Index: sys/x86/include/intr_machdep.h
===================================================================
--- sys/x86/include/intr_machdep.h
+++ sys/x86/include/intr_machdep.h
@@ -143,12 +143,16 @@
int intr_add_handler(const char *name, int vector, driver_filter_t filter,
driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep,
int domain);
+int intr_add_handler_intsrc(const char *name, struct intsrc *isrc,
+ driver_filter_t filter, driver_intr_t handler, void *arg,
+ enum intr_type flags, void **cookiep, int domain);
#ifdef SMP
int intr_bind(u_int vector, u_char cpu);
#endif
int intr_config_intr(int vector, enum intr_trigger trig,
enum intr_polarity pol);
int intr_describe(u_int vector, void *ih, const char *descr);
+int intr_describe_intsrc(struct intsrc *isrc, void *ih, const char *descr);
void intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame);
u_int intr_next_cpu(int domain);
struct intsrc *intr_lookup_source(int vector);
Index: sys/x86/x86/intr_machdep.c
===================================================================
--- sys/x86/x86/intr_machdep.c
+++ sys/x86/x86/intr_machdep.c
@@ -277,11 +277,21 @@
int domain)
{
struct intsrc *isrc;
- int error;
isrc = intr_lookup_source(vector);
if (isrc == NULL)
return (EINVAL);
+ return (intr_add_handler_intsrc(name, isrc, filter, handler, arg,
+ flags, cookiep, domain));
+}
+
+int
+intr_add_handler_intsrc(const char *name, struct intsrc *isrc,
+ driver_filter_t filter, driver_intr_t handler, void *arg,
+ enum intr_type flags, void **cookiep, int domain)
+{
+ int error;
+
error = intr_event_add_handler(isrc->is_event, name, filter, handler,
arg, intr_priority(flags), flags, cookiep);
if (error == 0) {
@@ -541,11 +551,19 @@
intr_describe(u_int vector, void *ih, const char *descr)
{
struct intsrc *isrc;
- int error;
isrc = intr_lookup_source(vector);
if (isrc == NULL)
return (EINVAL);
+
+ return (intr_describe_intsrc(isrc, ih, descr));
+}
+
+int
+intr_describe_intsrc(struct intsrc *isrc, void *ih, const char *descr)
+{
+ int error;
+
error = intr_event_describe_handler(isrc->is_event, ih, descr);
if (error)
return (error);

File Metadata

Mime Type
text/plain
Expires
Mon, Jul 27, 1:05 PM (16 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35599054
Default Alt Text
D35386.id106571.diff (2 KB)

Event Timeline