The parenthesized number on an index entry indicates the location of the entry within the book. Entries before the first numbered section in a chapter are identified as Sec. n.0.
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
A
alignment (Sec. 6.1.2)
Alpha CPU
accessing CSR addresses (Sec. 6.5.2)
alignment (Sec. 6.1.2)
granularity of data access (Sec. 6.1.3)
hardware-level synchronization (Sec. 6.1)
application
converting kernel timestamps to a string (Sec. 5.4.4)
assert_wait_mesg routine (Sec. 9.4.1)
atomicity (Sec. 6.1.1)
attribute
operations allowed on (Sec. 3.2.2)
attribute data types (Sec. 3.2.1)
attribute table (Sec. 3.0)
attribute table (Sec. 3.1)
creating (Sec. 1.2.1)
entry (Sec. 3.1)
entry (Sec. 3.2)
get request (Sec. 3.3)
operation field (Sec. 3.2.2)
set request (Sec. 3.4)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
B
bcopy routine (Sec. 5.2)
bcopy routine (Sec. 5.2.1)
explanation of code fragment (Sec. 5.2.1)
results of example calls (Sec. 5.2.1)
blocking conditions
using complex locks (Sec. 6.3.2)
blocking lock (Sec. 6.3.2)
boot path
See boot timeline
boot timeline (Sec. 4.1)
dispatch point (Sec. 4.3)
understanding (Sec. 4.1)
buf data structure (Sec. 6.5.4)
BUF_LOCK routine (Sec. 6.5.4)
BUF_UNLOCK routine (Sec. 6.5.4)
building a kernel module (Sec. 10.0)
busy wait time (Sec. 6.4.4)
byte string
copying bcopy routine (Sec. 5.2.1)
bzero routine
explanation of code fragment (Sec. 5.2.2)
b_resid field
use as argument with copyin routine (Sec. 5.2.3)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
C
callback (Sec. 1.2.1)
coding (Sec. 4.4.1)
coding (Sec. 4.4.2)
deregistering (Sec. 4.4.3)
dispatch point (Sec. 4.0)
nesting (Sec. 4.4.3)
using (Sec. 4.2)
writing (Sec. 4.4.1.2)
calling process
putting to sleep (Sec. 5.3.2)
cfg_attr_t routine (Sec. 3.1)
CFG_OP_CONFIGURE (Sec. 2.1.2)
CFG_OP_CONFIGURE (Sec. 2.2.1)
CFG_OP_QUERY (Sec. 2.1.2)
CFG_OP_RECONFIGURE (Sec. 2.1.2)
CFG_OP_UNCONFIGURE (Sec. 2.1.2)
CFG_OP_UNCONFIGURE (Sec. 2.2.2)
cfg_subsys_attr_t routine (Sec. 3.2)
code block
choosing lock method by size of (Sec. 6.4.5)
identifying those that manipulate resource (Sec. 6.5.5)
complex lock (Sec. 6.3.2)
complex lock (Sec. 8.0)
access operations (Sec. 8.3)
asserting (Sec. 8.3.1)
read-only access (Sec. 8.3.1.1)
write access (Sec. 8.3.1.2)
choosing when to use (Sec. 6.4)
declaring data structure (Sec. 8.1)
execution speed (Sec. 6.4.4)
initializing (Sec. 8.2)
releasing previously asserted (Sec. 8.3.2)
terminating (Sec. 8.4)
trying to assert (Sec. 8.3.3)
read-only access (Sec. 8.3.3.1)
write access (Sec. 8.3.3.2)
complex lock data structure (Sec. 6.4)
declaring (Sec. 8.1)
initializing (Sec. 8.2)
complex lock routine (Sec. 6.4)
complex lock routine (Sec. 8.0)
configuration point
See dispatch point
configure routine (Sec. 2.1)
configure routine (Sec. 2.1.2)
configure routine (Sec. 2.2)
configure routine (Sec. 3.2.2)
configure routine (Sec. 3.3)
configure routine (Sec. 4.2)
parameters (Sec. 2.1.1)
console
printing text to (Sec. 5.3.1)
control status register
See CSR
controller data structure (Sec. 6.5.4)
convenience wrapper
for thread_create and thread_start routines (Sec. 9.3.1)
copyin routine
explanation of code fragment (Sec. 5.2.3)
results of example call (Sec. 5.2.3)
copyout routine
explanation of code fragment (Sec. 5.2.4)
results of example call (Sec. 5.2.4)
cpu global variable (Sec. 6.5.4)
CSR
access methods (Sec. 6.5.2)
CSR I/O access routines
read_io_port (Sec. 6.5.2)
write_io_port (Sec. 6.5.2)
ctime function (Sec. 5.4.4)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
D
data
granularity (Sec. 6.1.3)
integrity (Sec. 6.2)
natural alignment (Sec. 6.1.2)
data copying routines (Sec. 5.2)
data structure
allocating memory (Sec. 2.2.1.3)
buf (Sec. 6.5.4)
controller (Sec. 6.5.4)
ihandler_t (Sec. 6.5.4)
kernel thread (Sec. 9.2)
module-specific (Sec. 6.5.3)
simple lock (Sec. 7.1)
task (Sec. 9.2)
thread (Sec. 9.1.1)
used by kernel thread routines (Sec. 9.2)
data type
attribute (Sec. 3.2.1)
deadlock
and kernel threads (Sec. 9.1.2)
decl_simple_lock_data routine (Sec. 7.1)
DECthreads software (Sec. 9.1)
DELAY macro
explanation of code fragment (Sec. 5.4.5)
deregistering callbacks (Sec. 4.4.3)
device register offset definitions
locking (Sec. 6.5.5)
direct method
accessing CSR addresses (Sec. 6.5.2)
dispatch point (Sec. 1.1.3)
along boot timeline (Sec. 4.3)
callback (Sec. 4.0)
CFG_PT_ENTER_SUSER (Sec. 4.3)
CFG_PT_GLROOTFS_AVAIL (Sec. 4.3)
CFG_PT_HAL_INIT (Sec. 4.3)
CFG_PT_LOCK_AVAIL (Sec. 4.2)
CFG_PT_LOCK_AVAIL (Sec. 4.3)
CFG_PT_OLD_CONF_ALL (Sec. 4.3)
CFG_PT_POSTCONFIG (Sec. 4.3)
CFG_PT_PRECONFIG (Sec. 4.3)
CFG_PT_ROOTFS_WR (Sec. 4.2)
CFG_PT_TOPOLOGY_CONF (Sec. 4.3)
CFG_PT_VM_AVAIL (Sec. 2.2.1.3)
CFG_PT_VM_AVAIL (Sec. 4.1)
CFG_PT_VM_AVAIL (Sec. 4.2)
CFG_PT_VM_AVAIL (Sec. 4.3)
defining in a kernel module (Sec. 4.4.4)
definitions (Sec. 4.3)
developer-defined (Sec. 4.4.4)
dispatch point callback (Sec. 4.0)
dynamic kernel module (Sec. 2.2.1.1)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
E
error logger
printing text to (Sec. 5.3.1)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
G
global resource
module-specific (Sec. 6.5.3)
system-specific (Sec. 6.5.4)
global variable
cpu (Sec. 6.5.4)
hz (Sec. 6.5.4)
lbolt (Sec. 6.5.4)
module-specific (Sec. 6.5.3)
system-specific (Sec. 6.5.4)
granularity (Sec. 6.1.2)
of data access (Sec. 6.1.3)
of lock (Sec. 6.5.5)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
H
hardware issues (Sec. 6.1)
hz global variable (Sec. 6.5.4)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
I
I/O copy routines (Sec. 6.5.2)
io_copyin (Sec. 6.5.2)
io_copyio (Sec. 6.5.2)
io_copyout (Sec. 6.5.2)
ihandler_t data structure (Sec. 6.5.4)
indata parameter (Sec. 2.1.1)
indatalen parameter (Sec. 2.1.1)
indirect method
accessing CSR addresses (Sec. 6.5.2)
initialization (Sec. 1.2.1)
initialization (Sec. 2.0)
kernel module (Sec. 2.2)
initializing a timer queue element (Sec. 5.3.4)
interrupt priority level
See IPL
interrupt priority mask
setting (Sec. 5.3.6)
interrupt service routine
using simple lock to synchronize with (Sec. 6.3.1)
IPL (Sec. 5.3.6)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
K
kernel address space
copying from with copyout routine (Sec. 5.2.4)
kernel mode capabilities (Sec. 5.0)
kernel module (Sec. 1.0)
kernel module (Sec. 1.1)
attributes (Sec. 3.0)
attributes (Sec. 3.1)
building and testing (Sec. 10.0)
choosing resources to lock (Sec. 6.5)
defining new dispatch point (Sec. 4.4.4)
designing (Sec. 1.1.3)
developing (Sec. 1.2)
dynamically loaded (Sec. 2.2.1.1)
environment (Sec. 1.1.2)
initializing (Sec. 1.2.1)
initializing (Sec. 2.0)
initializing (Sec. 2.2)
introduction (Sec. 1.0)
kernel mode capabilities (Sec. 5.0)
loading into the kernel image (Sec. 10.2.1)
making safe in SMP environment
using complex locks (Sec. 8.0)
using simple locks (Sec. 7.0)
multithreaded programming (Sec. 9.0)
producing a single binary module (Sec. 10.1)
purpose of (Sec. 1.1.1)
required tasks for writing (Sec. 1.2.1)
statically loaded (Sec. 2.2.1.1)
testing (Sec. 10.8)
unconfiguring (Sec. 10.3)
unloading (Sec. 10.3)
working with time (Sec. 5.4.1.1)
kernel thread (Sec. 6.2)
advantages of using (Sec. 9.1)
blocking (Sec. 9.4)
asserting current is about to block (Sec. 9.4.1)
mpsleep routine (Sec. 9.4.2)
creating and starting (Sec. 9.3)
at a specified entry point (Sec. 9.3.1)
fixed-priority dedicated to interrupt service (Sec. 9.3.2)
distinguishing between threads applications use (Sec. 9.1)
execution (Sec. 9.1.1)
issues related to using (Sec. 9.1.2)
operations (Sec. 9.1.3)
setting a timer for current (Sec. 9.7)
states (Sec. 9.1.1)
summary of routine operations (Sec. 9.1.3)
terminating (Sec. 9.6)
unblocking (Sec. 9.5)
using (Sec. 5.5)
kernel thread routine
See also kernel thread
data structures (Sec. 9.2)
task (Sec. 9.2)
thread (Sec. 9.2)
operations (Sec. 9.0)
kernel thread sleep
prevention of access to resource (Sec. 6.4.2)
kernel_isrthread routine (Sec. 9.3.2)
kernel_thread_w_arg routine (Sec. 9.3.1)
as convenience wrapper (Sec. 9.3.1)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
L
lbolt global variable (Sec. 6.5.4)
libcfg.a library (Sec. 3.3)
libcfg.a library (Sec. 3.4)
lock (Sec. 6.2)
lock (Sec. 6.2)
complex (Sec. 6.3.2)
complex (Sec. 8.0)
simple (Sec. 6.3.1)
simple (Sec. 7.0)
locking (Sec. 5.6)
access to a resource (Sec. 6.4.1)
choosing method (Sec. 6.4)
choosing resources (Sec. 6.5)
kernel module resources for (Sec. 6.5.5)
length of time held (Sec. 6.4.3)
SMP characteristics (Sec. 6.4.6)
locking device register offset definitions (Sec. 6.5.5)
locking methods
choosing (Sec. 6.4)
comparing simple and complex locks (Sec. 6.3)
complex lock (Sec. 6.0)
simple lock (Sec. 6.0)
summary of (Sec. 6.4.6)
lock_done routine (Sec. 8.3.2)
lock_init routine (Sec. 8.2)
lock_read routine (Sec. 8.3.1.1)
lock_terminate routine (Sec. 8.4)
lock_try_read routine (Sec. 8.3.3.1)
lock_try_write routine (Sec. 8.3.3.2)
lock_write routine (Sec. 8.3.1.2)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
M
memory
allocating (Sec. 2.2.1.3)
allocating (Sec. 5.3.7)
zeroing with bzero routine (Sec. 5.2.2)
memory block
zeroing a (Sec. 5.2.2)
memory space
used by locks (Sec. 6.4.4)
modifying a timestamp (Sec. 5.4.3)
module attribute table
See attribute table
module framework (Sec. 3.2.2)
module initialization (Sec. 2.0)
mpsleep routine (Sec. 5.3.2)
mpsleep routine (Sec. 9.4.2)
multithreaded programming (Sec. 9.0)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
N
nesting callbacks (Sec. 4.4.3)
null-terminated character string (Sec. 5.1.3)
comparing with strcmp routine (Sec. 5.1.1)
copying with strcpy routine (Sec. 5.1.3)
copying with strncpy routine (Sec. 5.1.4)
returning with strlen routine (Sec. 5.1.5)
null-terminated string routine (Sec. 5.1.1)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
O
op parameter (Sec. 2.1.1)
outdata parameter (Sec. 2.1.1)
outdatalen parameter (Sec. 2.1.1)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
P
parameters
for configure routine (Sec. 2.1.1)
printf routine (Sec. 5.3.1)
explanation of code fragment (Sec. 5.3.1)
printing text to the console (Sec. 5.3.1)
priority inversion
and kernel threads (Sec. 9.1.2)
process
waking up a sleeping (Sec. 5.3.3)
producing a single binary module (Sec. 10.1)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
R
race condition
and kernel threads (Sec. 9.1.2)
realtime preemption (Sec. 6.4.4)
register_callback routine (Sec. 4.4.1)
register_callback routine (Sec. 4.4.1.1)
parameters (Sec. 4.4.1.1)
request code (Sec. 2.1.2)
CFG_OP_CONFIGURE (Sec. 2.1.2)
CFG_OP_CONFIGURE (Sec. 2.2.1)
CFG_OP_CONFIGURE (Sec. 2.2.1.2)
CFG_OP_CONFIGURE (Sec. 3.2.2)
CFG_OP_QUERY (Sec. 2.1.2)
CFG_OP_QUERY (Sec. 3.2.2)
CFG_OP_QUERY (Sec. 3.3)
CFG_OP_RECONFIGURE (Sec. 2.1.2)
CFG_OP_RECONFIGURE (Sec. 3.2.2)
CFG_OP_RECONFIGURE (Sec. 3.4)
CFG_OP_UNCONFIGURE (Sec. 2.1.2)
CFG_OP_UNCONFIGURE (Sec. 2.2.2)
resource (Sec. 6.2)
asserting exclusive access on (Sec. 7.3)
choosing to lock in a module (Sec. 6.5)
determining which to lock (Sec. 6.5.5)
global (Sec. 6.5.3)
module-specific (Sec. 6.5.3)
system-specific (Sec. 6.5.4)
locking (Sec. 6.3)
read-only (Sec. 6.5.1)
return status values (Sec. 2.1.3)
routine (Sec. 9.0)
assert_wait_mesg (Sec. 9.4.1)
associated with complex locks (Sec. 6.3.2)
BUF_LOCK (Sec. 6.5.4)
BUF_UNLOCK (Sec. 6.5.4)
callback (Sec. 4.4.1.2)
commonly used by kernel modules (Sec. 5.0)
complex lock (Sec. 8.0)
CSR I/O access (Sec. 6.5.2)
data copying (Sec. 5.2)
decl_simple_lock_data (Sec. 7.1)
delaying a calling (Sec. 5.4.5)
I/O copy (Sec. 6.5.2)
kernel thread
summary of operations (Sec. 9.1.3)
kernel-related (Sec. 5.3)
kernel_isrthread (Sec. 9.3.2)
kernel_thread_w_arg (Sec. 9.3.1)
lock_done (Sec. 8.3.2)
lock_init (Sec. 8.2)
lock_read (Sec. 8.3.1.1)
lock_terminate (Sec. 8.4)
lock_try_read (Sec. 8.3.3.1)
lock_try_write (Sec. 8.3.3.2)
lock_write (Sec. 8.3.1.2)
mpsleep (Sec. 5.3.2)
mpsleep (Sec. 9.4.2)
register_callback (Sec. 4.4.1)
register_callback (Sec. 4.4.1.1)
simple_lock (Sec. 7.3)
simple_lock_init (Sec. 7.2)
simple_lock_terminate (Sec. 7.6)
simple_lock_try (Sec. 7.5)
simple_unlock (Sec. 7.4)
spltty (Sec. 7.7)
splx (Sec. 7.7)
string (Sec. 5.1)
thread_block (Sec. 9.4.1)
thread_create (Sec. 9.3.1)
thread_halt_self (Sec. 9.6)
thread_set_timeout (Sec. 9.7)
thread_start (Sec. 9.3.1)
thread_terminate (Sec. 9.6)
thread_wakeup (Sec. 9.5)
thread_wakeup_one (Sec. 9.5)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
S
serialization (Sec. 6.1.1)
shared data
access to (Sec. 6.1.3)
simple lock (Sec. 6.3.1)
simple lock (Sec. 7.0)
asserting exclusive access on resource (Sec. 7.3)
choosing when to use (Sec. 6.4)
declaring data structure (Sec. 7.1)
execution speed (Sec. 6.4.4)
initializing (Sec. 7.2)
releasing previously asserted (Sec. 7.4)
terminating (Sec. 7.6)
trying to obtain (Sec. 7.5)
using spl routines (Sec. 7.7)
simple lock data structure (Sec. 6.3.1)
declaring (Sec. 7.1)
decl_simple_lock_data
simple_lock_data_t (Sec. 7.1)
initializing (Sec. 7.2)
reason for declaring (Sec. 7.1)
simple lock routines (Sec. 6.3.1)
simple lock routines (Sec. 7.0)
simple_lock routine (Sec. 7.3)
simple_lock_init routine (Sec. 7.2)
simple_lock_terminate routine (Sec. 7.6)
simple_lock_try routine (Sec. 7.5)
simple_unlock routine (Sec. 7.4)
single binary image (Sec. 4.2)
sleeping lock
See blocking lock
SMP environment (Sec. 6.0)
characteristics of (Sec. 6.4.6)
locking (Sec. 5.6)
locking (Sec. 6.2)
locking (Sec. 6.4)
making kernel module safe
using complex locks (Sec. 8.0)
using simple locks (Sec. 7.0)
putting a calling process to sleep (Sec. 5.3.2)
sleep call (Sec. 9.4.2)
software synchronization (Sec. 6.1.1)
spin lock
See simple lock
spl routines
splbio routine (Sec. 5.3.6)
splclock routines (Sec. 5.3.6)
spldevhigh routine (Sec. 5.3.6)
splextreme routine (Sec. 5.3.6)
splhigh routine (Sec. 5.3.6)
splimp routine (Sec. 5.3.6)
splnet routine (Sec. 5.3.6)
splnone routine (Sec. 5.3.6)
splrt routine (Sec. 5.3.6)
splsoftclock routine (Sec. 5.3.6)
spltty routine (Sec. 7.7)
splvm routine (Sec. 5.3.6)
splx routine (Sec. 5.3.6)
splx routine (Sec. 7.7)
summarized list of (Sec. 5.3.6)
uses for (Sec. 5.3.6)
using (Sec. 7.7)
splbio routine
explanation of code fragment (Sec. 5.3.6)
spltty routine (Sec. 7.7)
splx routine (Sec. 7.7)
explanation of code fragment (Sec. 5.3.6)
static kernel module (Sec. 2.2.1.1)
status
return values (Sec. 2.1.3)
strcmp routine (Sec. 5.1.1)
explanation of code fragment (Sec. 5.1.1)
results of example calls (Sec. 5.1.1)
strcpy routine (Sec. 5.1.3)
explanation of code fragment (Sec. 5.1.3)
results of example call (Sec. 5.1.3)
string operation
comparing null-terminated character string using strcmp routine (Sec. 5.1.1)
comparing two strings using strmcmp routine (Sec. 5.1.2)
copying null-terminated character string using strcpy routine (Sec. 5.1.3)
copying null-terminated character string using strncpy routine (Sec. 5.1.4)
returning number of characters using strlen routine (Sec. 5.1.5)
string routine (Sec. 5.1.5)
returning the number of characters using strlen
comparing two null-terminated (Sec. 5.1.1)
comparing two strings (Sec. 5.1.2)
copying a null-terminated character (Sec. 5.1.3)
copying with specified limit (Sec. 5.1.4)
using (Sec. 5.1)
strlen routine (Sec. 5.1.5)
explanation of code fragment (Sec. 5.1.5)
results of example call (Sec. 5.1.5)
strncmp routine (Sec. 5.1.2)
explanation of code fragment (Sec. 5.1.2)
results of example calls (Sec. 5.1.2)
strncpy routine (Sec. 5.1.4)
explanation of code fragment (Sec. 5.1.4)
results of example call (Sec. 5.1.4)
structure
See data structure
symmetric multiprocessing environment
See SMP environment
synchronization (Sec. 6.1)
hardware issues related to (Sec. 6.1)
sysconfigtab file fragment
creating (Sec. 10.6)
system time
concepts (Sec. 5.4.1)
creating (Sec. 5.4.1.2)
fetching (Sec. 5.4.2)
how a kernel module uses (Sec. 5.4.1.1)
working with (Sec. 5.4)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
T
task data structure (Sec. 9.2)
testing a kernel module (Sec. 10.0)
thread
See kernel thread
thread data structure (Sec. 9.1.1)
thread data structure (Sec. 9.2)
thread_block routine (Sec. 9.4.1)
thread_create routine (Sec. 9.3.1)
thread_halt_self routine (Sec. 9.6)
thread_set_timeout routine (Sec. 9.7)
thread_start routine (Sec. 9.3.1)
thread_terminate routine (Sec. 9.6)
thread_wakeup routine (Sec. 9.5)
thread_wakeup_one routine (Sec. 9.5)
time
See system time
timeout routine (Sec. 5.3.4)
explanation of code fragment (Sec. 5.3.4)
timer queue
removing scheduled routine from (Sec. 5.3.5)
timer queue element
initializing (Sec. 5.3.4)
timestamp
converting to a string (Sec. 5.4.4)
modifying (Sec. 5.4.3)
TIME_READ macro (Sec. 5.4.2)
TIME_READ macro (Sec. 5.4.3)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
U
uiomove routine
explanation of code fragment (Sec. 5.2.5)
untimeout routine (Sec. 5.3.5)
explanation of code fragment (Sec. 5.3.5)
user address space
copying from, with copyin routine (Sec. 5.2.3)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
V
virtual space
moving data between user and system with uiomove routine (Sec. 5.2.5)
/vmunix (Sec. 2.2.1.1)
/vmunix (Sec. 4.2)
Click letter for quick access: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
W
wakeup routine (Sec. 5.3.3)
explanation of code fragment (Sec. 5.3.3)