Writing Device Drivers
この本のみを検索

Index

Symbols

.conf files74, 460

A

adb(1) command327
add_drv(1M) command309
address spaces3, 32
attach(9E) entry point105
autoconfiguration
.....of block devices190
.....of character devices164
.....of SCSI drivers233, 269
.....routines62
autovectored interrupts118

B

binary compatibility4
block driver
.....autoconfiguration of190
.....entry points62
.....slice number190
block interrupt cookie65
bus
.....architectures21
.....interrupt levels117
.....SCSI223
bus nexus device drivers5
bus-master DMA132
byte-stream I/O50

C

cache150
callback functions64, 112, 143
cb_ops(9S) structure96, 189
character device drivers50, 161
.....entry points for63
compiler modes75
compiling/linking a driver308
condition variables441
.....and interface functions441
.....and mutex locks85, 361
.....routines86
configuration entry points100
configuration file, device
.....attach(9E)105
.....detach(9E)110
.....getinfo(9E)112
.....identify(9E)100
.....probe(9E)102
configuration file, hardware308
configuration files for device drivers74, 460
context of device driver65
control registers
.....device context management of209
cookie
.....DMA130
.....types of64

D

data structures
.....cb_ops(9S)96, 189
.....dev_ops(9S)96, 189
.....for device drivers73, 455
data, storage classes of82
DDI/DKI
.....and disk performance466
.....compliance testing346
.....interface summary387
.....kernel support routines354
ddi_ functions387
.....ddi_add_intr(9F)107, 123
.....ddi_create_minor_node(9F)109
.....ddi_dma_nextseg(9F)132
.....ddi_get_instance(9F)107
.....ddi_iblock_cookie_t65
.....ddi_idevice_cookie_t64
.....ddi_map_regs(9F)108
.....ddi_remove_intr(9F)111
detach(9E) entry point110
dev_ops(9S) structure96, 189
device access system calls192
device configuration entry points100
device driver
.....converting to 5.x353
.....debugging
............coding hints319
............configuration313
............tools323
.....definition of49
.....entry points61
.....for character-oriented devices161
.....header files73, 455
.....loadable interface98
.....module configuration73, 456
.....overview49
......register mapping108
......source files73, 456
......standard character50
......testing346
......types of50
device information
......dev_info node107
......self-identifying22
......tree structure5, 7
device interrupt cookie64
device interrupt handling
......ddi_add_intr(9F)107, 123
......ddi_remove_intr(9F)111
......interrupt block cookie108
device interrupts, types of118
device memory
......mapping51, 423
device polling
......overview51
......poll(2) system call51
device registers
......ddi_map_regs(9F)108
......examples of57
......mapping105
device tree5
devlinks(1M) command309
disk
......I/O controls465
......performance466
DKI, See DDI/DKI
DMA
......buffer allocation156
......callbacks148
......cookie130
......engine restrictions134
......freeing resources147
......handle129
......limits135
......locking139
......object129
......operations132
......private buffer allocation156
......register structure143
......resource allocation141
.....resource interfaces395
.....transfers172
.....types of130
driver entry points393
.....attach(9E)105
.....definition of61
.....detach(9E)110
.....identify(9E)100
.....probe(9E)101
driver.conf files74, 460
DVMA
.....SBus slots that support30
dynamic loading3
dynamic memory allocation67

E

EIEIO instruction
.....on PowerPC21
entry points
.....for device configuration100
entry points, See driver entry points
external registers37

F

filesystem I/O189
fini(9E)62, 99
first-party DMA133

G

geographical addressing28
graphics devices
.....device context management of209

H

hardware configuration file308
header files for device drivers73, 455

I

I/O
.....control overview51
......disk controls465
......filesystem structure189
......miscellaneous control of183
......multiplexing180
......port access423
......programmed transfers170
......scatter/gather structures168
identify(9E) entry point100
info(9E)62
init(9E)62, 99
instance numbers101
internal mode registers37
internal sequencing logic37
interrupt cookie, See cookie
interrupt handling
......block interrupt cookie65
......device interrupt cookie64
......interfaces for406
......overview64
......registering a handler105
interrupts
......common problems with37
......registering107
interrupts, types of118
inumber107

K

kadb(1M) command327
kernel modules
......directory of309
......dynamic loading3
kernel threads80
kernel, definition of1
keywords, new76

L

leaf device drivers5
lightweight process79
linking a driver308
loading drivers
......add_drv(1M) command309
.....compiling a driver308
.....hardware configuration file308
.....linking a driver308
.....overview3
loading modules62, 309
lock granularity461
locking primitives, types of82
LWP79

M

memory mapping
.....device context management of51, 209
memory model
.....SPARC20
.....store buffers20
memory, allocation of67, 410
minor device node108
modldrv95
modlinkage95
module directory309
module ID, getting310
modunload(1M) command311
mount(2) system call192
multithreaded kernel81
multithreading2
.....and condition variables86
.....and lock granularity461
.....and locking primitives82
.....application threads79
.....thread synchronization85
mutex
.....functions84, 441
.....locking order462
.....locks83, 441
.....related panics464
.....routines83

N

node types109
non-self-identifying devices22

O

object locking139
open(2) system call192

P

padding structures60
PCI bus138
PCI devices24
PCI Local Bus23
physical DMA130
physical SBus addresses
......in SPARCstation 130
poll(2) system call51
polled interrupts118
polling, See device polling
PowerPC138
PowerPC Processor Issues18
printing messages66
probe(9E) entry point101
Processor Issues
......PowerPC18
......SPARC15
......x8617
programmed I/O170
properties
......overview69
......types of69

Q

queueing468

R

readers/writer locks85
registers, See control registers and deviceregisters
rnumber108

S

S_IFCHR109
SBus
.....geographical addressing28
.....physical SBus addresses30
.....slots supporting DVMA30
scatter/gather I/O168
SCSAxxiv, 223
.....functions, types of228
.....global data definitions467
.....interfaces431
SCSI
.....architecture225
.....flow of control226
.....interfaces431
.....resource allocation239
.....simple driver code listing453
.....target driver overview223, 249
.....target drivers112, 229
self-identifying devices22
semaphores441
slice number
.....for block devices190
soft state structure67, 439
source compatibility4
source files for device drivers73, 456
SPARC processor
.....byte ordering16, 18
.....data alignment15, 17
.....floating point operations17, 18
.....multiply and divide instructions17
.....register windows16
.....structure member alignment16, 18
SPARC Processor Issues15
special files3
sst_getinfo() entry point112
state structure
.....description of68
.....management routines68
store buffers20
STREAMS
.....drivers52
.....interfaces388
string manipulation440
structure padding60
SunDDI/DKI
......interface summary387
......overview4, 189
SYNC instruction
......on PowerPC20, 21
synchronization of threads441
system call, description of1

T

tagged queueing468
third-party DMA134
thread synchronization441
......condition variables85
......mutex locks83
......mutex_init(9F)84
......per instance mutex105
......readers/writer locks85
threads
......preemption of82
......types of79
timing routines446

U

uio(9S) data structure447
unloading drivers
......getting the module ID310
untagged queuing469
user threads79
utility functions448

V

vectored interrupts118
virtual addresses3
virtual DMA130
virtual memory
......address spaces3
......memory management unit (MMU)3
......overview2
VMEbus
......address spaces33
......machine architecture31

X

x86 Processor Issues17