Skip to content

Commit

Permalink
docs: early-userspace: convert docs to ReST and rename to *.rst
Browse files Browse the repository at this point in the history
The two files there describes a Kernel API feature, used to
support early userspace stuff. Prepare for moving them to
the kernel API book by converting to ReST format.

The conversion itself was quite trivial: just add/mark a few
titles as such, add a literal block markup, add a table markup
and a few blank lines, in order to make Sphinx to properly parse it.

At its new index.rst, let's add a :orphan: while this is not linked to
the main index.rst file, in order to avoid build warnings.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
  • Loading branch information
mchehab committed Jul 15, 2019
1 parent 93d2c15 commit 0d07cf5
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
initramfs buffer format
-----------------------
=======================
initramfs buffer format
=======================

Al Viro, H. Peter Anvin
Last revision: 2002-01-13
Al Viro, H. Peter Anvin

Last revision: 2002-01-13

Starting with kernel 2.5.x, the old "initial ramdisk" protocol is
getting {replaced/complemented} with the new "initial ramfs"
Expand All @@ -18,7 +20,8 @@ archive can be compressed using gzip(1). One valid version of an
initramfs buffer is thus a single .cpio.gz file.

The full format of the initramfs buffer is defined by the following
grammar, where:
grammar, where::

* is used to indicate "0 or more occurrences of"
(|) indicates alternatives
+ indicates concatenation
Expand Down Expand Up @@ -49,7 +52,9 @@ hexadecimal ASCII numbers fully padded with '0' on the left to the
full width of the field, for example, the integer 4780 is represented
by the ASCII string "000012ac"):

============= ================== ==============================================
Field name Field size Meaning
============= ================== ==============================================
c_magic 6 bytes The string "070701" or "070702"
c_ino 8 bytes File inode number
c_mode 8 bytes File mode and permissions
Expand All @@ -65,6 +70,7 @@ c_rmin 8 bytes Minor part of device node reference
c_namesize 8 bytes Length of filename, including final \0
c_chksum 8 bytes Checksum of data field if c_magic is 070702;
otherwise zero
============= ================== ==============================================

The c_mode field matches the contents of st_mode returned by stat(2)
on Linux, and encodes the file type and file permissions.
Expand All @@ -82,7 +88,8 @@ If the filename is "TRAILER!!!" this is actually an end-of-archive
marker; the c_filesize for an end-of-archive marker must be zero.


*** Handling of hard links
Handling of hard links
======================

When a nondirectory with c_nlink > 1 is seen, the (c_maj,c_min,c_ino)
tuple is looked up in a tuple buffer. If not found, it is entered in
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
=======================
Early userspace support
=======================

Expand Down Expand Up @@ -26,6 +27,7 @@ archive to be used as the image or have the kernel build process build
the image from specifications.

CPIO ARCHIVE method
-------------------

You can create a cpio archive that contains the early userspace image.
Your cpio archive should be specified in CONFIG_INITRAMFS_SOURCE and it
Expand All @@ -34,6 +36,7 @@ CONFIG_INITRAMFS_SOURCE and directory and file names are not allowed in
combination with a cpio archive.

IMAGE BUILDING method
---------------------

The kernel build process can also build an early userspace image from
source parts rather than supplying a cpio archive. This method provides
Expand Down
18 changes: 18 additions & 0 deletions Documentation/early-userspace/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
:orphan:

===============
Early Userspace
===============

.. toctree::
:maxdepth: 1

early_userspace_support
buffer-format

.. only:: subproject and html

Indices
=======

* :ref:`genindex`
2 changes: 1 addition & 1 deletion Documentation/filesystems/nfs/nfsroot.txt
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ rdinit=<executable file>
A description of the process of mounting the root file system can be
found in:

Documentation/early-userspace/README
Documentation/early-userspace/early_userspace_support.rst



Expand Down
4 changes: 2 additions & 2 deletions Documentation/filesystems/ramfs-rootfs-initramfs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ All this differs from the old initrd in several ways:
- The old initrd file was a gzipped filesystem image (in some file format,
such as ext2, that needed a driver built into the kernel), while the new
initramfs archive is a gzipped cpio archive (like tar only simpler,
see cpio(1) and Documentation/early-userspace/buffer-format.txt). The
see cpio(1) and Documentation/early-userspace/buffer-format.rst). The
kernel's cpio extraction code is not only extremely small, it's also
__init text and data that can be discarded during the boot process.

Expand Down Expand Up @@ -159,7 +159,7 @@ One advantage of the configuration file is that root access is not required to
set permissions or create device nodes in the new archive. (Note that those
two example "file" entries expect to find files named "init.sh" and "busybox" in
a directory called "initramfs", under the linux-2.6.* directory. See
Documentation/early-userspace/README for more details.)
Documentation/early-userspace/early_userspace_support.rst for more details.)

The kernel does not depend on external cpio tools. If you specify a
directory instead of a configuration file, the kernel's build infrastructure
Expand Down
2 changes: 1 addition & 1 deletion usr/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ config INITRAMFS_SOURCE
When multiple directories and files are specified then the
initramfs image will be the aggregate of all of them.

See <file:Documentation/early-userspace/README> for more details.
See <file:Documentation/early-userspace/early_userspace_support.rst> for more details.

If you are not sure, leave it blank.

Expand Down

0 comments on commit 0d07cf5

Please sign in to comment.