<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:278682913;
        mso-list-type:hybrid;
        mso-list-template-ids:722349852 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:"Times New Roman";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-bidi-font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-bidi-font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-bidi-font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-bidi-font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-bidi-font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span lang=RO>Bazându-mă pe codul sursă test.c:<o:p></o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'><span lang=RO>La insmod/rmmod trebuie să fie luate major, minorii, ioports și întreruperile corespunzător, indiferent de orice configurație suplimentară prin IOCTL.</span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'><span lang=RO>Hardware-ul pornește cu niște defaulturi sane. Dacă ai nevoie să îți păstrezi propriile structuri de date cu aceste informații, le poți inițializa astfel încât să reflecte defaultul din hardware. Pagina cu tabela de registre dă toate valorile implicite de acolo.</span></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'><span lang=RO>(De observat că checkerul va apela întotdeauna IOCTL la începutul testului, iar întreruperile hardware le poți dezactiva până în acel moment; deci cred că poți să dai -EINVAL la toate operațiile până la primul IOCTL și nu se supără nimeni)</span></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:so2@cursuri.cs.pub.ro">Andreea Mitran via so2</a><br><b>Sent: </b>Thursday, April 2, 2020 4:18 PM<br><b>To: </b><a href="mailto:so2@cursuri.cs.pub.ro">so2@cursuri.cs.pub.ro</a><br><b>Subject: </b>[so2] [Tema2] Operație IOCTL</p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Salutare,</p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Din ce am înțeles din inspectarea enunțului și a header-ului pus la dispoziție, pentru IOCTL vom primi o adresă pentru o structură uart16550_line_info, pentru a configura linia.</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Întrebarea mea este: până la primirea parametrilor de configurare de la IOCTL cum se comportă char device-urile? Ele trebuie înregistrate la inițializare, când se realizează insmod, sau după ce am primit parametri?</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>În cazul în care ele trebuie înregistrate atunci când este încărcat modulul de kernel cu insmod, cum se comportă mai exact device-urile și ce ar trebui să fac cu apelurile interceptate din user space?</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Mulțumesc,</p></div></div><p class=MsoNormal>Andreea</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>