Skip to content

Commit

Permalink
deploy: 1fc5305
Browse files Browse the repository at this point in the history
  • Loading branch information
jserv committed Oct 6, 2024
1 parent cefcf57 commit efbe240
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 40 deletions.
39 changes: 19 additions & 20 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<h2 class='titleHead'>The Linux Kernel Module Programming Guide</h2>
<div class='author'><span class='ecrm-1200'>Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang</span></div><br />
<div class='date'><span class='ecrm-1200'>October 5, 2024</span></div>
<div class='date'><span class='ecrm-1200'>October 6, 2024</span></div>



Expand Down Expand Up @@ -1947,25 +1947,24 @@ <h3 class='sectionHead' id='the-proc-file-system'><span class='titlemark'>7 </
<a id='x1-33107r48'></a><span class='ecrm-0500'>48</span><span class='ectt-0800'>{</span>
<a id='x1-33109r49'></a><span class='ecrm-0500'>49</span><span class='ectt-0800'>    our_proc_file = proc_create(procfs_name, 0644, NULL, &amp;proc_file_fops);</span>
<a id='x1-33111r50'></a><span class='ecrm-0500'>50</span><span class='ectt-0800'>    </span><span id='textcolor637'><span class='ectt-0800'>if</span></span><span class='ectt-0800'> (NULL == our_proc_file) {</span>
<a id='x1-33113r51'></a><span class='ecrm-0500'>51</span><span class='ectt-0800'>        proc_remove(our_proc_file);</span>
<a id='x1-33115r52'></a><span class='ecrm-0500'>52</span><span class='ectt-0800'>        pr_alert(</span><span id='textcolor638'><span class='ectt-0800'>"Error:Could not initialize /proc/%s</span></span><span id='textcolor639'><span class='ectt-0800'>\n</span></span><span id='textcolor640'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33117r53'></a><span class='ecrm-0500'>53</span><span class='ectt-0800'>        </span><span id='textcolor641'><span class='ectt-0800'>return</span></span><span class='ectt-0800'> -ENOMEM;</span>
<a id='x1-33119r54'></a><span class='ecrm-0500'>54</span><span class='ectt-0800'>    }</span>
<a id='x1-33121r55'></a><span class='ecrm-0500'>55</span>
<a id='x1-33123r56'></a><span class='ecrm-0500'>56</span><span class='ectt-0800'>    pr_info(</span><span id='textcolor642'><span class='ectt-0800'>"/proc/%s created</span></span><span id='textcolor643'><span class='ectt-0800'>\n</span></span><span id='textcolor644'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33125r57'></a><span class='ecrm-0500'>57</span><span class='ectt-0800'>    </span><span id='textcolor645'><span class='ectt-0800'>return</span></span><span class='ectt-0800'> 0;</span>
<a id='x1-33127r58'></a><span class='ecrm-0500'>58</span><span class='ectt-0800'>}</span>
<a id='x1-33129r59'></a><span class='ecrm-0500'>59</span>
<a id='x1-33131r60'></a><span class='ecrm-0500'>60</span><span id='textcolor646'><span class='ectt-0800'>static</span></span><span class='ectt-0800'> </span><span id='textcolor647'><span class='ectt-0800'>void</span></span><span class='ectt-0800'> __exit procfs1_exit(</span><span id='textcolor648'><span class='ectt-0800'>void</span></span><span class='ectt-0800'>)</span>
<a id='x1-33133r61'></a><span class='ecrm-0500'>61</span><span class='ectt-0800'>{</span>
<a id='x1-33135r62'></a><span class='ecrm-0500'>62</span><span class='ectt-0800'>    proc_remove(our_proc_file);</span>
<a id='x1-33137r63'></a><span class='ecrm-0500'>63</span><span class='ectt-0800'>    pr_info(</span><span id='textcolor649'><span class='ectt-0800'>"/proc/%s removed</span></span><span id='textcolor650'><span class='ectt-0800'>\n</span></span><span id='textcolor651'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33139r64'></a><span class='ecrm-0500'>64</span><span class='ectt-0800'>}</span>
<a id='x1-33141r65'></a><span class='ecrm-0500'>65</span>
<a id='x1-33143r66'></a><span class='ecrm-0500'>66</span><span class='ectt-0800'>module_init(procfs1_init);</span>
<a id='x1-33145r67'></a><span class='ecrm-0500'>67</span><span class='ectt-0800'>module_exit(procfs1_exit);</span>
<a id='x1-33147r68'></a><span class='ecrm-0500'>68</span>
<a id='x1-33149r69'></a><span class='ecrm-0500'>69</span><span class='ectt-0800'>MODULE_LICENSE(</span><span id='textcolor652'><span class='ectt-0800'>"GPL"</span></span><span class='ectt-0800'>);</span></pre>
<a id='x1-33113r51'></a><span class='ecrm-0500'>51</span><span class='ectt-0800'>        pr_alert(</span><span id='textcolor638'><span class='ectt-0800'>"Error:Could not initialize /proc/%s</span></span><span id='textcolor639'><span class='ectt-0800'>\n</span></span><span id='textcolor640'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33115r52'></a><span class='ecrm-0500'>52</span><span class='ectt-0800'>        </span><span id='textcolor641'><span class='ectt-0800'>return</span></span><span class='ectt-0800'> -ENOMEM;</span>
<a id='x1-33117r53'></a><span class='ecrm-0500'>53</span><span class='ectt-0800'>    }</span>
<a id='x1-33119r54'></a><span class='ecrm-0500'>54</span>
<a id='x1-33121r55'></a><span class='ecrm-0500'>55</span><span class='ectt-0800'>    pr_info(</span><span id='textcolor642'><span class='ectt-0800'>"/proc/%s created</span></span><span id='textcolor643'><span class='ectt-0800'>\n</span></span><span id='textcolor644'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33123r56'></a><span class='ecrm-0500'>56</span><span class='ectt-0800'>    </span><span id='textcolor645'><span class='ectt-0800'>return</span></span><span class='ectt-0800'> 0;</span>
<a id='x1-33125r57'></a><span class='ecrm-0500'>57</span><span class='ectt-0800'>}</span>
<a id='x1-33127r58'></a><span class='ecrm-0500'>58</span>
<a id='x1-33129r59'></a><span class='ecrm-0500'>59</span><span id='textcolor646'><span class='ectt-0800'>static</span></span><span class='ectt-0800'> </span><span id='textcolor647'><span class='ectt-0800'>void</span></span><span class='ectt-0800'> __exit procfs1_exit(</span><span id='textcolor648'><span class='ectt-0800'>void</span></span><span class='ectt-0800'>)</span>
<a id='x1-33131r60'></a><span class='ecrm-0500'>60</span><span class='ectt-0800'>{</span>
<a id='x1-33133r61'></a><span class='ecrm-0500'>61</span><span class='ectt-0800'>    proc_remove(our_proc_file);</span>
<a id='x1-33135r62'></a><span class='ecrm-0500'>62</span><span class='ectt-0800'>    pr_info(</span><span id='textcolor649'><span class='ectt-0800'>"/proc/%s removed</span></span><span id='textcolor650'><span class='ectt-0800'>\n</span></span><span id='textcolor651'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33137r63'></a><span class='ecrm-0500'>63</span><span class='ectt-0800'>}</span>
<a id='x1-33139r64'></a><span class='ecrm-0500'>64</span>
<a id='x1-33141r65'></a><span class='ecrm-0500'>65</span><span class='ectt-0800'>module_init(procfs1_init);</span>
<a id='x1-33143r66'></a><span class='ecrm-0500'>66</span><span class='ectt-0800'>module_exit(procfs1_exit);</span>
<a id='x1-33145r67'></a><span class='ecrm-0500'>67</span>
<a id='x1-33147r68'></a><span class='ecrm-0500'>68</span><span class='ectt-0800'>MODULE_LICENSE(</span><span id='textcolor652'><span class='ectt-0800'>"GPL"</span></span><span class='ectt-0800'>);</span></pre>
<!-- l. 1174 --><p class='noindent'>
</p>
<h4 class='subsectionHead' id='the-procops-structure'><span class='titlemark'>7.1 </span> <a id='x1-340007.1'></a>The proc_ops Structure</h4>
Expand Down
39 changes: 19 additions & 20 deletions lkmpg-for-ht.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<h2 class='titleHead'>The Linux Kernel Module Programming Guide</h2>
<div class='author'><span class='ecrm-1200'>Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang</span></div><br />
<div class='date'><span class='ecrm-1200'>October 5, 2024</span></div>
<div class='date'><span class='ecrm-1200'>October 6, 2024</span></div>



Expand Down Expand Up @@ -1947,25 +1947,24 @@ <h3 class='sectionHead' id='the-proc-file-system'><span class='titlemark'>7 </
<a id='x1-33107r48'></a><span class='ecrm-0500'>48</span><span class='ectt-0800'>{</span>
<a id='x1-33109r49'></a><span class='ecrm-0500'>49</span><span class='ectt-0800'>    our_proc_file = proc_create(procfs_name, 0644, NULL, &amp;proc_file_fops);</span>
<a id='x1-33111r50'></a><span class='ecrm-0500'>50</span><span class='ectt-0800'>    </span><span id='textcolor637'><span class='ectt-0800'>if</span></span><span class='ectt-0800'> (NULL == our_proc_file) {</span>
<a id='x1-33113r51'></a><span class='ecrm-0500'>51</span><span class='ectt-0800'>        proc_remove(our_proc_file);</span>
<a id='x1-33115r52'></a><span class='ecrm-0500'>52</span><span class='ectt-0800'>        pr_alert(</span><span id='textcolor638'><span class='ectt-0800'>"Error:Could not initialize /proc/%s</span></span><span id='textcolor639'><span class='ectt-0800'>\n</span></span><span id='textcolor640'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33117r53'></a><span class='ecrm-0500'>53</span><span class='ectt-0800'>        </span><span id='textcolor641'><span class='ectt-0800'>return</span></span><span class='ectt-0800'> -ENOMEM;</span>
<a id='x1-33119r54'></a><span class='ecrm-0500'>54</span><span class='ectt-0800'>    }</span>
<a id='x1-33121r55'></a><span class='ecrm-0500'>55</span>
<a id='x1-33123r56'></a><span class='ecrm-0500'>56</span><span class='ectt-0800'>    pr_info(</span><span id='textcolor642'><span class='ectt-0800'>"/proc/%s created</span></span><span id='textcolor643'><span class='ectt-0800'>\n</span></span><span id='textcolor644'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33125r57'></a><span class='ecrm-0500'>57</span><span class='ectt-0800'>    </span><span id='textcolor645'><span class='ectt-0800'>return</span></span><span class='ectt-0800'> 0;</span>
<a id='x1-33127r58'></a><span class='ecrm-0500'>58</span><span class='ectt-0800'>}</span>
<a id='x1-33129r59'></a><span class='ecrm-0500'>59</span>
<a id='x1-33131r60'></a><span class='ecrm-0500'>60</span><span id='textcolor646'><span class='ectt-0800'>static</span></span><span class='ectt-0800'> </span><span id='textcolor647'><span class='ectt-0800'>void</span></span><span class='ectt-0800'> __exit procfs1_exit(</span><span id='textcolor648'><span class='ectt-0800'>void</span></span><span class='ectt-0800'>)</span>
<a id='x1-33133r61'></a><span class='ecrm-0500'>61</span><span class='ectt-0800'>{</span>
<a id='x1-33135r62'></a><span class='ecrm-0500'>62</span><span class='ectt-0800'>    proc_remove(our_proc_file);</span>
<a id='x1-33137r63'></a><span class='ecrm-0500'>63</span><span class='ectt-0800'>    pr_info(</span><span id='textcolor649'><span class='ectt-0800'>"/proc/%s removed</span></span><span id='textcolor650'><span class='ectt-0800'>\n</span></span><span id='textcolor651'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33139r64'></a><span class='ecrm-0500'>64</span><span class='ectt-0800'>}</span>
<a id='x1-33141r65'></a><span class='ecrm-0500'>65</span>
<a id='x1-33143r66'></a><span class='ecrm-0500'>66</span><span class='ectt-0800'>module_init(procfs1_init);</span>
<a id='x1-33145r67'></a><span class='ecrm-0500'>67</span><span class='ectt-0800'>module_exit(procfs1_exit);</span>
<a id='x1-33147r68'></a><span class='ecrm-0500'>68</span>
<a id='x1-33149r69'></a><span class='ecrm-0500'>69</span><span class='ectt-0800'>MODULE_LICENSE(</span><span id='textcolor652'><span class='ectt-0800'>"GPL"</span></span><span class='ectt-0800'>);</span></pre>
<a id='x1-33113r51'></a><span class='ecrm-0500'>51</span><span class='ectt-0800'>        pr_alert(</span><span id='textcolor638'><span class='ectt-0800'>"Error:Could not initialize /proc/%s</span></span><span id='textcolor639'><span class='ectt-0800'>\n</span></span><span id='textcolor640'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33115r52'></a><span class='ecrm-0500'>52</span><span class='ectt-0800'>        </span><span id='textcolor641'><span class='ectt-0800'>return</span></span><span class='ectt-0800'> -ENOMEM;</span>
<a id='x1-33117r53'></a><span class='ecrm-0500'>53</span><span class='ectt-0800'>    }</span>
<a id='x1-33119r54'></a><span class='ecrm-0500'>54</span>
<a id='x1-33121r55'></a><span class='ecrm-0500'>55</span><span class='ectt-0800'>    pr_info(</span><span id='textcolor642'><span class='ectt-0800'>"/proc/%s created</span></span><span id='textcolor643'><span class='ectt-0800'>\n</span></span><span id='textcolor644'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33123r56'></a><span class='ecrm-0500'>56</span><span class='ectt-0800'>    </span><span id='textcolor645'><span class='ectt-0800'>return</span></span><span class='ectt-0800'> 0;</span>
<a id='x1-33125r57'></a><span class='ecrm-0500'>57</span><span class='ectt-0800'>}</span>
<a id='x1-33127r58'></a><span class='ecrm-0500'>58</span>
<a id='x1-33129r59'></a><span class='ecrm-0500'>59</span><span id='textcolor646'><span class='ectt-0800'>static</span></span><span class='ectt-0800'> </span><span id='textcolor647'><span class='ectt-0800'>void</span></span><span class='ectt-0800'> __exit procfs1_exit(</span><span id='textcolor648'><span class='ectt-0800'>void</span></span><span class='ectt-0800'>)</span>
<a id='x1-33131r60'></a><span class='ecrm-0500'>60</span><span class='ectt-0800'>{</span>
<a id='x1-33133r61'></a><span class='ecrm-0500'>61</span><span class='ectt-0800'>    proc_remove(our_proc_file);</span>
<a id='x1-33135r62'></a><span class='ecrm-0500'>62</span><span class='ectt-0800'>    pr_info(</span><span id='textcolor649'><span class='ectt-0800'>"/proc/%s removed</span></span><span id='textcolor650'><span class='ectt-0800'>\n</span></span><span id='textcolor651'><span class='ectt-0800'>"</span></span><span class='ectt-0800'>, procfs_name);</span>
<a id='x1-33137r63'></a><span class='ecrm-0500'>63</span><span class='ectt-0800'>}</span>
<a id='x1-33139r64'></a><span class='ecrm-0500'>64</span>
<a id='x1-33141r65'></a><span class='ecrm-0500'>65</span><span class='ectt-0800'>module_init(procfs1_init);</span>
<a id='x1-33143r66'></a><span class='ecrm-0500'>66</span><span class='ectt-0800'>module_exit(procfs1_exit);</span>
<a id='x1-33145r67'></a><span class='ecrm-0500'>67</span>
<a id='x1-33147r68'></a><span class='ecrm-0500'>68</span><span class='ectt-0800'>MODULE_LICENSE(</span><span id='textcolor652'><span class='ectt-0800'>"GPL"</span></span><span class='ectt-0800'>);</span></pre>
<!-- l. 1174 --><p class='noindent'>
</p>
<h4 class='subsectionHead' id='the-procops-structure'><span class='titlemark'>7.1 </span> <a id='x1-340007.1'></a>The proc_ops Structure</h4>
Expand Down

0 comments on commit efbe240

Please sign in to comment.