kernel_isrthread(9r)kernel_isrthread(9r)NAMEkernel_isrthread - General: Starts a fixed priority kernel thread dedi‐
cated to interrupt service
SYNOPSIS
thread_t kernel_isrthread(
task_t task,
void (*start) (void),
int pri );
ARGUMENTS
Specifies a pointer to a task structure. This pointer identifies the
task in which the kernel_isrthread routine starts the newly created
kernel thread dedicated to interrupt service handling. Specifies a
pointer to an routine that is the entry point for the newly created
kernel thread. Specifies the scheduling priority level for the newly
created kernel thread. See the DESCRIPTION section for the priority
usage table that describes the possible scheduling priorities.
DESCRIPTION
The kernel_isrthread routine creates and starts a kernel thread at the
specified entry point. This kernel thread handles only interrupt ser‐
vice requests in the specified task and at the specified priority
level. A kernel module should always attach a kernel thread to the
``first task.''
The following priority usage table describes the possible scheduling
priorities. The first column shows a range of priorities. The second
column shows an associated scheduling priority constant defined in
<src/kernel/kern/sched.h> (if applicable). The third column describes
the usage of the priority ranges. To specify a scheduling priority of
38, you pass the constant BASEPRI_SYSTEM. To specify a scheduling pri‐
ority of 33, you can pass the following: BASEPRI_HIGHEST + 1.
─────────────────────────────────────────────────────────────
Priority Constant Usage
─────────────────────────────────────────────────────────────
0--31 N/A Realtime kernel threads
32--38 BASEPRI_HIGHEST -- Operating system kernel
BASEPRI_SYSTEM threads
44--64 BASEPRI_USER -- User kernel threads
BASEPRI_LOWEST
─────────────────────────────────────────────────────────────
RETURN VALUES
Upon successful completion, kernel_isrthread returns a pointer to the
thread structure associated with the kernel thread started at the spec‐
ified entry point. Kernel modules can use this pointer as a handle to a
specific kernel thread in calls to other kernel threads-related rou‐
tines.
SEE ALSO
Routines: kernel_thread_w_arg(9r)
Data Structures: task(9s), thread(9s)kernel_isrthread(9r)