Linux Device Drivers 3e
By

Rating

Product Description
Product Details

Table of Contents

Preface 1. An Introduction to Device Drivers; The Role of the Device Driver Splitting the Kernel; Classes of Devices and Modules Security Issues; Version Numbering; License Terms; Joining the Kernel Development Community Overview of the Book; 2. Building and Running Modules; Setting Up Your Test System; The Hello World Module; Kernel Modules Versus Applications; Compiling and Loading The Kernel Symbol Table; Preliminaries; Initialization and Shutdown; Module Parameters; Doing It in User Space; Quick Reference; 3. Char Drivers; The Design of scull; Major and Minor Numbers; Some Important Data Structures; Char Device Registration open and release; scull's Memory Usage; read and write Playing with the New Devices; Quick Reference; 4. Debugging Techniques; Debugging Support in the Kernel; Debugging by Printing Debugging by Querying; Debugging by Watching; Debugging System Faults; Debuggers and Related Tools; 5. Concurrency and Race Conditions; Pitfalls in scull; Concurrency and Its Management Semaphores and Mutexes; Completions; Spinlocks; Locking Traps Alternatives to Locking; Quick Reference; 6. Advanced Char Driver Operations ioctl Blocking I/O; poll and select Asynchronous Notification; Seeking a Device; Access Control on a Device File Quick Reference; 7. Time, Delays, and Deferred Work; Measuring Time Lapses; Knowing the Current Time Delaying Execution Kernel Timers Tasklets; Workqueues; Quick Reference 8. Allocating Memory; The Real Story of kmalloc; Lookaside Caches get_free_page and Friends; vmalloc and Friends; Per-CPU Variables; Obtaining Large Buffers; Quick Reference; 9. Communicating with Hardware; I/O Ports and I/O Memory; Using I/O Ports; An I/O Port Example; Using I/O Memory; Quick Reference 10. Interrupt Handling; Preparing the Parallel Port; Installing an Interrupt Handler; Implementing a Handler; Top and Bottom Halves; Interrupt Sharing; Interrupt-Driven I/O; Quick Reference; 11. Data Types in the Kernel; Use of Standard C Types Assigning an Explicit Size to Data Items; Interface-Specific Types Other Portability Issues; Linked Lists; Quick Reference 12. PCI Drivers; The PCI Interface A Look Back: ISA PC/104 and PC/104+; Other PC Buses; SBus NuBus; External Buses Quick Reference; 13. USB Drivers; USB Device Basics; USB and Sysfs USB Urbs; Writing a USB Driver; USB Transfers Without Urbs Quick Reference; 14. The Linux Device Model; Kobjects, Ksets, and Subsystems; Low-Level Sysfs Operations; Hotplug Event Generation Buses, Devices, and Drivers; Classes; Putting It All Together Hotplug; Dealing with Firmware; Quick Reference; 15. Memory Mapping and DMA Memory Management in Linux; The mmap Device Operation; Performing Direct I/O; Direct Memory Access Quick Reference; 16. Block Drivers; Registration; The Block Device Operations; Request Processing; Some Other Details; Quick Reference; 17. Network Drivers; How snull Is Designed Connecting to the Kernel; The net_device Structure in Detail Opening and Closing; Packet Transmission; Packet Reception The Interrupt Handler; Receive Interrupt Mitigation; Changes in Link State; The Socket Buffers; MAC Address Resolution; Custom ioctl Commands; Statistical Information; Multicast; A Few Other Details; Quick Reference; 18. TTY Drivers; A Small TTY Driver tty_driver Function Pointers; TTY Line Settings; ioctls proc and sysfs Handling of TTY Devices; The tty_driver Structure in Detail; The tty_operations Structure in Detail; The tty_struct Structure in Detail; Quick Reference; Bibliography; Index

About the Author

Jonathan Corbet got his first look at the BSD Unix source back in 1981, when an instructor at the University of Colorado let him "fix" the paging algorithm. He has been digging around inside every system he could get his hands on ever since, working on drivers for VAX, Sun, Ardent, and x86 systems on the way. He got his first Linux system in 1993, and has never looked back. Mr. Corbet is currently the co-founder and executive editor of Linux Weekly News; he lives in Boulder, Colorado with his wife and two children.Alessandro Rubini installed Linux 0.99.14 soon after getting his degree as electronic engineer. He then received a Ph.D. in computer science at the University of Pavia despite his aversion toward modern technology. He left the University after getting his Ph.D. because he didn't want to write articles. He now works as a free lance writing device drivers and, um...articles. He used to be a young hacker before his babies were born; he's now an old advocate of Free Software who developed a bias for non-PC computer platforms.Greg Kroah-Hartman has been writing Linux kernel drivers since 1999, and is currently the maintainer for the USB, PCI, I2C, driver core, and sysfs kernel subsystems. He is also the maintainer of the udev and hotplug userspace programs, as well as being a Gentoo kernel maintainer, ensuring that his email inbox is never empty. He is a contributing editor to Linux Journal Magazine, and works for IBM's Linux Technology Center, doing various Linux kernel related tasks.

Ask a Question About this Product More...
 
Look for similar items by category
How Fishpond Works
Fishpond works with suppliers all over the world to bring you a huge selection of products, really great prices, and delivery included on over 25 million products that we sell. We do our best every day to make Fishpond an awesome place for customers to shop and get what they want — all at the best prices online.
Webmasters, Bloggers & Website Owners
You can earn a 8% commission by selling Linux Device Drivers 3e on your website. It's easy to get started - we will give you example code. After you're set-up, your website can earn you money while you work, play or even sleep! You should start right now!
Authors / Publishers
Are you the Author or Publisher of a book? Or the manufacturer of one of the millions of products that we sell. You can improve sales and grow your revenue by submitting additional information on this title. The better the information we have about a product, the more we will sell!
Item ships from and is sold by Fishpond.com, Inc.

Back to top