mirror of
https://github.com/sysprog21/lkmpg.git
synced 2025-02-26 23:18:56 +08:00
deploy: 38586974ee3804d6061dd21165a5f78c1fba7aa4
This commit is contained in:
parent
6c9d84e6be
commit
ebf83112fb
12
index.html
12
index.html
@ -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.
|
||||
|
12
lkmpg.html
12
lkmpg.html
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user