P
- packages,
upgrading, Version Numbering
- packets, Splitting the Kernel, The Physical Transport of Packets, Packet Transmission–Transmission Timeouts, The Interrupt Handler, Kernel Support for Multicasting
- management, Splitting the Kernel
- multicasting, Kernel Support for Multicasting
- reception, The Interrupt Handler
- transmission, The Physical Transport of Packets, Packet Transmission–Transmission Timeouts
- PACKET_BROADCAST flag, The Important Fields
- PACKET_HOST flag, The Important Fields
- PACKET_MULTICAST flag, The Important Fields
- PACKET_OTHERHOST flag, The Important Fields
- page frame
number (PFN), Physical Addresses and Pages
- page-oriented allocation functions, get_free_page and Friends, Quick Reference
- page.h header
file, Page Size
- pages, Oops Messages, The alloc_pages Interface, Using I/O Memory, Page Size, Physical Addresses and Pages, Page Tables, Mapping Memory with nopage
- allocators, The alloc_pages Interface
- faults caused by invalid
pointers, Oops Messages
- physical addresses, Physical Addresses and Pages
- size and portability, Page Size
- tables, Using I/O Memory, Page Tables, Mapping Memory with nopage
- I/O memory
and, Using I/O Memory
- nopage VMA
method, Mapping Memory with nopage
- page_address macro, The Memory Map and Struct Page
- PAGE_SHIFT
macro, Physical Addresses and Pages
- PAGE_SHIFT
symbol, Page Size
- PAGE_SIZE
symbol, Page Size, The mmap Device Operation
- parallel
ports, The Kernel Symbol Table, An Overview of the Parallel Port–A Sample Driver, Preparing the Parallel Port, Disabling a single interrupt
- interrupt handlers, Preparing the Parallel Port, Disabling a single interrupt
- disabling, Disabling a single interrupt
- preparing
for, Preparing the Parallel Port
- stacking driver modules, The Kernel Symbol Table
- param.h header
file, Measuring Time Lapses
- parameters, Module Parameters–Module Parameters, Module Parameters, A Sample Driver
- assigning values, Module Parameters
- base module, A Sample Driver
- modules, Module Parameters–Module Parameters
- PARENB
bitmask, set_termios
- PARODD
bitmask, set_termios
- partial data transfers, The read Method, The write Method
- read
method, The read Method
- write method, The write Method
- passwords, Security Issues
- pausing
I/O, Pausing I/O
- PC parallel
interface, An Overview of the Parallel Port
- PCI
(Peripheral Component Interconnect), vmalloc and Friends, The PCI Interface–Hardware Abstractions, A Look Back: ISA–The Plug-and-Play Specification, PC/104 and PC/104+, MCA, EISA, VLB, SBus, NuBus, External Buses, Quick Reference, Quick Reference, Add a Device, Remove a Device, Add a Driver, Remove a Driver, PCI double-address cycle mappings, A simple PCI DMA example
- devices, Add a Device, Remove a Device
- adding, Add a Device
- deleting, Remove a Device
- DMA, A simple PCI DMA example
- double-address cycle
mappings, PCI double-address cycle mappings
- drivers, Add a Driver, Remove a Driver
- adding, Add a Driver
- deleting, Remove a Driver
- EISA, EISA
- extended
buses, External Buses
- interfaces, The PCI Interface–Hardware Abstractions
- ISA, A Look Back: ISA–The Plug-and-Play Specification
- lists, Quick Reference
- MCA, MCA
- NuBus, NuBus
- PC/104 and PC/104+, PC/104 and PC/104+
- SBus, SBus
- searching, Quick Reference
- VLB, VLB
- pci_bus_type
variable, Add a Device
- PCI_CLASS variable, PCI
- PCI_DEVICE macro, Configuration Registers and Initialization
- PCI_DEVICE_CLASS macro, Configuration Registers and Initialization
- PCI_DMA_FROMDEVICE symbol, Setting up streaming DMA mappings
- PCI_DMA_TODEVICE symbol, Setting up streaming DMA mappings
- PCI_ID
variable, PCI
- pci_map_sg function, Scatter/gather mappings
- pci_remove_bus_device function, Remove a Device
- pci_resource_
functions, Accessing the I/O and Memory Spaces
- PCI_SLOT_NAME variable, PCI
- PCI_SUBSYS_ID variable, PCI
- PDEBUG/PDEBUGG symbols, Turning the Messages On and Off
- pending
output, flushing, Flushing pending output, Flushing pending output
- per-CPU variables, Per-CPU Variables–Per-CPU Variables
- performance, Blocking and Nonblocking Operations, get_free_page and Friends, I/O Registers and Conventional Memory, String Operations, The mmap Device Operation, Packet Reception
- allocating socket
buffers, Packet Reception
- degrading by allocating too much
memory, get_free_page and Friends
- memory barriers
and, I/O Registers and Conventional Memory
- mmap method, The mmap Device Operation
- output buffers
and, Blocking and Nonblocking Operations
- string operations
and, String Operations
- Peripheral Component
Interconnect, vmalloc and Friends (see PCI)
- peripherals (DMA), Direct Memory Access–Talking to the DMA controller
- perror calls, Debugging by Watching
- persistence of memory, The Design of scull
- PFN (page
frame number), Physical Addresses and Pages
- pfn_to_page function, The Memory Map and Struct Page
- PG_locked flag, The Memory Map and Struct Page
- PG_reserved flag, The Memory Map and Struct Page
- PHYS
variable, Input
- physical addresses, Address Types, Physical Addresses and Pages, Physical Addresses and Pages
- (see also addresses)
- pages, Physical Addresses and Pages
- physical memory management
of, Memory zones, The Size Argument
- (see also memory)
- pins, Communicating with Hardware, An I/O Port Example, A Sample Driver, Preparing the Parallel Port, Implementing a Handler
- 9/10 of parallel
connector, Preparing the Parallel Port
- interrupts (generating), Implementing a Handler
- output, Communicating with Hardware, An I/O Port Example, A Sample Driver
- pipes (scull), The Design of scull
- platform
dependency, Version Numbering, Platform Dependency, Platform Dependency, Platform Dependencies, The /proc Interface
- for
modules, Platform Dependency
- porting and, Platform Dependencies
- /proc/stat
file, The /proc Interface
- PLIP (Parallel
Line Internet Protocol), The Interrupt Handler, Overriding ARP
- using Ethernet
headers, Overriding ARP
- interrupt handling
differences, The Interrupt Handler
- Plug and Play
(PnP), The Plug-and-Play Specification
- PnP (plug and
play), The Plug-and-Play Specification
- Point-to-Point
Protocol (PPP) and interrupt handling differences, The Interrupt Handler
- pointers, scull's Memory Usage, ioctl, Pointers and Error Values, Embedding kobjects, tty_driver Function Pointers–No read Function?
- data type
portability, Pointers and Error Values
- inode in ioctl method, ioctl
- kobject, Embedding kobjects
- scull, scull's Memory Usage
- tty_driver function, tty_driver Function Pointers–No read Function?
- policies, The Role of the Device Driver–The Role of the Device Driver, Splitting the Kernel, Security Issues, scull's Memory Usage–scull's Memory Usage, Device Control Without ioctl
- controlling devices by printing
and, Device Control Without ioctl
- memory, Splitting the Kernel, scull's Memory Usage–scull's Memory Usage
- allocation
(scull), scull's Memory Usage–scull's Memory Usage
- security, Security Issues
- separation from mechanism, The Role of the Device Driver–The Role of the Device Driver
- poll
method, File Operations, File Operations, poll and select–The Underlying Data Structure, The Device Methods
- poll.h
header file, poll and select, Quick Reference
- POLLERR flag, poll and select
- POLLHUP flag, poll and select
- POLLIN
flag, poll and select
- POLLOUT flag, poll and select
- POLLPRI flag, poll and select
- POLLRDBAND flag, poll and select
- POLLRDNORM flag, poll and select
- POLLWRBAND flag, poll and select
- POLLWRNORM flag, poll and select
- poll_controller method, Netpoll
- poll_table
structure, poll and select, The Underlying Data Structure
- poll_table_entry structure, The Underlying Data Structure
- poll_wait function, poll and select, Quick Reference
- pools, Memory Pools, Quick Reference, DMA pools
- DMA, DMA pools
- memory, Memory Pools, Quick Reference
- populate method, The vm_area_struct structure
- portability, Platform Dependencies
- porting and, Platform Dependencies
- ports, I/O Ports and I/O Memory–isa_readb and Friends, Manipulating I/O ports, Platform Dependencies, An Overview of the Parallel Port–A Sample Driver, Quick Reference, Quick Reference, Quick Reference, Preparing the Parallel Port, Disabling a single interrupt
- (see also connections; parallel
ports)
- access, Quick Reference
- accessing different sizes, Manipulating I/O ports
- I/O, I/O Ports and I/O Memory–isa_readb and Friends, Quick Reference
- parallel, An Overview of the Parallel Port–A Sample Driver, Preparing the Parallel Port, Disabling a single interrupt
- disabling
interrupt handlers, Disabling a single interrupt
- preparing for
interrupt handlers, Preparing the Parallel Port
- platform dependency and, Platform Dependencies
- POS
(Programmable Option Select), MCA
- power management, The Linux Device Model
- PowerPC architecture (porting and), Platform Dependencies
- PPP
(Point-to-Point Protocol) and interrupt handling differences, The Interrupt Handler
- pread
method, read and write
- precision,
temporal, Knowing the Current Time
- predefined commands ioctl
method, The Predefined Commands, The Predefined Commands
- (see also commands)
- preemption
and concurrency, Concurrency in the Kernel
- printing, Debugging by Printing–Printing Device Numbers, Turning the Messages On and Off, Printing Device Numbers, Using gdb, Device Control Without ioctl, Interface-Specific Types, Interface-Specific Types
- controlling devices by, Device Control Without ioctl
- to debug
code, Turning the Messages On and Off
- device numbers, Printing Device Numbers
- from gdb
debugger, Using gdb
- interface-specific
data, Interface-Specific Types
- kernels, Debugging by Printing–Printing Device Numbers
- _t data
items, Interface-Specific Types
- printk
function, The Hello World Module, printk–Printing Device Numbers, How Messages Get Logged, How Messages Get Logged, How Messages Get Logged, Turning the Messages On and Off, The seq_file interface
- circular buffers for, How Messages Get Logged
- debugging with, How Messages Get Logged
- logging messages from, How Messages Get Logged
- seq_file interface (avoiding
in), The seq_file interface
- turning debug messages on/off, Turning the Messages On and Off
- priorities, printk, Allocating Memory, The Flags Argument
- allocation, Allocating Memory, The Flags Argument
- memory, Allocating Memory
- private_data field (file structure), The file Structure
- privileged
operations, Capabilities and Restricted Operations
- probe
function (USB), probe and disconnect in Detail
- Probes,
Dynamic, Dynamic Probes
- probe_irq_off function, Kernel-assisted probing
- probe_irq_on function, Kernel-assisted probing
- probing, Autodetecting the IRQ Number, Autodetecting the IRQ Number, Kernel-assisted probing, Do-it-yourself probing, Old-Style PCI Probing
- do-it-yourself, Do-it-yourself probing
- for IRQ
numbers, Autodetecting the IRQ Number
- kernel-assisted, Kernel-assisted probing
- PCI, Old-Style PCI Probing
- /proc
filesystem, Creating your /proc file–The seq_file interface, Creating your /proc file, The /proc Interface, The /proc Interface and Shared Interrupts
- installing interrupt
handlers, The /proc Interface
- removing /proc
entries, Creating your /proc file
- shared interrupts
and, The /proc Interface and Shared Interrupts
- /proc/*/maps, Virtual Memory Areas
- /proc/devices file, Dynamic Allocation of Major Numbers
- /proc/interrupts file, The /proc Interface, The /proc Interface and Shared Interrupts
- /proc/kcore file, Using gdb
- /proc/kmsg file, How Messages Get Logged
- /proc/modules file, Quick Reference
- /proc/slabinfo file, Lookaside Caches
- /proc/stat file, The /proc Interface
- /proc/sys/kernel/printk file, reading console loglevel
with, printk
- /proc/tty/driver/ directory, TTY Drivers
- processes, Splitting the Kernel–Loadable Modules, Splitting the Kernel, The Current Process, Blocking I/O–Testing the Scullpipe Driver, Access Control on a Device File, Single-Open Devices, The Implementation of Kernel Timers, The Process Memory Map
- current, The Current Process
- kernel timers for, The Implementation of Kernel Timers
- kernels
(splitting), Splitting the Kernel–Loadable Modules
- login, Access Control on a Device File
- managing, Splitting the Kernel
- memory maps, The Process Memory Map
- opening devices for each
process, Single-Open Devices
- sleeps, Blocking I/O–Testing the Scullpipe Driver
- processor-specific registers, Processor-Specific Registers
- proc_read
method, Implementing files in /proc
- PRODUCT
variable, Input, USB
- Programmable
Option Select (POS), MCA
- programming, Setting Up Your Test System, The Hello World Module–The Hello World Module, User Space and Kernel Space, Concurrency in the Kernel, Preliminaries, Doing It in User Space–Doing It in User Space, ISA Programming
- concurrency in, Concurrency in the Kernel
- hello world module, The Hello World Module–The Hello World Module
- ISA, ISA Programming
- module requirements, Preliminaries
- test system setup, Setting Up Your Test System
- user space, User Space and Kernel Space, Doing It in User Space–Doing It in User Space
- programs, The Role of the Device Driver, The Role of the Device Driver, Loadable Modules, Loadable Modules, License Terms, Kernel Modules Versus Applications, Redirecting Console Messages, The Linux Trace Toolkit, Device Control Without ioctl, Testing the Scullpipe Driver, Asynchronous Notification, Busy waiting, Use of Standard C Types, Data Alignment, The /sbin/hotplug Utility, Remapping RAM, The Physical Transport of Packets
- (see also applications versus kernel
modules)
- asynctest, Asynchronous Notification
- dataalign, Data Alignment
- datasize, Use of Standard C Types
- insmod, Loadable Modules
- jitbusy, Busy waiting
- mapper, Remapping RAM
- nbtest, Testing the Scullpipe Driver
- obtaining, License Terms
- rmmod, Loadable Modules
- /sbin/hotplug
utility, The /sbin/hotplug Utility
- setconsole, Redirecting Console Messages
- setterm, Device Control Without ioctl
- tcpdump, The Physical Transport of Packets
- tracing, The Linux Trace Toolkit
- tunelp, The Role of the Device Driver
- public kernel symbols, The Kernel Symbol Table–The Kernel Symbol Table
- put_unaligned
function, Data Alignment
- put_user function, Using the ioctl Argument, Quick Reference
- pwrite
method, read and write
..................Content has been hidden....................
You can't read the all page of ebook, please click
here login for view all page.