Writing Device Drivers
この本のみを検索
PDF 文書ファイルをダウンロードする

Index

Symbols

.conf files486

A

adb(1) command360
add_drv(1M) command342
address spaces2
ANSI C compliance70, 386
attach(9E) entry point101
autoconfiguration
.....of block devices208
.....of character devices180
.....of SCSI drivers263, 301
.....routines56
autoshutdown threshold166
autovectored interrupts115

B

binary compatibility4
block driver
.....autoconfiguration of209
.....slice number209
block interrupt cookie60
bus
.....architectures18
.....interrupt levels115
.....SCSI253
bus nexus device drivers4
bus-master DMA130
byte-stream I/O44

C

C language data models488
cache147
callback functions59, 109, 140
cb_ops(9S) structure92, 207
character device drivers44
.....entry points for57
compiling/linking a driver340
condition variables467
.....and interface functions467
.....and mutex locks81, 394
.....routines82
configuration entry points96
configuration file, device
.....attach(9E)101
.....getinfo(9E)110
.....identify(9E)96, 97
.....probe(9E)98
configuration file, hardware340
configuration files for device drivers70, 486
context of device driver60
control registers
.....device context management of237
cookie
.....DMA128
.....types of60

D

data structures
.....cb_ops(9S)92, 207
.....dev_ops(9S)92, 207
.....for device drivers69, 481
data, storage classes of78
DDI/DKI
.....and disk performance504
.....compliance testing379
.....kernel support routines386
ddi_ functions417
.....ddi_add_intr(9F)104, 121
.....ddi_create_minor_node(9F)105
.....ddi_dma_nextseg(9F)130
.....ddi_get_instance(9F)104
.....ddi_iblock_cookie_t60
.....ddi_idevice_cookie_t60
.....ddi_map_regs(9F)105
.....ddi_remove_intr(9F)109
ddi_dev_is_needed(9F)161
DDI_PM_RESUME command165
DDI_PM_SUSPEND command163
DDI_RESUME command170
DDI_SUSPEND command168
debugging tools356, 388
detach(9E) entry point107
dev_ops(9S) structure92, 207
device access system calls211
device configuration entry points96
device driver
.....64-bit drivers201, 487
.....converting to 5.x385
.....debugging
............coding hints351
............configuration345
............tools356
......definition of43
......entry points55
......header files69, 481
......loadable interface94
......module configuration69, 482
......overview43
......register mapping105
......source files69, 482
......standard character44
......testing379
......types of44
device information
......dev_info node104
......self-identifying19
......tree structure4, 6
device interrupt cookie60
device interrupt handling
......ddi_add_intr(9F)104, 121
......ddi_remove_intr(9F)109
......interrupt block cookie104
device interrupts, types of115
device memory
......mapping45, 452
device memory mapping227
device polling
......overview46
......poll(2) system call46
device power management
......definition of156
......entry points162
......interfaces159
......model157
......state transitions160
device registers
......ddi_map_regs(9F)105
......examples of51
......mapping101
device tree4
devlinks(1M) command341
disk
......I/O controls503
......performance504
DKI, See DDI/DKI
DMA
.....buffer allocation153
.....callbacks145
.....cookie128
.....engine restrictions132
.....freeing resources143
.....handle127
.....limits133
.....locking137
.....object127
.....operations130
.....private buffer allocation153
.....register structure140
.....resource allocation138
.....resource interfaces425
.....transfers189
.....types of128
driver entry points423
.....attach(9E)101
.....definition of55
.....detach(9E)107
.....identify(9E)97
.....ioctl(9E)198
.....probe(9E)97
driver.conf files486
DVMA
.....SBus slots that support26
dynamic loading3
dynamic memory allocation62

E

entry points
.....for device configuration96
entry points, See driver entry points
external registers31

F

file system I/O207
fini(9E)55, 96
first-party DMA131

G

geographical addressing24
graphics devices
......device context management of237

H

hardware configuration file340
header files for device drivers69, 481

I

I/O
......control overview45
......disk controls503
......file system structure207
......miscellaneous control of198
......multiplexing195
......port access452
......programmed transfers187
......scatter/gather structures185
identify(9E) entry point97
ILP32488
info(9E)55
init(9E)55, 95
instance numbers96
internal mode registers31
internal sequencing logic31
interrupt cookie, See cookie
interrupt handling
......block interrupt cookie60
......device interrupt cookie60
......interfaces for432
......overview59
......registering a handler101
interrupts
......common problems with32
......registering104
......types of115
inumber104
ioctl(9E)198

K

kadb(1M) command360
kernel modules
.....directory of341
.....dynamic loading3
kernel threads76
kernel, definition of1

L

leaf device drivers4
lightweight process75
linking a driver340
loading drivers
.....add_drv(1M) command342
.....compiling a driver340
.....hardware configuration file340
.....linking a driver340
.....overview3
loading modules55, 341
lock granularity499
locking primitives, types of78
locking scheme87
LP64488
LWP (lightweight process)75

M

memory mapping
.....device context management of237
.....device memory management227
.....device memory management of45
memory model
.....SPARC17
.....store buffers16
memory, allocation of62, 436, 437
minor device node105
modldrv91
modlinkage91
module directory341
module ID, getting343
modunload(1M) command343
mount(2) system call211
multithreaded kernel77
multithreading2
.....and condition variables82
......and lock granularity499
......and locking primitives78
......application threads75
......thread synchronization81
mutex
......functions80, 467
......locking order500
......locks79, 467
......related panics502
......routines79

N

nexus driver4
node types105
non-self-identifying devices19

O

object locking137
open(2) system call211

P

PCI devices20
PCI local bus19
physical DMA128
poll(2) system call46
polled interrupts115
polling, See device polling
power management
......components157
......definition155
......dependency158
......device power management157
............entry points162
............interfaces159
............state transitions160
......entry points162, 167
......power levels158
......system power management166
power.conf(4)167
printing messages61
probe(9E) entry point97
processor issues
.....SPARC13
.....x8615
programmed I/O187
properties
.....overview65
.....types of65
pseudo driver43

Q

queueing506

R

readers/writer locks81
registers, See control registers and deviceregisters
rnumber105

S

S_IFCHR105
SBus
.....geographical addressing24
.....physical SBus addresses26
.....slots supporting DVMA26
scatter/gather I/O185
SCSAxx, 253
.....functions, types of258
.....global data definitions505
.....interfaces458
SCSI
.....architecture255
.....flow of control256
.....interfaces458
.....resource allocation270
.....target driver overview253
.....target drivers110, 259
self-identifying devices18
semaphores467
slice number
.....for block devices209
soft state structure63, 464
source compatibility4
source files for device drivers69, 482
SPARC processor
......byte ordering14, 16
......data alignment13, 15
......floating point operations15, 16
......multiply and divide instructions15
......register windows14
......structure member alignment14, 16
SPARC processor issues13
special files2
sst_getinfo() entry point110
state structure
......description of63
......management routines64
store buffers16
STREAMS
......drivers46
......interfaces418
string manipulation465
structure padding53
SunDDI/DKI
......overview3, 207
synchronization of threads467
system call, description of1
system power management
......definition of156
......model166

T

tagged queueing506
third-party DMA132
thread synchronization467
......condition variables81
......mutex locks79
......mutex_init(9F)80
......per instance mutex101
......readers/writer locks81
threads
......preemption of78
......types of75
timing routines472

U

uio(9S) data structure473
unloading drivers
.....getting the module ID343
untagged queuing507
user threads75
utility functions473

V

vectored interrupts115
virtual addresses2
virtual DMA128
virtual memory
.....address spaces2
.....memory management unit (MMU)2
.....overview2
VMEbus
.....machine architecture27

X

x86 processor issues15