Click letter for quick access:
aligned
alignment
allocating data structures
asserting a complex write lock
asserting a read-only complex lock
asserting an exclusive lock
asserting that the current kernel thread is about to block
assert_wait_mesg kernel interface
atomicity
awakening kernel thread
Click letter for quick access:
block size
bus configuration interfaces
busy wait time
Click letter for quick access:
close interface
complex lock structure
complex lock
configuration models
Click letter for quick access:
data structures
deadlock
declaring complex lock structure
declaring simple lock structure
decl_simple_lock_data kernel interface
DEVGETGEOM ioctl command
DEVGETINFO ioctl command
device driver development
device driver
device name
device special files
device-specific structure
DIOCGCURPT ioctl command
DIOCGDEFPT ioctl command
DIOCGDINFO ioctl command
DIOCGPART ioctl command
DIOCSDINFO ioctl command
DIOCWDINFO ioctl command
DIOCWLABEL ioctl command
disk label
driver interfaces
dump interface
Click letter for quick access:
funnel
Click letter for quick access:
gathering information about host system and device
geometry
get_def_partitionmap kernel interface
global variables
granularity of data access
Click letter for quick access:
hardware issues related to synchronization
header files
Click letter for quick access:
identifying device interrupt handler registration method
information gathering about host system and device
interrupt handlers
ioctl interface
ioctl macros and commands
Click letter for quick access:
kernel support interfaces
kernel thread
kernel threads
kernel_isrthread kernel interface
kernel_thread_w_arg kernel interface
Click letter for quick access:
layout
lock structure
locking considerations
locking
lock_data_t data type
lock_done kernel interface
lock_init kernel interface
lock_read kernel interface
lock_terminate kernel interface
lock_try_read kernel interface
lock_try_write kernel interface
lock_write kernel interface
logical block number
Click letter for quick access:
MAKEDEV script
minor number
minphys interface
mpsleep kernel interface
Click letter for quick access:
open interface
Click letter for quick access:
partition
performing access operations on complex lock
priority inversion
Click letter for quick access:
race condition
read interface
readdisklabel
read_label subroutine
releasing a complex write lock
releasing an exclusive lock
resource
Click letter for quick access:
setting a timer on kernel thread
simple lock
simple_lock kernel interface
simple_lock_init kernel interface
simple_lock_terminate kernel interface
simple_lock_try kernel interface
simple_unlock kernel interface
size interface
SMP
software synchronization
spin lock
spltty kernel interface
splx kernel interface
starting a fixed priority kernel thread
starting kernel thread
strategy interface
structure
symmetric multiprocessing
synchronization
Click letter for quick access:
terminating a kernel thread
thread
thread_block kernel interface
thread_set_timeout kernel interface
trying to assert a read-only complex lock
trying to assert a write complex lock
trying to assert an exclusive lock
Click letter for quick access:
unblocking kernel thread
using the symmetric multiprocessor sleep interface
Click letter for quick access:
waking up kernel thread
write interfaceIndex
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
ZA
defined
defined
implementation on Alpha CPU hardware platforms
placement of data item in memory
review of techniques
by calling lock_write
by calling lock_read
by calling simple_lock
by calling assert_wait_mesg kernel interface
explanation of code fragment
explanation of code fragment
defined
type of serialization
See unblocking kernel thread
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
ZB
conversion
summary descriptions
defined
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
ZC
disk device driver
declared in code fragment
asserting a read-only complex lock with lock_read
asserting a write complex lock with lock_write
declaring complex lock structure with lock_data_t
defined
description of
initializing a complex lock with lock_init
kernel interfaces and data structures associated with
performing access operations on
releasing previously asserted complex lock with lock_done
terminating a complex lock with lock_terminate
trying to assert with lock_try_read
trying to assert with lock_try_write
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
ZD
allocation techniques for
defined
issue to consider when using kernel threads
explanation of code fragment
declaring simple lock structure
explanation of code fragment
disk device driver
disk device driver
choosing a locking method
deciding the resources to lock in a device driver
understanding atomicity
understanding the locking methods
understanding the need for locking in an SMP environment
concepts
designing
disk
review of allocating techniques
review of device driver kits delivery process
disk
disk
disk
disk device driver
disk device driver
disk device driver
disk device driver
disk device driver
disk device driver
disk device driver
reading into memory
read_label subroutine
list of
disk device driver
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
ZF
defined
description of
ensuring no locks are required
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
ZG
disk
summary descriptions
defined
implementation on Alpha CPU hardware platforms
with reference to size of neighboring units of memory
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
ZH
list of with summary descriptions
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
ZI
method for registering
disk device driver
summary descriptions
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
ZK
summary descriptions of I/O support interfaces
advantages of using in device drivers
asserting a block by calling assert_wait_mesg kernel interface
blocking by calling mpsleep kernel interface
defined
execution issues
issues related to device driver design
issues related to using
kernel interfaces and data structures associated with
operations to be performed by
setting a timer on by calling thread_set_timeout kernel interface
starting a fixed priority kernel thread
starting by calling kernel_thread_w_arg kernel interface
terminating by calling thread_halt_self kernel interface
terminating by calling thread_terminate kernel interface
unblocking by calling thread_wakeup kernel interface
unblocking by calling thread_wakeup_one kernel interface
example use in device driver
explanation of code fragment
explanation of code fragment
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
ZL
disk device
declared in code fragment
accessing a read-only resource
description of choices
description of complex locks
description of funnels
description of simple locks
device CSR addresses
driver-specific global resources
example analysis of device driver to determine resources to lock
method choices
need for locks in device drivers operating in an SMP environment
resources to lock in a device driver
summary of locking methods
system-specific global resources
lock analysis table for device register offset definitions
summary of device driver resources
summary of SMP-related characteristics
to declare complex lock data structure
explanation of code fragment
explanation of code fragment
releasing previously asserted complex lock
explanation of code fragment
initializing a complex lock
explanation of code fragment
explanation of code fragment
terminating a complex lock
explanation of code fragment
trying to assert complex lock
explanation of code fragment
trying to assert complex lock
explanation of code fragment
explanation of code fragment
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
ZM
disk devices
disk device
disk device driver
explanation of code fragment
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
ZO
disk device driver
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
ZP
locating target of a request
defined
issue to consider when using kernel threads
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
ZR
defined
issue to consider when using kernel threads
disk device driver
kernel interface
disk device driver example
by calling lock_done
by calling simple_unlock
defined
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
ZS
by calling thread_set_timeout kernel interface
asserting read and write access with simple_lock
declaring simple lock structure with decl_simple_lock_data
defined
description of
initializing a simple lock structure with simple_lock_init
kernel interfaces and data structures associated with
releasing previously asserted simple lock with simple_unlock
terminating a simple lock with simple_lock_terminate
trying to obtain simple lock with simple_lock_try
using spl interfaces
asserting read and write access
explanation of code fragment
explanation of code fragment
initializing a simple lock structure
explanation of code fragment
terminating a simple lock
explanation of code fragment
trying to obtain simple lock
explanation of code fragment
releasing previously asserted simple lock
disk device driver
asserting complex lock
asserting read and write access with simple_lock
declaring complex lock structure with lock_data_t
declaring simple lock structure with decl_simple_lock_data
defined
description of complex locks
description of funnels
description of locking methods
description of simple locks
ensuring no locks are required with funnels
example analysis of device driver to determine resources to lock
initializing a complex lock with lock_init
initializing a simple lock structure with simple_lock_init
locking methods
need for locking device drivers
releasing previously asserted complex lock with lock_done
releasing previously asserted simple lock with simple_unlock
resources to lock in a device driver
summary of locking methods
terminating a complex lock with lock_terminate
terminating a simple lock with simple_lock_terminate
trying to assert complex lock with lock_try_read
trying to assert complex lock with lock_try_write
trying to obtain simple lock with simple_lock_try
using spl interfaces
defined
See simple lock
using spl interfaces
explanation of code fragment
explanation of code fragment
by calling kernel_thread_w_arg kernel interface
by calling kernel_thread_w_arg kernel interface
disk device driver
summary descriptions
See SMP
hardware issues related to
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
ZT
by calling thread_halt_self kernel interface
by calling thread_terminate kernel interface
defined
See also kernel thread
explanation of code fragment
explanation of code fragment
explanation of code fragment
by calling lock_try_read
by calling lock_try_write
by calling simple_lock_try
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
ZU
by calling thread_wakeup kernel interface
by calling thread_wakeup_one kernel interface
by calling mpsleep kernel interface
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
ZW
See unblocking kernel thread
disk device driver