I
- I/O, Blocking I/O–Testing the Scullpipe Driver, Flushing pending output, Flushing pending output, I/O Ports and I/O Memory–isa_readb and Friends, I/O Registers and Conventional Memory, String Operations, Pausing I/O, Pausing I/O, Using I/O Memory, I/O Memory Allocation and Mapping, Quick Reference, Interrupt-Driven I/O–A Write-Buffering Example, PCI Addressing, Accessing the I/O and Memory Spaces, Accessing the I/O and Memory Spaces, Remapping Specific I/O Regions, Performing Direct I/O–An asynchronous I/O example, Asynchronous I/O–An asynchronous I/O example, Implementing Direct I/O, Request Queues, Scatter/Gather I/O
- asynchronous, Asynchronous I/O–An asynchronous I/O example
- blocking, Blocking I/O–Testing the Scullpipe Driver
- direct, Performing Direct I/O–An asynchronous I/O example, Implementing Direct I/O
- flushing pending, Flushing pending output
- generic address spaces, Accessing the I/O and Memory Spaces
- hardware management, I/O Ports and I/O Memory–isa_readb and Friends
- interrupt handlers, Interrupt-Driven I/O–A Write-Buffering Example
- mapping, I/O Memory Allocation and Mapping, Quick Reference
- memory (access), Using I/O Memory
- pausing, Pausing I/O, Pausing I/O
- PCI, PCI Addressing, Accessing the I/O and Memory Spaces
- regions, Remapping Specific I/O Regions
- registers, I/O Registers and Conventional Memory
- scatter/gather, Scatter/Gather I/O
- schedulers, Request Queues
- string operations, String Operations
- I/O registers
versus RAM, I/O Registers and Conventional Memory
- I2O
drivers, Classes of Devices and Modules
- IA-64 architecture, Platform Dependencies, The /proc Interface
- porting
and, Platform Dependencies
- /proc/interrupts file,
snapshot of, The /proc Interface
- IEEE1394 bus (Firewire), IEEE1394 (FireWire)
- if.h header
file, Interface Information, Custom ioctl Commands
- ifconfig command, Hardware Information, Opening and Closing–Opening and Closing
- net_device structure
and, Hardware Information
- opening network
drivers, Opening and Closing–Opening and Closing
- IFF_
symbols, Interface Information, Kernel Support for Multicasting
- IFF_ALLMULTI flag, Interface Information
- IFF_AUTOMEDIA flag, Interface Information
- IFF_BROADCAST flag, Interface Information
- IFF_DEBUG
flag, Interface Information
- IFF_DYNAMIC flag, Interface Information
- IFF_LOOPBACK flag, Interface Information
- IFF_MASTER flag, Interface Information
- IFF_MULTICAST flag, Interface Information
- IFF_NOARP
flag, Initializing Each Device, Interface Information
- IFF_NOTRAILERS flag, Interface Information
- IFF_POINTOPOINT flag, Interface Information
- IFF_PORTSEL flag, Interface Information
- IFF_PROMISC flag, Interface Information
- IFF_RUNNING flag, Interface Information
- IFF_SLAVE
flag, Interface Information
- IFF_UP
flag, Interface Information
- ifreq
structure, Custom ioctl Commands
- implementation, The Role of the Device Driver, Classes of Devices and Modules, Turning the Messages On and Off, Implementing files in /proc, The Linux Semaphore Implementation–Reader/Writer Semaphores, The Implementation of the ioctl Commands, Seeking a Device, Busy waiting, The Implementation of Kernel Timers, Implementing a Handler–Disabling all interrupts, A Look Back: ISA–The Plug-and-Play Specification, Memory Management in Linux–High and Low Memory, Asynchronous I/O, Implementing mmap, Implementing Direct I/O, Supporting Removable Media, A Typical Implementation
- asynchronous
I/O, Asynchronous I/O
- busy-waiting, Busy waiting
- of
classes, Classes of Devices and Modules
- of debugging
levels, Turning the Messages On and Off
- direct I/O, Implementing Direct I/O
- of
files in /proc filesystems, Implementing files in /proc
- interrupt handlers, Implementing a Handler–Disabling all interrupts
- ioctl commands, The Implementation of the ioctl Commands
- ISA (PCI), A Look Back: ISA–The Plug-and-Play Specification
- llseek method, Seeking a Device
- mmap, Memory Management in Linux–High and Low Memory, Implementing mmap
- multicasting, A Typical Implementation
- of
policies, The Role of the Device Driver
- removable media
(supporting), Supporting Removable Media
- semaphores, The Linux Semaphore Implementation–Reader/Writer Semaphores
- timers, The Implementation of Kernel Timers
- inb
function, Manipulating I/O ports
- inb_p
function, Pausing I/O
- infinite
loops, preventing, System Hangs
- information leakage, Security Issues
- init
scripts and loading/unloading modules, Dynamic Allocation of Major Numbers
- init.h
header file, Quick Reference
- initialization, Initialization and Shutdown–Module-Loading Races, Char Device Registration–The Older Way, The Linux Semaphore Implementation, Reader/Writer Semaphores, Completions, seqlocks, Installing an Interrupt Handler, PCI Addressing, Configuration Registers and Initialization, Registering a USB Driver, Kobject initialization, The gendisk structure, Initialization in sbull, Device Registration, Initializing Each Device
- completions
(semaphores), Completions
- devices, Initializing Each Device
- gendisk
structure, The gendisk structure
- interrupt handlers, Installing an Interrupt Handler
- kobjects, Kobject initialization
- modules, Initialization and Shutdown–Module-Loading Races
- mutexes, The Linux Semaphore Implementation
- net_device
structure, Device Registration
- PCI, PCI Addressing
- reader/writer
semaphores, Reader/Writer Semaphores
- registers (PCI), Configuration Registers and Initialization
- sbull
drivers, Initialization in sbull
- seqlocks, seqlocks
- struct usb_driver
structure, Registering a USB Driver
- structures
(registration), Char Device Registration–The Older Way
- INIT_LIST_HEAD macro, Linked Lists
- inl
function, Manipulating I/O ports
- inline
assembly code (example), Processor-Specific Registers
- inode pointer in
ioctl method, ioctl
- inode
structure, The inode Structure
- input devices (hotplugging), Input
- input files,
enabling asynchronous notification from, Asynchronous Notification
- input
module, The Kernel Symbol Table
- input
pins, Communicating with Hardware, An I/O Port Example, A Sample Driver
- reading values from parallel
port, A Sample Driver
- insb
function, String Operations
- insl
function, String Operations
- insmod
program, Loadable Modules, Loadable Modules, The Hello World Module, The Hello World Module, Loading and Unloading Modules, The Kernel Symbol Table, Module Parameters, Dynamic Allocation of Major Numbers
- assigning parameter values, Module Parameters
- dynamically allocating major
numbers, Dynamic Allocation of Major Numbers
- modprobe program versus, The Kernel Symbol Table
- testing modules using, The Hello World Module
- installation, Setting Up Your Test System, Installing an Interrupt Handler–The internals of interrupt handling on the x86, Installing a Shared Handler
- interrupt handlers, Installing an Interrupt Handler–The internals of interrupt handling on the x86, Installing a Shared Handler
- mainline kernels, Setting Up Your Test System
- insw
function, String Operations
- int
actual_length field (USB), struct urb
- int data
type, Use of Standard C Types
- int
error_count field (USB), struct urb
- int
field, Registering a PCI Driver, Global Information
- net_device
structure, Global Information
- PCI registration, Registering a PCI Driver
- int
flags field (gendisk), The gendisk structure
- int
function (USB), Registering a USB Driver
- int
interval field (USB), struct urb
- int
major field (gendisk), The gendisk structure
- int minor
field (USB), Interfaces
- int
minors field (gendisk), The gendisk structure
- int
minor_base variable (USB), probe and disconnect in Detail
- int
number_of_packets field (USB), struct urb
- int
pci_enable_device function, Enabling the PCI Device
- int
seq_escape function, The seq_file interface
- int
seq_path function, The seq_file interface
- int
seq_printf function, The seq_file interface
- int
seq_putc function, The seq_file interface
- int
seq_puts function, The seq_file interface
- int
start_frame field (USB), struct urb
- int
status field (USB), struct urb
- int
transfer_buffer_length field (USB), struct urb
- INTERFACE variable, USB
- interface-specific data types, Interface-Specific Types
- interfaces, Classes of Devices and Modules, Version Dependency, The Cleanup Function, The Older Way, An older interface, The seq_file interface–The seq_file interface, Reader/Writer Semaphores, Introduction to the Spinlock API, The Timer API, The alloc_pages Interface, Preparing the Parallel Port, Interface-Specific Types, The PCI Interface–Hardware Abstractions, VLB, Interfaces, Configurations, Operations on ksets, The class_simple Interface, The Full Class Interface, Class interfaces, The Kernel Firmware Interface, Registration–A Note on Sector Sizes, The Block Device Operations–The ioctl Method, Request Processing–Doing without a request queue, Command Pre-Preparation, Tagged Command Queueing–Tagged Command Queueing, Quick Reference–Quick Reference, How snull Is Designed–The Physical Transport of Packets, How snull Is Designed, Interface Information, Interface Information, Media Independent Interface Support
- alloc_pages, The alloc_pages Interface
- block
drivers, Registration–A Note on Sector Sizes, The Block Device Operations–The ioctl Method, Request Processing–Doing without a request queue, Command Pre-Preparation, Tagged Command Queueing–Tagged Command Queueing, Quick Reference–Quick Reference
- command
pre-preparation, Command Pre-Preparation
- functions, Quick Reference–Quick Reference
- operations, The Block Device Operations–The ioctl Method
- registration, Registration–A Note on Sector Sizes
- request
processing, Request Processing–Doing without a request queue
- TCQ, Tagged Command Queueing–Tagged Command Queueing
- classes, Class interfaces
- class_simple, The class_simple Interface
- cleanup function, The Cleanup Function
- configuration (USB), Configurations
- firmware, The Kernel Firmware Interface
- flags for net_device
structure, Interface Information
- full class, The Full Class Interface
- interface-specific data
types, Interface-Specific Types
- ksets, Operations on ksets
- loopback, How snull Is Designed
- MII, Media Independent Interface Support
- networks, Classes of Devices and Modules
- non-Ethernet, Interface Information
- older, The Older Way, An older interface
- char device
registration, The Older Way
- /proc file implementation, An older interface
- parallel
ports, Preparing the Parallel Port (see parallel ports)
- PCI, The PCI Interface–Hardware Abstractions
- reader/writer
semaphores, Reader/Writer Semaphores
- seq_file, The seq_file interface–The seq_file interface
- snull, How snull Is Designed–The Physical Transport of Packets
- spinlocks, Introduction to the Spinlock API
- timers, The Timer API
- USB, Interfaces
- version
dependency, Version Dependency
- VLB, VLB
- internal
functions (locking), Ambiguous Rules
- internal representation
of device numbers, The Internal Representation of Device Numbers
- Internet protocol
(IP), Network Drivers
- interrupt
handlers, Autodetecting the IRQ Number, The /proc Interface and Shared Interrupts
- autodetecting IRQ numbers, Autodetecting the IRQ Number
- sharing interrupts, The /proc Interface and Shared Interrupts
- interrupt
mode, Kernel Timers, Tasklets–Tasklets
- and asynchronous
execution, Kernel Timers
- tasklets, Tasklets–Tasklets
- interruptible sleeps, Manual sleeps
- interrupts, Measuring Time Lapses, Preparing the Parallel Port, Installing an Interrupt Handler–The internals of interrupt handling on the x86, Installing an Interrupt Handler, Installing an Interrupt Handler, The /proc Interface, The /proc Interface, Implementing a Handler–Disabling all interrupts, Top and Bottom Halves–Workqueues, Tasklets, Interrupt Sharing–The /proc Interface and Shared Interrupts, The /proc Interface and Shared Interrupts, Interrupt-Driven I/O–A Write-Buffering Example, Quick Reference, Quick Reference, PCI Interrupts, Interrupt urbs, The Interrupt Handler, The Interrupt Handler, Receive Interrupt Mitigation, Flow of Data, ioctls
- counts, ioctls
- file, The /proc Interface
- handlers, Preparing the Parallel Port, Installing an Interrupt Handler–The internals of interrupt handling on the x86, The /proc Interface, Implementing a Handler–Disabling all interrupts, Top and Bottom Halves–Workqueues, Tasklets, Interrupt Sharing–The /proc Interface and Shared Interrupts, Interrupt-Driven I/O–A Write-Buffering Example, Quick Reference, Quick Reference, The Interrupt Handler
- I/O, Interrupt-Driven I/O–A Write-Buffering Example
- implementation
of, Implementing a Handler–Disabling all interrupts
- installation
of, Installing an Interrupt Handler–The internals of interrupt handling on the x86
- management, Quick Reference
- for network drivers, The Interrupt Handler
- preparing
parallel ports, Preparing the Parallel Port
- /proc files for, The /proc Interface
- registration, Quick Reference
- sharing, Interrupt Sharing–The /proc Interface and Shared Interrupts
- tasklets, Tasklets
- top and bottom
halves, Top and Bottom Halves–Workqueues
- installation at, Installing an Interrupt Handler
- mitigation of, Receive Interrupt Mitigation
- for network
drivers, The Interrupt Handler
- PCI, PCI Interrupts
- reports, Installing an Interrupt Handler
- shared interrupts
and, The /proc Interface and Shared Interrupts
- timers, Measuring Time Lapses
- tty drivers, Flow of Data
- urbs, Interrupt urbs
- intervals
of time (data type portability), Time Intervals
- intptr_t
type (C99 standard), Use of Standard C Types
- inw
function, Manipulating I/O ports
- in_atomic
function, Kernel Timers
- in_interrupt
function, Kernel Timers
- ioctl
commands (creating), Quick Reference
- ioctl function
(tty drivers), ioctls
- ioctl method, File Operations, Redirecting Console Messages, The ioctl Method, ioctl–Device Control Without ioctl, Choosing the ioctl Commands, Device Control Without ioctl, The ioctl Method, The Device Methods, Custom ioctl Commands
- using bitfields to define
commands, Choosing the ioctl Commands
- block drivers, The ioctl Method
- controlling devices without, Device Control Without ioctl
- customizing for networking, Custom ioctl Commands
- debugging with, The ioctl Method
- network devices and, The Device Methods
- TIOCLINUX command, Redirecting Console Messages
- ioctl-number.txt file, Choosing the ioctl Commands
- ioctl.h header
file, Choosing the ioctl Commands, Choosing the ioctl Commands, Quick Reference
- setting up command numbers, Choosing the ioctl Commands
- _IOC_NRBITS macro, Quick Reference, Quick Reference, Quick Reference, Quick Reference
- IOMMU (I/O memory management
unit), Address Types, DMA mappings
- ioremap, vmalloc and Friends
- ioremap
function, vmalloc and Friends, Using I/O Memory, Quick Reference
- ioremap_nocache function, I/O Memory Allocation and Mapping
- iounmap
function, vmalloc and Friends, I/O Memory Allocation and Mapping
- IP (Internet
protocol), Network Drivers
- IP numbers
resolving to physical addresses, MAC Address Resolution
- ip_summed
field (sk_buff), Packet Reception, The Important Fields
- irq
argument (interrupt number), Installing an Interrupt Handler
- irq.h
header file, Do-it-yourself probing
- irqreturn_t
function, Installing an Interrupt Handler
- IRQs
(interrupt request lines), The /proc Interface, Autodetecting the IRQ Number
- autodetecting, Autodetecting the IRQ Number
- statistics on, The /proc Interface
- ISA, Pausing I/O, ISA Memory Below 1 MB, ISA Memory Below 1 MB, A Look Back: ISA–The Plug-and-Play Specification, DMA for ISA Devices–Talking to the DMA controller, DMA for ISA Devices, DMA for ISA Devices–Talking to the DMA controller
- bus master DMA, DMA for ISA Devices
- devices, DMA
for, DMA for ISA Devices–Talking to the DMA controller
- I/O (pausing devices), Pausing I/O
- memory
(access), ISA Memory Below 1 MB, ISA Memory Below 1 MB, DMA for ISA Devices–Talking to the DMA controller
- below 1 MB, ISA Memory Below 1 MB
- DMA for, DMA for ISA Devices–Talking to the DMA controller
- PCI, A Look Back: ISA–The Plug-and-Play Specification
- isa_readb
function, isa_readb and Friends
- ISOCHRONOUS endpoints (USB), Endpoints
- isochronous urbs (USB), Isochronous urbs
- iteration of buses, Iterating over devices and drivers
..................Content has been hidden....................
You can't read the all page of ebook, please click
here login for view all page.