Browse Source

deploy: da3dd34cd2b4e570a64707c0715b1ba1b6ad87d0

jserv 3 years ago
parent
commit
eea1c583dd
2 changed files with 44 additions and 42 deletions
  1. 22 21
      index.html
  2. 22 21
      lkmpg-for-ht.html

+ 22 - 21
index.html

@@ -296,7 +296,7 @@ module.
 <a id='x1-12042r18'></a><span class='ecrm-0500'>18</span><span class='ectt-0800'>}</span> 
 <a id='x1-12042r18'></a><span class='ecrm-0500'>18</span><span class='ectt-0800'>}</span> 
 <a id='x1-12044r19'></a><span class='ecrm-0500'>19</span> 
 <a id='x1-12044r19'></a><span class='ecrm-0500'>19</span> 
 <a id='x1-12046r20'></a><span class='ecrm-0500'>20</span><span class='ectt-0800'>MODULE_LICENSE(</span><span id='textcolor22'><span class='ectt-0800'>"GPL"</span></span><span class='ectt-0800'>);</span></pre>
 <a id='x1-12046r20'></a><span class='ecrm-0500'>20</span><span class='ectt-0800'>MODULE_LICENSE(</span><span id='textcolor22'><span class='ectt-0800'>"GPL"</span></span><span class='ectt-0800'>);</span></pre>
-<!-- l. 209 --><p class='indent'>   Now you will need a Makefile. If you copy and paste this, change the indentation
+<!-- l. 209 --><p class='indent'>   Now you will need a <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>Makefile</span></span></span>. If you copy and paste this, change the indentation
 to use <span class='ecti-1000'>tabs</span>, not spaces.
 to use <span class='ecti-1000'>tabs</span>, not spaces.
 </p><!-- l. 1 --><p class='indent'>
 </p><!-- l. 1 --><p class='indent'>
 </p>
 </p>
@@ -412,8 +412,8 @@ needed to include <span class='obeylines-h'><span class='verb'><span class='ectt
 </code> functions, as in the first hello world example, but these days you can name those anything you
 </code> functions, as in the first hello world example, but these days you can name those anything you
 want by using the <code>  <span class='ectt-1000'>module_init</span>
 want by using the <code>  <span class='ectt-1000'>module_init</span>
 </code> and <code>  <span class='ectt-1000'>module_exit</span>
 </code> and <code>  <span class='ectt-1000'>module_exit</span>
-</code> macros. These macros are defined in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/init.h</span></span></span>. The only requirement is that
-your init and cleanup functions must be defined before calling the those
+</code> macros. These macros are defined in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>include/linux/init.h</span></span></span>. The only requirement
+is that your init and cleanup functions must be defined before calling the those
 macros, otherwise you’ll get compilation errors. Here is an example of this
 macros, otherwise you’ll get compilation errors. Here is an example of this
 technique:
 technique:
 </p><!-- l. 1 --><p class='indent'>
 </p><!-- l. 1 --><p class='indent'>
@@ -456,13 +456,14 @@ is as simple as this:
                                                                   
                                                                   
 
 
                                                                   
                                                                   
-<!-- l. 329 --><p class='indent'>   Now have a look at <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/drivers/char/Makefile</span></span></span> for a real world example. As
-you can see, some things get hardwired into the kernel (<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-y</span></span></span>) but where are all
-those <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-m</span></span></span> gone? Those familiar with shell scripts will easily be able to spot them.
-For those not, the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-$(CONFIG_FOO)</span></span></span> entries you see everywhere expand into <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-y</span></span></span>
-or <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-m</span></span></span>, depending on whether the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>CONFIG_FOO</span></span></span> variable has been set to y or m.
-While we are at it, those were exactly the kind of variables that you have set in the
-<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/.config</span></span></span> file, the last time when you said make menuconfig or something like
+<!-- l. 329 --><p class='indent'>   Now have a look at <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>drivers/char/Makefile</span></span></span> for a real world example. As you
+can see, some things get hardwired into the kernel (<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-y</span></span></span>) but where are all those
+<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-m</span></span></span> gone? Those familiar with shell scripts will easily be able to spot them. For
+those not, the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-$(CONFIG_FOO)</span></span></span> entries you see everywhere expand into <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-y</span></span></span>
+or <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-m</span></span></span>, depending on whether the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>CONFIG_FOO</span></span></span> variable has been set to
+y or m. While we are at it, those were exactly the kind of variables that
+you have set in the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>.config</span></span></span> file in the top-level directory of Linux kernel
+source tree, the last time when you said make menuconfig or something like
 that.
 that.
 </p><!-- l. 335 --><p class='noindent'>
 </p><!-- l. 335 --><p class='noindent'>
 </p>
 </p>
@@ -482,9 +483,9 @@ like <code>  <span class='ectt-1000'>__init</span>
 </code>, has no effect for loadable modules. Again, if you consider when the cleanup function
 </code>, has no effect for loadable modules. Again, if you consider when the cleanup function
 runs, this makes complete sense; built-in drivers do not need a cleanup function,
 runs, this makes complete sense; built-in drivers do not need a cleanup function,
 while loadable modules do.
 while loadable modules do.
-</p><!-- l. 347 --><p class='indent'>   These macros are defined in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/init.h</span></span></span> and serve to free up kernel memory.
-When you boot your kernel and see something like Freeing unused kernel memory:
-236k freed, this is precisely what the kernel is freeing.
+</p><!-- l. 347 --><p class='indent'>   These macros are defined in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>include/linux/init.h</span></span></span> and serve to free up kernel
+memory. When you boot your kernel and see something like Freeing unused kernel
+memory: 236k freed, this is precisely what the kernel is freeing.
 </p><!-- l. 1 --><p class='indent'>
 </p><!-- l. 1 --><p class='indent'>
 </p>
 </p>
    <pre class='fancyvrb' id='fancyvrb21'><a id='x1-14007r1'></a><span class='ecrm-0500'>1</span><span id='textcolor56'><span class='ectt-0800'>/*</span></span> 
    <pre class='fancyvrb' id='fancyvrb21'><a id='x1-14007r1'></a><span class='ecrm-0500'>1</span><span id='textcolor56'><span class='ectt-0800'>/*</span></span> 
@@ -529,7 +530,7 @@ module license 'unspecified' taints kernel.
 </p><!-- l. 362 --><p class='indent'>   You can use a few macros to indicate the license for your module. Some examples
 </p><!-- l. 362 --><p class='indent'>   You can use a few macros to indicate the license for your module. Some examples
 are "GPL", "GPL v2", "GPL and additional rights", "Dual BSD/GPL", "Dual
 are "GPL", "GPL v2", "GPL and additional rights", "Dual BSD/GPL", "Dual
 MIT/GPL", "Dual MPL/GPL" and "Proprietary". They are defined within
 MIT/GPL", "Dual MPL/GPL" and "Proprietary". They are defined within
-<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/module.h</span></span></span>.
+<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>include/linux/module.h</span></span></span>.
 </p><!-- l. 366 --><p class='indent'>   To reference what license you’re using a macro is available called
 </p><!-- l. 366 --><p class='indent'>   To reference what license you’re using a macro is available called
 <code> <span class='ectt-1000'>MODULE_LICENSE</span>
 <code> <span class='ectt-1000'>MODULE_LICENSE</span>
 </code>. This and a few other macros describing the module are illustrated in the below
 </code>. This and a few other macros describing the module are illustrated in the below
@@ -843,11 +844,11 @@ tree: <code>  <span class='ectt-1000'>cp /boot/config-</span><span id='textcolo
 </code>.
 </code>.
 </p><!-- l. 522 --><p class='indent'>   Let’s focus again on the previous error message: a closer look at the version magic
 </p><!-- l. 522 --><p class='indent'>   Let’s focus again on the previous error message: a closer look at the version magic
 strings suggests that, even with two configuration files which are exactly the same, a
 strings suggests that, even with two configuration files which are exactly the same, a
-slight difference in the version magic could be possible, and it is sufficient to prevent
-insertion of the module into the kernel. That slight difference, namely the
-custom string which appears in the module’s version magic and not in the
-kernel’s one, is due to a modification with respect to the original, in the
-makefile that some distribution include. Then, examine your <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/Makefile</span></span></span>,
+slight difference in the version magic could be possible, and it is sufficient to
+prevent insertion of the module into the kernel. That slight difference, namely
+the custom string which appears in the module’s version magic and not in
+the kernel’s one, is due to a modification with respect to the original, in
+the makefile that some distribution include. Then, examine your <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>Makefile</span></span></span>,
 and make sure that the specified version information matches exactly the
 and make sure that the specified version information matches exactly the
 one used for your current kernel. For example, you makefile could start as
 one used for your current kernel. For example, you makefile could start as
 follows:
 follows:
@@ -1267,8 +1268,8 @@ syscalls is commonly named fops.
 </p><!-- l. 831 --><p class='noindent'>
 </p><!-- l. 831 --><p class='noindent'>
 </p>
 </p>
    <h4 class='subsectionHead' id='the-file-structure'><span class='titlemark'>0.6.2   </span> <a id='x1-280000.6.2'></a>The file structure</h4>
    <h4 class='subsectionHead' id='the-file-structure'><span class='titlemark'>0.6.2   </span> <a id='x1-280000.6.2'></a>The file structure</h4>
-<!-- l. 834 --><p class='noindent'>Each device is represented in the kernel by a file structure, which is defined
-in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/fs.h</span></span></span>. Be aware that a file is a kernel level structure and
+<!-- l. 834 --><p class='noindent'>Each device is represented in the kernel by a file structure, which is defined in
+<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>include/linux/fs.h</span></span></span>. Be aware that a file is a kernel level structure and
 never appears in a user space program. It is not the same thing as a
 never appears in a user space program. It is not the same thing as a
 <code> <span id='textcolor392'><span class='ectt-1000'>FILE</span></span>
 <code> <span id='textcolor392'><span class='ectt-1000'>FILE</span></span>
 </code>, which is defined by glibc and would never appear in a kernel space function. Also,
 </code>, which is defined by glibc and would never appear in a kernel space function. Also,

+ 22 - 21
lkmpg-for-ht.html

@@ -296,7 +296,7 @@ module.
 <a id='x1-12042r18'></a><span class='ecrm-0500'>18</span><span class='ectt-0800'>}</span> 
 <a id='x1-12042r18'></a><span class='ecrm-0500'>18</span><span class='ectt-0800'>}</span> 
 <a id='x1-12044r19'></a><span class='ecrm-0500'>19</span> 
 <a id='x1-12044r19'></a><span class='ecrm-0500'>19</span> 
 <a id='x1-12046r20'></a><span class='ecrm-0500'>20</span><span class='ectt-0800'>MODULE_LICENSE(</span><span id='textcolor22'><span class='ectt-0800'>"GPL"</span></span><span class='ectt-0800'>);</span></pre>
 <a id='x1-12046r20'></a><span class='ecrm-0500'>20</span><span class='ectt-0800'>MODULE_LICENSE(</span><span id='textcolor22'><span class='ectt-0800'>"GPL"</span></span><span class='ectt-0800'>);</span></pre>
-<!-- l. 209 --><p class='indent'>   Now you will need a Makefile. If you copy and paste this, change the indentation
+<!-- l. 209 --><p class='indent'>   Now you will need a <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>Makefile</span></span></span>. If you copy and paste this, change the indentation
 to use <span class='ecti-1000'>tabs</span>, not spaces.
 to use <span class='ecti-1000'>tabs</span>, not spaces.
 </p><!-- l. 1 --><p class='indent'>
 </p><!-- l. 1 --><p class='indent'>
 </p>
 </p>
@@ -412,8 +412,8 @@ needed to include <span class='obeylines-h'><span class='verb'><span class='ectt
 </code> functions, as in the first hello world example, but these days you can name those anything you
 </code> functions, as in the first hello world example, but these days you can name those anything you
 want by using the <code>  <span class='ectt-1000'>module_init</span>
 want by using the <code>  <span class='ectt-1000'>module_init</span>
 </code> and <code>  <span class='ectt-1000'>module_exit</span>
 </code> and <code>  <span class='ectt-1000'>module_exit</span>
-</code> macros. These macros are defined in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/init.h</span></span></span>. The only requirement is that
-your init and cleanup functions must be defined before calling the those
+</code> macros. These macros are defined in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>include/linux/init.h</span></span></span>. The only requirement
+is that your init and cleanup functions must be defined before calling the those
 macros, otherwise you’ll get compilation errors. Here is an example of this
 macros, otherwise you’ll get compilation errors. Here is an example of this
 technique:
 technique:
 </p><!-- l. 1 --><p class='indent'>
 </p><!-- l. 1 --><p class='indent'>
@@ -456,13 +456,14 @@ is as simple as this:
                                                                   
                                                                   
 
 
                                                                   
                                                                   
-<!-- l. 329 --><p class='indent'>   Now have a look at <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/drivers/char/Makefile</span></span></span> for a real world example. As
-you can see, some things get hardwired into the kernel (<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-y</span></span></span>) but where are all
-those <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-m</span></span></span> gone? Those familiar with shell scripts will easily be able to spot them.
-For those not, the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-$(CONFIG_FOO)</span></span></span> entries you see everywhere expand into <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-y</span></span></span>
-or <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-m</span></span></span>, depending on whether the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>CONFIG_FOO</span></span></span> variable has been set to y or m.
-While we are at it, those were exactly the kind of variables that you have set in the
-<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/.config</span></span></span> file, the last time when you said make menuconfig or something like
+<!-- l. 329 --><p class='indent'>   Now have a look at <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>drivers/char/Makefile</span></span></span> for a real world example. As you
+can see, some things get hardwired into the kernel (<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-y</span></span></span>) but where are all those
+<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-m</span></span></span> gone? Those familiar with shell scripts will easily be able to spot them. For
+those not, the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-$(CONFIG_FOO)</span></span></span> entries you see everywhere expand into <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-y</span></span></span>
+or <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>obj-m</span></span></span>, depending on whether the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>CONFIG_FOO</span></span></span> variable has been set to
+y or m. While we are at it, those were exactly the kind of variables that
+you have set in the <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>.config</span></span></span> file in the top-level directory of Linux kernel
+source tree, the last time when you said make menuconfig or something like
 that.
 that.
 </p><!-- l. 335 --><p class='noindent'>
 </p><!-- l. 335 --><p class='noindent'>
 </p>
 </p>
@@ -482,9 +483,9 @@ like <code>  <span class='ectt-1000'>__init</span>
 </code>, has no effect for loadable modules. Again, if you consider when the cleanup function
 </code>, has no effect for loadable modules. Again, if you consider when the cleanup function
 runs, this makes complete sense; built-in drivers do not need a cleanup function,
 runs, this makes complete sense; built-in drivers do not need a cleanup function,
 while loadable modules do.
 while loadable modules do.
-</p><!-- l. 347 --><p class='indent'>   These macros are defined in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/init.h</span></span></span> and serve to free up kernel memory.
-When you boot your kernel and see something like Freeing unused kernel memory:
-236k freed, this is precisely what the kernel is freeing.
+</p><!-- l. 347 --><p class='indent'>   These macros are defined in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>include/linux/init.h</span></span></span> and serve to free up kernel
+memory. When you boot your kernel and see something like Freeing unused kernel
+memory: 236k freed, this is precisely what the kernel is freeing.
 </p><!-- l. 1 --><p class='indent'>
 </p><!-- l. 1 --><p class='indent'>
 </p>
 </p>
    <pre class='fancyvrb' id='fancyvrb21'><a id='x1-14007r1'></a><span class='ecrm-0500'>1</span><span id='textcolor56'><span class='ectt-0800'>/*</span></span> 
    <pre class='fancyvrb' id='fancyvrb21'><a id='x1-14007r1'></a><span class='ecrm-0500'>1</span><span id='textcolor56'><span class='ectt-0800'>/*</span></span> 
@@ -529,7 +530,7 @@ module license 'unspecified' taints kernel.
 </p><!-- l. 362 --><p class='indent'>   You can use a few macros to indicate the license for your module. Some examples
 </p><!-- l. 362 --><p class='indent'>   You can use a few macros to indicate the license for your module. Some examples
 are "GPL", "GPL v2", "GPL and additional rights", "Dual BSD/GPL", "Dual
 are "GPL", "GPL v2", "GPL and additional rights", "Dual BSD/GPL", "Dual
 MIT/GPL", "Dual MPL/GPL" and "Proprietary". They are defined within
 MIT/GPL", "Dual MPL/GPL" and "Proprietary". They are defined within
-<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/module.h</span></span></span>.
+<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>include/linux/module.h</span></span></span>.
 </p><!-- l. 366 --><p class='indent'>   To reference what license you’re using a macro is available called
 </p><!-- l. 366 --><p class='indent'>   To reference what license you’re using a macro is available called
 <code> <span class='ectt-1000'>MODULE_LICENSE</span>
 <code> <span class='ectt-1000'>MODULE_LICENSE</span>
 </code>. This and a few other macros describing the module are illustrated in the below
 </code>. This and a few other macros describing the module are illustrated in the below
@@ -843,11 +844,11 @@ tree: <code>  <span class='ectt-1000'>cp /boot/config-</span><span id='textcolo
 </code>.
 </code>.
 </p><!-- l. 522 --><p class='indent'>   Let’s focus again on the previous error message: a closer look at the version magic
 </p><!-- l. 522 --><p class='indent'>   Let’s focus again on the previous error message: a closer look at the version magic
 strings suggests that, even with two configuration files which are exactly the same, a
 strings suggests that, even with two configuration files which are exactly the same, a
-slight difference in the version magic could be possible, and it is sufficient to prevent
-insertion of the module into the kernel. That slight difference, namely the
-custom string which appears in the module’s version magic and not in the
-kernel’s one, is due to a modification with respect to the original, in the
-makefile that some distribution include. Then, examine your <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/Makefile</span></span></span>,
+slight difference in the version magic could be possible, and it is sufficient to
+prevent insertion of the module into the kernel. That slight difference, namely
+the custom string which appears in the module’s version magic and not in
+the kernel’s one, is due to a modification with respect to the original, in
+the makefile that some distribution include. Then, examine your <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>Makefile</span></span></span>,
 and make sure that the specified version information matches exactly the
 and make sure that the specified version information matches exactly the
 one used for your current kernel. For example, you makefile could start as
 one used for your current kernel. For example, you makefile could start as
 follows:
 follows:
@@ -1267,8 +1268,8 @@ syscalls is commonly named fops.
 </p><!-- l. 831 --><p class='noindent'>
 </p><!-- l. 831 --><p class='noindent'>
 </p>
 </p>
    <h4 class='subsectionHead' id='the-file-structure'><span class='titlemark'>0.6.2   </span> <a id='x1-280000.6.2'></a>The file structure</h4>
    <h4 class='subsectionHead' id='the-file-structure'><span class='titlemark'>0.6.2   </span> <a id='x1-280000.6.2'></a>The file structure</h4>
-<!-- l. 834 --><p class='noindent'>Each device is represented in the kernel by a file structure, which is defined
-in <span class='obeylines-h'><span class='verb'><span class='ectt-1000'>linux/fs.h</span></span></span>. Be aware that a file is a kernel level structure and
+<!-- l. 834 --><p class='noindent'>Each device is represented in the kernel by a file structure, which is defined in
+<span class='obeylines-h'><span class='verb'><span class='ectt-1000'>include/linux/fs.h</span></span></span>. Be aware that a file is a kernel level structure and
 never appears in a user space program. It is not the same thing as a
 never appears in a user space program. It is not the same thing as a
 <code> <span id='textcolor392'><span class='ectt-1000'>FILE</span></span>
 <code> <span id='textcolor392'><span class='ectt-1000'>FILE</span></span>
 </code>, which is defined by glibc and would never appear in a kernel space function. Also,
 </code>, which is defined by glibc and would never appear in a kernel space function. Also,