12 #include <linux/module.h>
13 #include <linux/slab.h>
15 #include <linux/kdev_t.h>
36 unsigned n =
MAJOR(dev + range - 1) -
MAJOR(dev) + 1;
49 for (i = 0; i <
n; i++, p++) {
58 for (i = 0, p -= n; i <
n; i++, p++, index++) {
59 struct probe **
s = &domain->
probes[index % 255];
60 while (*s && (*s)->range < range)
71 unsigned n =
MAJOR(dev + range - 1) -
MAJOR(dev) + 1;
74 struct probe *found =
NULL;
80 for (i = 0; i <
n; i++, index++) {
82 for (s = &domain->
probes[index % 255]; *s; s = &(*s)->next) {
84 if (p->dev == dev && p->range == range) {
100 unsigned long best = ~0
UL;
104 for (p = domain->
probes[
MAJOR(dev) % 255];
p; p = p->next) {
106 struct module *
owner;
109 if (p->dev > dev || p->dev + p->range - 1 < dev)
111 if (p->range - 1 >= best)
113 if (!try_module_get(p->owner))
119 *index = dev - p->dev;
120 if (p->lock && p->lock(dev, data) < 0) {
125 kobj = probe(dev, index, data);
142 if ((p ==
NULL) || (base ==
NULL)) {
150 base->get = base_probe;
151 for (i = 0; i < 255; i++)