[pso] Re: request si minor

Adrian - Razvan Deaconescu pso@cursuri.cs.pub.ro
Sat, 16 Apr 2005 10:26:59 +0300


>   Am urmatoarea problema : in functia de tratare a
> request-urilor vreau sa extrag request-urile din coada
> si
> sa le introduc intr-o coada specifica fiecarui device
> , dar trebuie sa stiu carui device ii este adresat
> request-ul . Cum pot afla pentru un request minorul ?
> In 2.4 era ceva de genul MINOR(req->rq_dev) dar in 2.6
>  s-a schimbat structura request-ului .

Salut,
nu e nevoie sa afli minorul. Un element extras din coada de cereri a
device-ului este de tip struct request *. Acest element are un camp
rq_disk. Acest camp este chiar un element struct gendisk * (generic
disk-ul specific 2.6 pentru lucrul cu block device-uri); este neaparat
necesar sa ai un element de acest tip asociat device-ului. El mai
contine un camp private_data ( big surprise :-) ) in care ar trebui sa
stochezi adresa structurii asociate dispozitivului.
In acest fel vei putea afla structura asociata dispozitivului (si tot
ce-ti trebuie) folosind o instructiune de forma: mydev =3D
req->rq_disk->private_data.

Toate astea sunt destul de bine explicate in pdf-ul de pe site (cap 16
- LDD 3ed)

Toate cele bune,
Razvan