Developers doc: fix all Sphinx generation warnings
This commit is contained in:
@@ -93,8 +93,8 @@ Where fs.img is the file system image we created from linux kernel.
|
|||||||
Test directly inside Haiku
|
Test directly inside Haiku
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
First build a version of haiku with XFS support, to do this we need to add "xfs" to the image
|
First build a version of haiku with XFS support, to do this we need to add "xfs" to the `image
|
||||||
definition `here <https://git.haiku-os.org/haiku/tree/build/jam/images/definitions/minimum#n239>`__.
|
definition <https://git.haiku-os.org/haiku/tree/build/jam/images/definitions/minimum#n239>`__.
|
||||||
|
|
||||||
Then compile haiku as usual and run the resulting system in a virtual machine or on real hardware.
|
Then compile haiku as usual and run the resulting system in a virtual machine or on real hardware.
|
||||||
|
|
||||||
@@ -117,54 +117,53 @@ To be updated
|
|||||||
Haiku XFS API
|
Haiku XFS API
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
* | All the necessary hooks for file system like xfs_mount(), open_dir(), read_dir() etc..
|
All the necessary hooks for file system like xfs_mount(), open_dir(), read_dir() etc.. are
|
||||||
are implemented inside **kernel_interface.cpp** file.
|
implemented in the **kernel_interface.cpp** file. It acts as an interface between the Haiku kernel
|
||||||
| It acts as an interface between Haiku kernel and XFS file system.
|
and the XFS file system. Documentation for all necessary file system hooks can be found
|
||||||
| Documentation for all necessary file system hooks can be found
|
`in the API reference <https://www.haiku-os.org/docs/api/fs_modules.html>`_
|
||||||
`here <https://www.haiku-os.org/docs/api/fs_modules.html>`_
|
|
||||||
|
|
|
||||||
|
|
||||||
* | Whenever we run a file system under fs_shell we can't use system headers,
|
Whenever we run a file system under fs_shell we can't use system headers, fs_shell compatible
|
||||||
fs_shell compatible headers are there which needs to be used whenever we try
|
headers are there which needs to be used whenever we try to mount XFS file system using xfs_shell.
|
||||||
to mount XFS file system using xfs_shell.
|
To resolve this problem we use **system_dependencies.h** header file which takes care to use
|
||||||
| To resolve this problem we use **system_dependencies.h** header file which takes
|
correct headers whenever we mount XFS file system either using xfs_shell or directly inside Haiku.
|
||||||
care to use correct headers whenever we mount XFS file system either using xfs_shell
|
|
||||||
or directly inside Haiku.
|
|
||||||
|
|
||||||
* XFS stores data on disk in Big Endian byte order, to convert data into host order
|
XFS stores data on disk in Big Endian byte order, to convert data into host order
|
||||||
all classes and data headers has **SwapEndian()** function, Its better to have all data
|
all classes and data headers has **SwapEndian()** function, Its better to have all data
|
||||||
conversions at one place to avoid future problems related to data byte order.
|
conversions at one place to avoid future problems related to data byte order.
|
||||||
|
|
||||||
* XFS SuperBlock starts at ondisk offset 0, the definition of SuperBlock is in **xfs.h** file.
|
XFS SuperBlock starts at ondisk offset 0, the definition of SuperBlock is in **xfs.h** file.
|
||||||
|
|
||||||
* | A Volume is an instance of file system and defined in **Volume.h** file.
|
A Volume is an instance of file system and defined in **Volume.h** file.
|
||||||
XFS Volume contains SuperBlock, file system device and essential functions
|
XFS Volume contains SuperBlock, file system device and essential functions
|
||||||
like Identify(), mount() etc...
|
like Identify(), mount() etc...
|
||||||
| *Identify()* function reads SuperBlock from disk and verifies it.
|
|
||||||
| *Mount()* function mounts file system device and publishes root inode of file system
|
* *Identify()* function reads SuperBlock from disk and verifies it.
|
||||||
|
* *Mount()* function mounts file system device and publishes root inode of file system
|
||||||
(Typically root inode number for XFS is 128).
|
(Typically root inode number for XFS is 128).
|
||||||
|
|
|
||||||
|
|
||||||
* | XFS uses TRACE Macro to debug file system, definitions for TRACE, ERROR and ASSERT
|
XFS uses TRACE Macro to debug file system, definitions for TRACE, ERROR and ASSERT
|
||||||
are defined at **Debug.h** in the form of Macro.
|
are defined at **Debug.h** in the form of Macro.
|
||||||
| To enable TRACE calls just add ``#define TRACE_XFS`` in Debug.h file and
|
|
||||||
vice versa to disable it.
|
|
||||||
|
|
|
||||||
|
|
||||||
* | XFS V5 introduced metadata checksums to ensure the integrity of metadata in file system,
|
To enable TRACE calls just add ``#define TRACE_XFS`` in Debug.h file and
|
||||||
It uses CRC32C checksum algorithm. For XFS all checksums related functions are defined in
|
vice versa to disable it.
|
||||||
**Checksum.h** header file.
|
|
||||||
| It contains following functions :
|
|
||||||
* *xfs_verify_cksum()* to verify checksum for buffer.
|
|
||||||
* *xfs_update_cksum()* to update checksum for buffer.
|
|
||||||
| **XFS stores checksum in little endian byte order unlike other ondisk data which is stored
|
|
||||||
in big endian byte order**
|
|
||||||
|
|
||||||
* XFS V5 introduced many other fields for metadata verification like *BlockNo* *UUID* *Owner*
|
|
||||||
etc.. All this fields are common in every data header and so are their checks. So to not
|
XFS V5 introduced metadata checksums to ensure the integrity of metadata in file system,
|
||||||
repeat same checks again and again for all headers we created a *VerifyHeader* template
|
It uses CRC32C checksum algorithm. For XFS all checksums related functions are defined in
|
||||||
function which is defined in **VerifyHeader.h** file. This function is commonly used in
|
**Checksum.h** header file.
|
||||||
all forms of headers for verification purposes.
|
It contains following functions :
|
||||||
|
|
||||||
|
* *xfs_verify_cksum()* to verify checksum for buffer.
|
||||||
|
* *xfs_update_cksum()* to update checksum for buffer.
|
||||||
|
|
||||||
|
**XFS stores checksum in little endian byte order unlike other ondisk data which is stored
|
||||||
|
in big endian byte order**
|
||||||
|
|
||||||
|
XFS V5 introduced many other fields for metadata verification like *BlockNo* *UUID* *Owner*
|
||||||
|
etc.. All this fields are common in every data header and so are their checks. So to not
|
||||||
|
repeat same checks again and again for all headers we created a *VerifyHeader* template
|
||||||
|
function which is defined in **VerifyHeader.h** file. This function is commonly used in
|
||||||
|
all forms of headers for verification purposes.
|
||||||
|
|
||||||
Inodes
|
Inodes
|
||||||
^^^^^^
|
^^^^^^
|
||||||
|
|||||||
@@ -121,7 +121,8 @@ the target build profile used by the bootstrap process. This defaults to
|
|||||||
will include source packages for all packages needed by release image).
|
will include source packages for all packages needed by release image).
|
||||||
|
|
||||||
Format of hpkg Source Repository
|
Format of hpkg Source Repository
|
||||||
========================
|
================================
|
||||||
|
|
||||||
For Haikuporter to use source or "rigged" packages instead of requesting
|
For Haikuporter to use source or "rigged" packages instead of requesting
|
||||||
packages from a remote url (essential during bootstrap when patch, git,
|
packages from a remote url (essential during bootstrap when patch, git,
|
||||||
curl, etc are unavailable), haikuporter works on an empty haikuports repository
|
curl, etc are unavailable), haikuporter works on an empty haikuports repository
|
||||||
@@ -143,6 +144,7 @@ on your target platform.
|
|||||||
|
|
||||||
Haiku Architecture Ports
|
Haiku Architecture Ports
|
||||||
========================
|
========================
|
||||||
|
|
||||||
When preparing a new Haiku architecture port for the bootstrap build the
|
When preparing a new Haiku architecture port for the bootstrap build the
|
||||||
following things need to be considered:
|
following things need to be considered:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user