deploy: 38586974ee3804d6061dd21165a5f78c1fba7aa4

This commit is contained in:
jserv 2021-08-04 18:42:21 +00:00
parent 6c9d84e6be
commit ebf83112fb
2 changed files with 12 additions and 12 deletions

View File

@ -1661,11 +1661,11 @@ the processes.
writing regular programs to run as processes, there is no need to worry about
segments. When you write a kernel module, normally you want to access
the kernel memory segment, which is handled automatically by the system.
However, when the content of a memory buffer needs to be passed between
the currently running process and the kernel, the kernel function receives a
pointer to the memory buffer which is in the process segment. The put_user
and get_user macros allow you to access that memory. These functions
handle only one caracter, you can handle several caracters with copy_to_user
However, when the content of a memory buffer needs to be passed between the
currently running process and the kernel, the kernel function receives a pointer
to the memory buffer which is in the process segment. The put_user and
get_user macros allow you to access that memory. These functions handle
only one character, you can handle several characters with copy_to_user
and copy_from_user. As the buffer (in read or write function) is in kernel
space, for write function you need to import data because it comes from
user space, but not for the read function because data is already in kernel
@ -1949,7 +1949,7 @@ and stop(). The <span class='obeylines-h'><span class='verb'><span class='ectt-1
file.
</p><!-- l. 1009 --><p class='indent'> A sequence begins with the call of the function start(). If the return is a non
NULL value, the function next() is called. This function is an iterator, the goal is to
go thought all the data. Each time next() is called, the function show() is also called.
go through all the data. Each time next() is called, the function show() is also called.
It writes data values in the buffer read by the user. The function next() is called until
it returns NULL. The sequence ends when next() returns NULL, then the function
stop() is called.

View File

@ -1661,11 +1661,11 @@ the processes.
writing regular programs to run as processes, there is no need to worry about
segments. When you write a kernel module, normally you want to access
the kernel memory segment, which is handled automatically by the system.
However, when the content of a memory buffer needs to be passed between
the currently running process and the kernel, the kernel function receives a
pointer to the memory buffer which is in the process segment. The put_user
and get_user macros allow you to access that memory. These functions
handle only one caracter, you can handle several caracters with copy_to_user
However, when the content of a memory buffer needs to be passed between the
currently running process and the kernel, the kernel function receives a pointer
to the memory buffer which is in the process segment. The put_user and
get_user macros allow you to access that memory. These functions handle
only one character, you can handle several characters with copy_to_user
and copy_from_user. As the buffer (in read or write function) is in kernel
space, for write function you need to import data because it comes from
user space, but not for the read function because data is already in kernel
@ -1949,7 +1949,7 @@ and stop(). The <span class='obeylines-h'><span class='verb'><span class='ectt-1
file.
</p><!-- l. 1009 --><p class='indent'> A sequence begins with the call of the function start(). If the return is a non
NULL value, the function next() is called. This function is an iterator, the goal is to
go thought all the data. Each time next() is called, the function show() is also called.
go through all the data. Each time next() is called, the function show() is also called.
It writes data values in the buffer read by the user. The function next() is called until
it returns NULL. The sequence ends when next() returns NULL, then the function
stop() is called.