[pso] intrebari tema 2 linux

Stefan Dumitrescu dumitrescu.stefan at gmail.com
Mon Apr 9 11:52:49 EEST 2007


salut

am si eu cateva intrebari despre tema 2 lin, nu am inteles prea bine din 
enunt cum trebuie sa functioneze programul.

in enunt e specificat asa:

    * rutinele de read/write sunt extrem de similare cu exemplul de
      device driver de tip caracter făcut la laborator; singura
      diferenţă e că trebuie să folosiţi două buffere, unul pentru read
      şi altul pentru write;
    * pentru citirea/scrierea datelelor în/din porturi nu trebuie să
      folosiţi funcţii amânabile (puteţi să faceţi totul din întrerupere)

eu am asa ( din exemplul de laborator ):
struct file_operations case_fops = {
.read = mread,
.write = mwrite, etc...

la testele de read si write se apeleaza functiile mele mread si 
mwrite(aka printk "sunt in mread").
acum, ce inseamna sa fie blocante (daca nu am date in buffer sa ramana 
acolo pana cand?) ? de ce am nevoie de doua buffere separate?

mai sus spune ca pot sa fac totul (read write) din intrerupere?! eu am 
am request-uit un irq la care am pus un handler ca sa treaca testul de 
irq, dar nu prea inteleg la ce il folosesc, din moment ce read write si 
ioctl le fac din file_operations? sau exact mread si mwrite sunt 
considerate ca handlerele de intreruperi??

si in final, in teste am vazut ca am write in com1 si read din com2. ele 
nu ar trebui sa fie separate? ce treaba are com1 cu com2? sa inteleg ca 
ele au un buffer general pt comx din driverul meu, sau fiecare comx e cu 
bufferele sale?

test(do_write(com1, wb, BUFFER_SIZE) == 0, "write %s", com1_path);
test(do_read(com2, rb, BUFFER_SIZE) == 0, "read %s", com2_path);

dupa care verifica rb cu wb sa fie egale.

mi-e clar ca eu nu inteleg prea bine problema si ce ar trebui sa faca, 
dar tind sa cred ca din enunt nu se intelege, presupun ca nu sunt 
singurul in situatia asta :)

as vrea si eu in enunt daca se poate o explicatie mai clara (mai 
detaliata) la ce trebuie sa faca problema.

mersi

stefan




More information about the pso mailing list