Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so2:laboratoare:lab12 [2017/05/14 15:00]
octavian.purdila update lxr links to use 4.9
so2:laboratoare:lab12 [2018/05/17 09:18] (current)
elena.sandulescu [Structuri de bază în dispozitivele Linux]
Line 209: Line 209:
 static int my_match (struct device *dev, struct device_driver *driver) static int my_match (struct device *dev, struct device_driver *driver)
 { {
- return ​!strncmp (dev_name(dev),​ driver->​name,​ strlen (driver->​name));​+ return strncmp (dev_name(dev),​ driver->​name,​ strlen (driver->​name));​
 } }
    
Line 808: Line 808:
 </​code>​ </​code>​
  
-La detectarea unui dispozitiv în kernel (în procesul de boot sau la adăugarea dispozitivului prin ''​hotplug''​),​ se transmite o întrerupere în sistem care ajunge la magistrală. Dispozitivul este înregistrat cu ajutorul funcției [[http://lxr.free-electrons.com/​source/​drivers/​base/​core.c?v=3.11#L1209 | device_register]] și este atașat magistralei (și se va genera un apel în userspace, care poate fi detectat de ''​udev''​). Apoi se va parcurge lista de drivere a magistralei și se va apela funcția ''​match''​ pentru fiecare dintre ele. Funcția ''​match''​ încearcă să asocieze un driver cu un dispozitiv. După ce a fost determinat driverul asociat dispozitivului,​ se va apela funcția ''​probe''​ a driver-ului. Dacă funcția se termină cu succes, dispozitivul este adăugat în lista de dispozitive a driver-ului și se creează intrările corespunzătoare în ''​sysfs''​ bazate pe numele dispozitivului.+La detectarea unui dispozitiv în kernel (în procesul de boot sau la adăugarea dispozitivului prin ''​hotplug''​),​ se transmite o întrerupere în sistem care ajunge la magistrală. Dispozitivul este înregistrat cu ajutorul funcției [[https://elixir.bootlin.com/linux/v4.9/​source/​drivers/​base/​core.c#​L1185 | device_register]] și este atașat magistralei (și se va genera un apel în userspace, care poate fi detectat de ''​udev''​). Apoi se va parcurge lista de drivere a magistralei și se va apela funcția ''​match''​ pentru fiecare dintre ele. Funcția ''​match''​ încearcă să asocieze un driver cu un dispozitiv. După ce a fost determinat driverul asociat dispozitivului,​ se va apela funcția ''​probe''​ a driver-ului. Dacă funcția se termină cu succes, dispozitivul este adăugat în lista de dispozitive a driver-ului și se creează intrările corespunzătoare în ''​sysfs''​ bazate pe numele dispozitivului.
  
 === Eliminare dispozitiv === === Eliminare dispozitiv ===
so2/laboratoare/lab12.1494763257.txt.gz · Last modified: 2017/05/14 15:00 by octavian.purdila
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0