Message ID | 20241031-generate_syscalls-v8-4-8e35a9d6783b@suse.com |
---|---|
State | New |
Headers | show |
Series | Automatically generate syscalls.h | expand |
Hi! > Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com> > --- > doc/developers/test_case_tutorial.rst | 27 ++++++++++++++------------- > 1 file changed, 14 insertions(+), 13 deletions(-) > > diff --git a/doc/developers/test_case_tutorial.rst b/doc/developers/test_case_tutorial.rst > index be9a0ea8bac1d690b4ed4879d110f87c3f2a381a..b48ea4a7a3594266466fcca364f5d0ff1e42d235 100644 > --- a/doc/developers/test_case_tutorial.rst > +++ b/doc/developers/test_case_tutorial.rst > @@ -302,24 +302,25 @@ for a distribution's C library version to be older than its kernel or it may use > cut down C library in comparison to the GNU one. So we must call ``statx()`` > using the general ``syscall()`` interface. > > -The LTP contains a library for dealing with the ``syscall`` interface, which is > +LTP contains a library for dealing with the ``syscall`` interface, which is > located in :master:`include/lapi`. System call numbers are listed against the relevant > call in the ``*.in`` files (e.g. ``x86_64.in``) which are used to generate > -``syscalls.h``, which is the header you should include. On rare occasions you > -may find the system call number is missing from the ``*.in`` files and will need > -to add it (see :master:`include/lapi/syscalls/strip_syscall.awk`). > +``syscalls.h``, the header you should include. > > -System call numbers vary between architectures, hence there are multiple > -``*.in`` files for each architecture. I would keep this sentence in there, probably as a last sentence in the upper paragraph. > - You can find the various values for the > -``statx`` system call across a number of ``unistd.h`` files in the Linux kernel. > +On rare occasions, you may find that system call number is missing from ``*.in`` > +files. In these cases, they will need to be updated using > +`include/lapi/syscalls/generate_arch.sh` script as following: ^ Just `generate_arch.sh` here, we list the full path in the code block, no need to repeat it here as well. > -Note that we don't use the system-call-identifier value available in > -``/usr/include/linux/uinstd.h`` because the kernel might be much newer than the > -user land development packages. > +.. code-block:: bash > + > + $ include/lapi/syscalls/generate_arch.sh /path/of/linux/sources ^ to > +The script will generate all the needed ``*.in`` files according to the Linux ^ accordingly > +source code which has been used. Make sure that your Linux source code has > +been updated to the latest version. > > -For ``statx`` we had to add ``statx 332`` to :master:`include/lapi/syscalls/x86_64.in`, > -``statx 383`` to :master:`include/lapi/syscalls/powerpc.in`, etc. Now lets look at > -the code, which I will explain in more detail further down. > +Once the new syscalls files have been updated, to rebuild our ``syscalls.h`` > +file, please use ``./configure`` command. ^ ^ re-run script
diff --git a/doc/developers/test_case_tutorial.rst b/doc/developers/test_case_tutorial.rst index be9a0ea8bac1d690b4ed4879d110f87c3f2a381a..b48ea4a7a3594266466fcca364f5d0ff1e42d235 100644 --- a/doc/developers/test_case_tutorial.rst +++ b/doc/developers/test_case_tutorial.rst @@ -302,24 +302,25 @@ for a distribution's C library version to be older than its kernel or it may use cut down C library in comparison to the GNU one. So we must call ``statx()`` using the general ``syscall()`` interface. -The LTP contains a library for dealing with the ``syscall`` interface, which is +LTP contains a library for dealing with the ``syscall`` interface, which is located in :master:`include/lapi`. System call numbers are listed against the relevant call in the ``*.in`` files (e.g. ``x86_64.in``) which are used to generate -``syscalls.h``, which is the header you should include. On rare occasions you -may find the system call number is missing from the ``*.in`` files and will need -to add it (see :master:`include/lapi/syscalls/strip_syscall.awk`). +``syscalls.h``, the header you should include. -System call numbers vary between architectures, hence there are multiple -``*.in`` files for each architecture. You can find the various values for the -``statx`` system call across a number of ``unistd.h`` files in the Linux kernel. +On rare occasions, you may find that system call number is missing from ``*.in`` +files. In these cases, they will need to be updated using +`include/lapi/syscalls/generate_arch.sh` script as following: -Note that we don't use the system-call-identifier value available in -``/usr/include/linux/uinstd.h`` because the kernel might be much newer than the -user land development packages. +.. code-block:: bash + + $ include/lapi/syscalls/generate_arch.sh /path/of/linux/sources + +The script will generate all the needed ``*.in`` files according to the Linux +source code which has been used. Make sure that your Linux source code has +been updated to the latest version. -For ``statx`` we had to add ``statx 332`` to :master:`include/lapi/syscalls/x86_64.in`, -``statx 383`` to :master:`include/lapi/syscalls/powerpc.in`, etc. Now lets look at -the code, which I will explain in more detail further down. +Once the new syscalls files have been updated, to rebuild our ``syscalls.h`` +file, please use ``./configure`` command. .. code-block:: c