intr_event(9): document intr_event_handle()
Reviewed by: pauamma MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D36934
This commit is contained in:
parent
19c03f4ab0
commit
334fc46f05
@ -1322,6 +1322,7 @@ MLINKS+=insmntque.9 insmntque1.9
|
|||||||
MLINKS+=intr_event.9 intr_event_add_handler.9 \
|
MLINKS+=intr_event.9 intr_event_add_handler.9 \
|
||||||
intr_event.9 intr_event_create.9 \
|
intr_event.9 intr_event_create.9 \
|
||||||
intr_event.9 intr_event_destroy.9 \
|
intr_event.9 intr_event_destroy.9 \
|
||||||
|
intr_event.9 intr_event_handle.9 \
|
||||||
intr_event.9 intr_event_remove_handler.9 \
|
intr_event.9 intr_event_remove_handler.9 \
|
||||||
intr_event.9 intr_priority.9
|
intr_event.9 intr_priority.9
|
||||||
MLINKS+=kernacc.9 useracc.9
|
MLINKS+=kernacc.9 useracc.9
|
||||||
|
@ -29,13 +29,14 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD$
|
.\" $FreeBSD$
|
||||||
.\"
|
.\"
|
||||||
.Dd October 15, 2022
|
.Dd October 30, 2022
|
||||||
.Dt INTR_EVENT 9
|
.Dt INTR_EVENT 9
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm intr_event_add_handler ,
|
.Nm intr_event_add_handler ,
|
||||||
.Nm intr_event_create ,
|
.Nm intr_event_create ,
|
||||||
.Nm intr_event_destroy ,
|
.Nm intr_event_destroy ,
|
||||||
|
.Nm intr_event handle ,
|
||||||
.Nm intr_event_remove_handler ,
|
.Nm intr_event_remove_handler ,
|
||||||
.Nm intr_priority
|
.Nm intr_priority
|
||||||
.Nd "kernel interrupt handler and thread API"
|
.Nd "kernel interrupt handler and thread API"
|
||||||
@ -70,6 +71,8 @@
|
|||||||
.Ft int
|
.Ft int
|
||||||
.Fn intr_event_destroy "struct intr_event *ie"
|
.Fn intr_event_destroy "struct intr_event *ie"
|
||||||
.Ft int
|
.Ft int
|
||||||
|
.Fn intr_event_handle "struct intr_event *ie" "struct trapframe *frame"
|
||||||
|
.Ft int
|
||||||
.Fn intr_event_remove_handler "void *cookie"
|
.Fn intr_event_remove_handler "void *cookie"
|
||||||
.Ft u_char
|
.Ft u_char
|
||||||
.Fn intr_priority "enum intr_type flags"
|
.Fn intr_priority "enum intr_type flags"
|
||||||
@ -242,6 +245,23 @@ then it will be assigned a cookie that can be used later to remove this
|
|||||||
handler.
|
handler.
|
||||||
.Pp
|
.Pp
|
||||||
The
|
The
|
||||||
|
.Fn intr_event_handle
|
||||||
|
function is the main entry point into the interrupt handling code.
|
||||||
|
It must be called from an interrupt context.
|
||||||
|
The function will execute all filter handlers associated with the interrupt
|
||||||
|
event
|
||||||
|
.Fa ie ,
|
||||||
|
and schedule the associated interrupt thread to run, if applicable.
|
||||||
|
The
|
||||||
|
.Fa frame
|
||||||
|
argument is used to pass a pointer to the
|
||||||
|
.Vt struct trapframe
|
||||||
|
containing the machine state at the time of the interrupt.
|
||||||
|
The main body of this function runs within a
|
||||||
|
.Xr critical 9
|
||||||
|
section.
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
.Fn intr_event_remove_handler
|
.Fn intr_event_remove_handler
|
||||||
function removes an interrupt handler from the interrupt event specified by
|
function removes an interrupt handler from the interrupt event specified by
|
||||||
.Fa ie .
|
.Fa ie .
|
||||||
@ -313,6 +333,7 @@ The
|
|||||||
.Fn intr_event_add_handler ,
|
.Fn intr_event_add_handler ,
|
||||||
.Fn intr_event_create ,
|
.Fn intr_event_create ,
|
||||||
.Fn intr_event_destroy ,
|
.Fn intr_event_destroy ,
|
||||||
|
.Fn intr_event_handle ,
|
||||||
and
|
and
|
||||||
.Fn intr_event_remove_handler
|
.Fn intr_event_remove_handler
|
||||||
functions return zero on success and non-zero on failure.
|
functions return zero on success and non-zero on failure.
|
||||||
@ -416,6 +437,23 @@ has at least one handler which has not been removed with
|
|||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
The
|
The
|
||||||
|
.Fn intr_event_handle
|
||||||
|
function will fail if:
|
||||||
|
.Bl -tag -width Er
|
||||||
|
.It Bq Er EINVAL
|
||||||
|
The
|
||||||
|
.Fa ie
|
||||||
|
argument is
|
||||||
|
.Dv NULL .
|
||||||
|
.It Bq Er EINVAL
|
||||||
|
There are no interrupt handlers assigned to
|
||||||
|
.Fa ie .
|
||||||
|
.It Bq Er EINVAL
|
||||||
|
The interrupt was not acknowledged by any filter and has no associated thread
|
||||||
|
handler.
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
The
|
||||||
.Fn intr_event_remove_handler
|
.Fn intr_event_remove_handler
|
||||||
function will fail if:
|
function will fail if:
|
||||||
.Bl -tag -width Er
|
.Bl -tag -width Er
|
||||||
@ -426,6 +464,7 @@ argument is
|
|||||||
.Dv NULL .
|
.Dv NULL .
|
||||||
.El
|
.El
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
|
.Xr critical 9 ,
|
||||||
.Xr kthread 9 ,
|
.Xr kthread 9 ,
|
||||||
.Xr locking 9 ,
|
.Xr locking 9 ,
|
||||||
.Xr malloc 9 ,
|
.Xr malloc 9 ,
|
||||||
|
Loading…
Reference in New Issue
Block a user