diff --git a/index.html b/index.html index e19e5b4..17aefe2 100644 --- a/index.html +++ b/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 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. diff --git a/lkmpg.html b/lkmpg.html index e19e5b4..17aefe2 100644 --- a/lkmpg.html +++ b/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 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.