Skip to Content
Linux Device Drivers
book

Linux Device Drivers

by Alessandro Rubini
February 1998
Intermediate to advanced
439 pages
13h 46m
English
O'Reilly Media, Inc.
Content preview from Linux Device Drivers

Run-Time Configuration

A user might occasionally want to change the interface configuration at run time. If, for example, the IRQ number can’t be probed for, the only way to have it properly configured is through a trial-and-error technique. A user-space program can retrieve the device’s current configuration or set a new configuration by invoking ioctl on an open socket. The ifconfig application, for instance, uses ioctl to set the I/O port for an interface.

We saw earlier how one of the methods defined for network interface is set_config. The method is used to set or change some interface features at run time.

When a program asks for the current configuration, the kernel extracts the information from struct device without notifying the driver; on the other hand, when a new configuration is passed to the interface, the set_config method is called so the driver can check the values being passed and take appropriate action. The driver method responds to the following prototype:

int (*set_config)(struct device *dev, struct ifmap *map);

The map argument points to a copy of the structure passed by the user program; the copy is already in kernel space, so the driver doesn’t need to call memcpy_from_fs.

The fields of struct ifmap are:

unsigned long mem_start; , unsigned long mem_end; , unsigned short base_addr; , unsigned char irq; , unsigned char dma;

These fields correspond to the fields in struct device.

unsigned char port;

This field corresponds to if_port, as found in dev. The ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Essential Linux Device Drivers

Essential Linux Device Drivers

Sreekrishnan Venkateswaran
Linux Device Drivers, Second Edition

Linux Device Drivers, Second Edition

Jonathan Corbet, Alessandro Rubini

Publisher Resources

ISBN: 1565922921Catalog PageErrata