diff --git a/docs/develop/file_systems/xfs.rst b/docs/develop/file_systems/xfs.rst index 13162546db..08e5e24497 100644 --- a/docs/develop/file_systems/xfs.rst +++ b/docs/develop/file_systems/xfs.rst @@ -93,8 +93,8 @@ Where fs.img is the file system image we created from linux kernel. Test directly inside Haiku ^^^^^^^^^^^^^^^^^^^^^^^^^^ -First build a version of haiku with XFS support, to do this we need to add "xfs" to the image -definition `here `__. +First build a version of haiku with XFS support, to do this we need to add "xfs" to the `image +definition `__. 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 ------------- -* | All the necessary hooks for file system like xfs_mount(), open_dir(), read_dir() etc.. - are implemented inside **kernel_interface.cpp** file. - | It acts as an interface between Haiku kernel and XFS file system. - | Documentation for all necessary file system hooks can be found - `here `_ - | +All the necessary hooks for file system like xfs_mount(), open_dir(), read_dir() etc.. are +implemented in the **kernel_interface.cpp** file. It acts as an interface between the Haiku kernel +and the XFS file system. Documentation for all necessary file system hooks can be found +`in the API reference `_ -* | Whenever we run a file system under fs_shell we can't use system headers, - fs_shell compatible headers are there which needs to be used whenever we try - to mount XFS file system using xfs_shell. - | To resolve this problem we use **system_dependencies.h** header file which takes - care to use correct headers whenever we mount XFS file system either using xfs_shell - or directly inside Haiku. +Whenever we run a file system under fs_shell we can't use system headers, fs_shell compatible +headers are there which needs to be used whenever we try to mount XFS file system using xfs_shell. +To resolve this problem we use **system_dependencies.h** header file which takes 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 - 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. +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 +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. - XFS Volume contains SuperBlock, file system device and essential functions - 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 - (Typically root inode number for XFS is 128). - | +A Volume is an instance of file system and defined in **Volume.h** file. +XFS Volume contains SuperBlock, file system device and essential functions +like Identify(), mount() etc... -* | XFS uses TRACE Macro to debug file system, definitions for TRACE, ERROR and ASSERT - 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. - | +* *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). -* | XFS V5 introduced metadata checksums to ensure the integrity of metadata in file system, - It uses CRC32C checksum algorithm. For XFS all checksums related functions are defined in - **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 uses TRACE Macro to debug file system, definitions for TRACE, ERROR and ASSERT +are defined at **Debug.h** in the form of Macro. -* 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. +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, +It uses CRC32C checksum algorithm. For XFS all checksums related functions are defined in +**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 +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 ^^^^^^ diff --git a/docs/develop/packages/Bootstrapping.rst b/docs/develop/packages/Bootstrapping.rst index 3d3213698d..e16bb681ae 100644 --- a/docs/develop/packages/Bootstrapping.rst +++ b/docs/develop/packages/Bootstrapping.rst @@ -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). Format of hpkg Source Repository -======================== +================================ + For Haikuporter to use source or "rigged" packages instead of requesting packages from a remote url (essential during bootstrap when patch, git, curl, etc are unavailable), haikuporter works on an empty haikuports repository @@ -143,6 +144,7 @@ on your target platform. Haiku Architecture Ports ======================== + When preparing a new Haiku architecture port for the bootstrap build the following things need to be considered: