<?xml version='1.0' encoding='UTF-8' standalone='no'?> <doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.16"> <compounddef id="ufs_2ffs_2fs_8h" kind="file" language="C++"> <compoundname>fs.h</compoundname> <includes refid="mount_8h" local="no">vfs/mount.h</includes> <includes local="no">ufs/ufs/dinode.h</includes> <incdepgraph> <node id="10"> <label>ufs/ufs/dinode.h</label> </node> <node id="5"> <label>sys/select.h</label> <link refid="select_8h"/> <childnode refid="6" relation="include"> </childnode> <childnode refid="4" relation="include"> </childnode> <childnode refid="7" relation="include"> </childnode> <childnode refid="8" relation="include"> </childnode> <childnode refid="9" relation="include"> </childnode> </node> <node id="9"> <label>sys/_sigset.h</label> <link refid="__sigset_8h"/> <childnode refid="4" relation="include"> </childnode> </node> <node id="2"> <label>vfs/mount.h</label> <link refid="mount_8h"/> <childnode refid="3" relation="include"> </childnode> </node> <node id="3"> <label>sys/types.h</label> <link refid="include_2sys_2types_8h"/> <childnode refid="4" relation="include"> </childnode> <childnode refid="5" relation="include"> </childnode> </node> <node id="1"> <label>C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h</label> <link refid="ufs_2ffs_2fs_8h"/> <childnode refid="2" relation="include"> </childnode> <childnode refid="10" relation="include"> </childnode> </node> <node id="6"> <label>sys/cdefs.h</label> <link refid="cdefs_8h"/> </node> <node id="4"> <label>sys/_types.h</label> <link refid="__types_8h"/> </node> <node id="7"> <label>sys/_timespec.h</label> <link refid="__timespec_8h"/> <childnode refid="4" relation="include"> </childnode> </node> <node id="8"> <label>sys/_timeval.h</label> <link refid="__timeval_8h"/> <childnode refid="4" relation="include"> </childnode> </node> </incdepgraph> <innerclass refid="structcg" prot="public">cg</innerclass> <innerclass refid="structcsum" prot="public">csum</innerclass> <innerclass refid="structcsum__total" prot="public">csum_total</innerclass> <innerclass refid="structfs" prot="public">fs</innerclass> <innerclass refid="structfsck__cmd" prot="public">fsck_cmd</innerclass> <innerclass refid="structjblkrec" prot="public">jblkrec</innerclass> <innerclass refid="structjmvrec" prot="public">jmvrec</innerclass> <innerclass refid="unionjrec" prot="public">jrec</innerclass> <innerclass refid="structjrefrec" prot="public">jrefrec</innerclass> <innerclass refid="structjsegrec" prot="public">jsegrec</innerclass> <innerclass refid="structjtrncrec" prot="public">jtrncrec</innerclass> <sectiondef kind="define"> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1af5d1b5729eafd3c171c9dd5885549621" prot="public" static="no"> <name>ACTIVECGNUM</name> <param><defname>fs</defname></param> <param><defname>cg</defname></param> <initializer>((<ref refid="structfs" kindref="compound">fs</ref>)->fs_active[(<ref refid="structcg" kindref="compound">cg</ref>) / (<ref refid="vmm__mmap_8c_1ac3e045b1eb12fc6a000555fda916a023" kindref="member">NBBY</ref> * sizeof(int))])</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="432" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="432" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ad30e7295122b283f4e385651d2f24d83" prot="public" static="no"> <name>ACTIVECGOFF</name> <param><defname>cg</defname></param> <initializer>(1 << ((<ref refid="structcg" kindref="compound">cg</ref>) % (<ref refid="vmm__mmap_8c_1ac3e045b1eb12fc6a000555fda916a023" kindref="member">NBBY</ref> * sizeof(int))))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="433" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="433" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ae8adbc207667e22a3263c9a27bc65606" prot="public" static="no"> <name>ACTIVECLEAR</name> <param><defname>fs</defname></param> <param><defname>cg</defname></param> <initializer>do { \ if ((<ref refid="structfs" kindref="compound">fs</ref>)->fs_active) \ <ref refid="ufs_2ffs_2fs_8h_1af5d1b5729eafd3c171c9dd5885549621" kindref="member">ACTIVECGNUM</ref>((<ref refid="structfs" kindref="compound">fs</ref>), (<ref refid="structcg" kindref="compound">cg</ref>)) &= ~<ref refid="ufs_2ffs_2fs_8h_1ad30e7295122b283f4e385651d2f24d83" kindref="member">ACTIVECGOFF</ref>((<ref refid="structcg" kindref="compound">cg</ref>)); \ } while (0)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="438" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="438" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ad84db69fcb3b77114c3be14364120622" prot="public" static="no"> <name>ACTIVESET</name> <param><defname>fs</defname></param> <param><defname>cg</defname></param> <initializer>do { \ if ((<ref refid="structfs" kindref="compound">fs</ref>)->fs_active) \ <ref refid="ufs_2ffs_2fs_8h_1af5d1b5729eafd3c171c9dd5885549621" kindref="member">ACTIVECGNUM</ref>((<ref refid="structfs" kindref="compound">fs</ref>), (<ref refid="structcg" kindref="compound">cg</ref>)) |= <ref refid="ufs_2ffs_2fs_8h_1ad30e7295122b283f4e385651d2f24d83" kindref="member">ACTIVECGOFF</ref>((<ref refid="structcg" kindref="compound">cg</ref>)); \ } while (0)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="434" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="434" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1abeb46ff463938c875d10dc7d077f6503" prot="public" static="no"> <name>AFPDIR</name> <initializer>64 /* expected number of files per directory */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="177" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="177" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aa6dce94fc058cff5a9d12840925229fe" prot="public" static="no"> <name>AVFILESIZ</name> <initializer>16384 /* expected average <ref refid="structfile" kindref="compound">file</ref> size */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="176" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="176" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a5bb4110dff6259237b59f53236b0c1a1" prot="public" static="no"> <name>BLK_NOCOPY</name> <initializer>((<ref refid="ufs_8h_1ad1d47f60518d845f7e798fa0f3458753" kindref="member">ufs2_daddr_t</ref>)(1))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="200" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="200" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1affee0e4ffe574b078c3355a00a9b3f14" prot="public" static="no"> <name>BLK_SNAP</name> <initializer>((<ref refid="ufs_8h_1ad1d47f60518d845f7e798fa0f3458753" kindref="member">ufs2_daddr_t</ref>)(2))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="201" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="201" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ac11647795eb085ee43328d0c5bda47ae" prot="public" static="no"> <name>blkmap</name> <param><defname>fs</defname></param> <param><defname>map</defname></param> <param><defname>loc</defname></param> <initializer>(((map)[(loc) / <ref refid="vmm__mmap_8c_1ac3e045b1eb12fc6a000555fda916a023" kindref="member">NBBY</ref>] >> ((loc) % <ref refid="vmm__mmap_8c_1ac3e045b1eb12fc6a000555fda916a023" kindref="member">NBBY</ref>)) & (0xff >> (<ref refid="vmm__mmap_8c_1ac3e045b1eb12fc6a000555fda916a023" kindref="member">NBBY</ref> - (<ref refid="structfs" kindref="compound">fs</ref>)->fs_frag)))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="562" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="562" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a6eee27f474f8a078036aa7f53c397baf" prot="public" static="no"> <name>blknum</name> <param><defname>fs</defname></param> <param><defname>fsb</defname></param> <initializer>/* calculates rounddown(fsb, <ref refid="structfs" kindref="compound">fs</ref>->fs_frag) */ \ ((fsb) &~ ((<ref refid="structfs" kindref="compound">fs</ref>)->fs_frag - 1))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="595" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="595" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1acd9d1b3e1eed7fc3850f8a78636dd5a7" prot="public" static="no"> <name>blkoff</name> <param><defname>fs</defname></param> <param><defname>loc</defname></param> <initializer>/* calculates (loc % <ref refid="structfs" kindref="compound">fs</ref>->fs_bsize) */ \ ((loc) & (<ref refid="structfs" kindref="compound">fs</ref>)->fs_qbmask)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="570" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="570" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aa89a88333cc6b36b00f042417af7ab28" prot="public" static="no"> <name>blkroundup</name> <param><defname>fs</defname></param> <param><defname>size</defname></param> <initializer>/* calculates roundup(size, <ref refid="structfs" kindref="compound">fs</ref>->fs_bsize) */ \ (((size) + (<ref refid="structfs" kindref="compound">fs</ref>)->fs_qbmask) & (<ref refid="structfs" kindref="compound">fs</ref>)->fs_bmask)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="585" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="585" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ac1f210a96207f2bb6fbcbc25d9d2d4e1" prot="public" static="no"> <name>blksize</name> <param><defname>fs</defname></param> <param><defname>ip</defname></param> <param><defname>lbn</defname></param> <initializer>(((lbn) >= <ref refid="ufs_8h_1a0c136d7ef3223bdd2b6e7c83c65bb508" kindref="member">NDADDR</ref> || (ip)->i_size >= <ref refid="ufs_2ffs_2fs_8h_1a1d55f50ebbb5fa90396f3576e071bc98" kindref="member">smalllblktosize</ref>(<ref refid="structfs" kindref="compound">fs</ref>, (lbn) + 1)) \ ? (<ref refid="structfs" kindref="compound">fs</ref>)->fs_bsize \ : (<ref refid="ufs_8h_1a1494995062a8a6dbbe60f8dc6a3e995d" kindref="member">fragroundup</ref>(<ref refid="structfs" kindref="compound">fs</ref>, <ref refid="ufs_8h_1acd9d1b3e1eed7fc3850f8a78636dd5a7" kindref="member">blkoff</ref>(<ref refid="structfs" kindref="compound">fs</ref>, (ip)->i_size))))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="610" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="610" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a95d2f2b9e139c995142d775a63ed5f03" prot="public" static="no"> <name>blkstofrags</name> <param><defname>fs</defname></param> <param><defname>blks</defname></param> <initializer>/* calculates (blks * <ref refid="structfs" kindref="compound">fs</ref>->fs_frag) */ \ ((blks) << (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fragshift)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="591" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="591" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a00468f2d32403dba365e84ccb8f2dc5f" prot="public" static="no"> <name>cg_blksfree</name> <param><defname>cgp</defname></param> <initializer>((<ref refid="include_2sys_2types_8h_1ac7c42f52639b9aca7da966a0783996d7" kindref="member">u_int8_t</ref> *)((<ref refid="include_2sys_2types_8h_1ac7c42f52639b9aca7da966a0783996d7" kindref="member">u_int8_t</ref> *)(cgp) + (cgp)->cg_freeoff))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="510" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="510" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ad863abad97449c80021eb3e264e31cf6" prot="public" static="no"> <name>cg_chkmagic</name> <param><defname>cgp</defname></param> <initializer>((cgp)->cg_magic == <ref refid="ufs_2ffs_2fs_8h_1a543096929f4921023de02820c6b50436" kindref="member">CG_MAGIC</ref>)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="507" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="507" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1afdf6206c0f72fe914b885987a0dc76c0" prot="public" static="no"> <name>cg_clustersfree</name> <param><defname>cgp</defname></param> <initializer>((<ref refid="include_2sys_2types_8h_1ac7c42f52639b9aca7da966a0783996d7" kindref="member">u_int8_t</ref> *)((<ref refid="include_2sys_2types_8h_1ac7c42f52639b9aca7da966a0783996d7" kindref="member">u_int8_t</ref> *)(cgp) + (cgp)->cg_clusteroff))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="512" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="512" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a640bf0194e9406d9780d9eb83f66bc68" prot="public" static="no"> <name>cg_clustersum</name> <param><defname>cgp</defname></param> <initializer>((<ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref> *)((<ref refid="include_2sys_2types_8h_1a09674b9e56fd7a93a2169aa9210deec7" kindref="member">uintptr_t</ref>)(cgp) + (cgp)->cg_clustersumoff))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="514" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="514" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a1deb24b931a6b8fe6f5d0e76b8c41097" prot="public" static="no"> <name>cg_inosused</name> <param><defname>cgp</defname></param> <initializer>((<ref refid="include_2sys_2types_8h_1ac7c42f52639b9aca7da966a0783996d7" kindref="member">u_int8_t</ref> *)((<ref refid="include_2sys_2types_8h_1ac7c42f52639b9aca7da966a0783996d7" kindref="member">u_int8_t</ref> *)(cgp) + (cgp)->cg_iusedoff))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="508" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="508" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a543096929f4921023de02820c6b50436" prot="public" static="no"> <name>CG_MAGIC</name> <initializer>0x090255</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="472" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="472" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1af7e946b674acc4ead5e3ae15317f52c0" prot="public" static="no"> <name>cgbase</name> <param><defname>fs</defname></param> <param><defname>c</defname></param> <initializer>(((<ref refid="ufs_8h_1ad1d47f60518d845f7e798fa0f3458753" kindref="member">ufs2_daddr_t</ref>)(<ref refid="structfs" kindref="compound">fs</ref>)->fs_fpg) * (c))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="528" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="528" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a83691a5846b97b4083c907e6c49de4fc" prot="public" static="no"> <name>cgdata</name> <param><defname>fs</defname></param> <param><defname>c</defname></param> <initializer>(<ref refid="ufs_8h_1a03cdc9c21f1412b107d85751f275c208" kindref="member">cgdmin</ref>(<ref refid="structfs" kindref="compound">fs</ref>, c) + (<ref refid="structfs" kindref="compound">fs</ref>)->fs_metaspace) /* data zone */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="529" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="529" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a03cdc9c21f1412b107d85751f275c208" prot="public" static="no"> <name>cgdmin</name> <param><defname>fs</defname></param> <param><defname>c</defname></param> <initializer>(<ref refid="ufs_8h_1a1446925c904a61056fb611a539de03ca" kindref="member">cgstart</ref>(<ref refid="structfs" kindref="compound">fs</ref>, c) + (<ref refid="structfs" kindref="compound">fs</ref>)->fs_dblkno) /* 1st data */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="531" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="531" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1af2bea0d775018173b6e6f5141f09bdd0" prot="public" static="no"> <name>cgimin</name> <param><defname>fs</defname></param> <param><defname>c</defname></param> <initializer>(<ref refid="ufs_8h_1a1446925c904a61056fb611a539de03ca" kindref="member">cgstart</ref>(<ref refid="structfs" kindref="compound">fs</ref>, c) + (<ref refid="structfs" kindref="compound">fs</ref>)->fs_iblkno) /* <ref refid="structinode" kindref="compound">inode</ref> blk */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="532" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="532" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a80e3d3175ea2099883a57d6acd3682e0" prot="public" static="no"> <name>cgmeta</name> <param><defname>fs</defname></param> <param><defname>c</defname></param> <initializer>(<ref refid="ufs_8h_1a03cdc9c21f1412b107d85751f275c208" kindref="member">cgdmin</ref>(<ref refid="structfs" kindref="compound">fs</ref>, c)) /* meta data */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="530" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="530" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a6ccbaf50dd709f99482cafcbc427d834" prot="public" static="no"> <name>cgsblock</name> <param><defname>fs</defname></param> <param><defname>c</defname></param> <initializer>(<ref refid="ufs_8h_1a1446925c904a61056fb611a539de03ca" kindref="member">cgstart</ref>(<ref refid="structfs" kindref="compound">fs</ref>, c) + (<ref refid="structfs" kindref="compound">fs</ref>)->fs_sblkno) /* super blk */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="533" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="533" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1add70b683b5059fd3c82f852a6a6f15e8" prot="public" static="no"> <name>CGSIZE</name> <param><defname>fs</defname></param> <initializer>/* base <ref refid="structcg" kindref="compound">cg</ref> */ (sizeof(struct <ref refid="structcg" kindref="compound">cg</ref>) + sizeof(<ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref>) + \ /* old btotoff */ (<ref refid="structfs" kindref="compound">fs</ref>)->fs_old_cpg * sizeof(<ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref>) + \ /* old boff */ (<ref refid="structfs" kindref="compound">fs</ref>)->fs_old_cpg * sizeof(<ref refid="include_2sys_2types_8h_1af7b042408b9b104606f8a9b5035329f3" kindref="member">u_int16_t</ref>) + \ /* <ref refid="structinode" kindref="compound">inode</ref> map */ howmany((<ref refid="structfs" kindref="compound">fs</ref>)->fs_ipg, <ref refid="vmm__mmap_8c_1ac3e045b1eb12fc6a000555fda916a023" kindref="member">NBBY</ref>) + \ /* block map */ howmany((<ref refid="structfs" kindref="compound">fs</ref>)->fs_fpg, <ref refid="vmm__mmap_8c_1ac3e045b1eb12fc6a000555fda916a023" kindref="member">NBBY</ref>) +\ /* if present */ ((<ref refid="structfs" kindref="compound">fs</ref>)->fs_contigsumsize <= 0 ? 0 : \ /* cluster sum */ (<ref refid="structfs" kindref="compound">fs</ref>)->fs_contigsumsize * sizeof(<ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref>) + \ /* cluster map */ howmany(<ref refid="ufs_2ffs_2fs_8h_1af495910a3c363ed48f63e8ed71efc29f" kindref="member">fragstoblks</ref>(<ref refid="structfs" kindref="compound">fs</ref>, (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fpg), <ref refid="vmm__mmap_8c_1ac3e045b1eb12fc6a000555fda916a023" kindref="member">NBBY</ref>)))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="449" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="449" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a1446925c904a61056fb611a539de03ca" prot="public" static="no"> <name>cgstart</name> <param><defname>fs</defname></param> <param><defname>c</defname></param> <initializer>((<ref refid="structfs" kindref="compound">fs</ref>)->fs_magic == <ref refid="ufs_8h_1a0b73b7456fc1dee932dc0c1056c613fc" kindref="member">FS_UFS2_MAGIC</ref> ? <ref refid="ufs_8h_1af7e946b674acc4ead5e3ae15317f52c0" kindref="member">cgbase</ref>(<ref refid="structfs" kindref="compound">fs</ref>, c) : \ (<ref refid="ufs_8h_1af7e946b674acc4ead5e3ae15317f52c0" kindref="member">cgbase</ref>(<ref refid="structfs" kindref="compound">fs</ref>, c) + (<ref refid="structfs" kindref="compound">fs</ref>)->fs_old_cgoffset * ((c) & ~((<ref refid="structfs" kindref="compound">fs</ref>)->fs_old_cgmask))))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="535" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="535" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a5c527699eccebab4828fd122caea6cb7" prot="public" static="no"> <name>cgtod</name> <param><defname>fs</defname></param> <param><defname>c</defname></param> <initializer>(<ref refid="ufs_8h_1a1446925c904a61056fb611a539de03ca" kindref="member">cgstart</ref>(<ref refid="structfs" kindref="compound">fs</ref>, c) + (<ref refid="structfs" kindref="compound">fs</ref>)->fs_cblkno) /* <ref refid="structcg" kindref="compound">cg</ref> block */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="534" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="534" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a7875100ca8ad379e53628cb7dec48ecd" prot="public" static="no"> <name>dbtofsb</name> <param><defname>fs</defname></param> <param><defname>b</defname></param> <initializer>((b) >> (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fsbtodb)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="522" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="522" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ac0137ded6f8af101a0ea008ffbe62d7f" prot="public" static="no"> <name>DEFAULTOPT</name> <initializer><ref refid="ufs_2ffs_2fs_8h_1ae331c132b869580e7851c80f4611ea38" kindref="member">FS_OPTTIME</ref></initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="165" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="165" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1addb9672ece80e7c226115ecace858eec" prot="public" static="no"> <name>dtog</name> <param><defname>fs</defname></param> <param><defname>d</defname></param> <initializer>((d) / (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fpg)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="555" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="555" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ad66c886093f91fbf139daaf137e0bd60" prot="public" static="no"> <name>dtogd</name> <param><defname>fs</defname></param> <param><defname>d</defname></param> <initializer>((d) % (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fpg)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="556" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="556" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aa05619dd59913bfda3199f12c7cce015" prot="public" static="no"> <name>FFS_ADJ_BLKCNT</name> <initializer>2 /* adjust <ref refid="structinode" kindref="compound">inode</ref> used block count */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="207" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="207" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a7eeb711dcadf6283246d8a9e61980a1f" prot="public" static="no"> <name>FFS_ADJ_NBFREE</name> <initializer>8 /* adjust number of free blocks */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="213" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="213" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ade4455eda3d3ff668c60075ac72c6d14" prot="public" static="no"> <name>FFS_ADJ_NDIR</name> <initializer>7 /* adjust number of directories */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="212" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="212" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a7c032804ff7a087d3ffdd6440c95051c" prot="public" static="no"> <name>FFS_ADJ_NFFREE</name> <initializer>10 /* adjust number of free frags */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="215" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="215" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a86d6104e2b0109286e13c06bb0212f46" prot="public" static="no"> <name>FFS_ADJ_NIFREE</name> <initializer>9 /* adjust number of free inodes */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="214" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="214" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ae96f68bf42f9dc8f9802715ef3c109ef" prot="public" static="no"> <name>FFS_ADJ_NUMCLUSTERS</name> <initializer>11 /* adjust number of free clusters */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="216" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="216" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a0e74599a871f2abe758bef1b42123bb0" prot="public" static="no"> <name>FFS_ADJ_REFCNT</name> <initializer>1 /* adjust <ref refid="structinode" kindref="compound">inode</ref> reference count */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="206" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="206" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a77d83208fbc3af8385cda5d0c47cbc61" prot="public" static="no"> <name>FFS_BLK_FREE</name> <initializer>3 /* free range of blocks in map */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="208" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="208" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1acb828f4d6f55a3dd7e66fcdf4ed54627" prot="public" static="no"> <name>FFS_CMD_VERSION</name> <initializer>0x19790518 /* version ID */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="227" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="227" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a17bd0a0454da06da9aab1f86bd0b8ea4" prot="public" static="no"> <name>FFS_DIR_FREE</name> <initializer>4 /* free specified dir inodes in map */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="209" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="209" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a3a3db08c0042cf109c8539af5e531711" prot="public" static="no"> <name>FFS_FILE_FREE</name> <initializer>5 /* free specified <ref refid="structfile" kindref="compound">file</ref> inodes in map */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="210" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="210" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aabac33a5c8c848deec69644756657ca0" prot="public" static="no"> <name>FFS_MAXID</name> <initializer>16 /* number of valid ffs ids */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="222" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="222" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ad8f63d2ce3a63a7026aa4af23e28c759" prot="public" static="no"> <name>FFS_SET_BUFOUTPUT</name> <initializer>16 /* set buffered writing on descriptor */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="221" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="221" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aab848f47ad66f7c4da3dad848157af4f" prot="public" static="no"> <name>FFS_SET_CWD</name> <initializer>12 /* set current directory */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="217" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="217" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a37a8933573bf9c2e5a8a371355f41e36" prot="public" static="no"> <name>FFS_SET_DOTDOT</name> <initializer>13 /* set <ref refid="structinode" kindref="compound">inode</ref> number for ".." */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="218" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="218" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a230781142be04b4f24fcf054aa56f9e9" prot="public" static="no"> <name>FFS_SET_FLAGS</name> <initializer>6 /* set filesystem flags */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="211" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="211" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a56b97e7252798995b0debdd6783bcdcf" prot="public" static="no"> <name>FFS_SET_INODE</name> <initializer>15 /* update an on-disk <ref refid="structinode" kindref="compound">inode</ref> */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="220" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="220" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a41f2e1110d0c1715fc71389ea705d398" prot="public" static="no"> <name>FFS_UNLINK</name> <initializer>14 /* remove a <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref> in the filesystem */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="219" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="219" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1af1fecccf20b0223160bae2bd1e0b4fac" prot="public" static="no"> <name>fragnum</name> <param><defname>fs</defname></param> <param><defname>fsb</defname></param> <initializer>/* calculates (fsb % <ref refid="structfs" kindref="compound">fs</ref>->fs_frag) */ \ ((fsb) & ((<ref refid="structfs" kindref="compound">fs</ref>)->fs_frag - 1))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="593" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="593" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1af9974b7bff345fab3b3e629ac40d9b92" prot="public" static="no"> <name>fragoff</name> <param><defname>fs</defname></param> <param><defname>loc</defname></param> <initializer>/* calculates (loc % <ref refid="structfs" kindref="compound">fs</ref>->fs_fsize) */ \ ((loc) & (<ref refid="structfs" kindref="compound">fs</ref>)->fs_qfmask)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="572" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="572" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a1494995062a8a6dbbe60f8dc6a3e995d" prot="public" static="no"> <name>fragroundup</name> <param><defname>fs</defname></param> <param><defname>size</defname></param> <initializer>/* calculates roundup(size, <ref refid="structfs" kindref="compound">fs</ref>->fs_fsize) */ \ (((size) + (<ref refid="structfs" kindref="compound">fs</ref>)->fs_qfmask) & (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fmask)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="587" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="587" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1af495910a3c363ed48f63e8ed71efc29f" prot="public" static="no"> <name>fragstoblks</name> <param><defname>fs</defname></param> <param><defname>frags</defname></param> <initializer>/* calculates (frags / <ref refid="structfs" kindref="compound">fs</ref>->fs_frag) */ \ ((frags) >> (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fragshift)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="589" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="589" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a7f6459b64009021912845ee4ef17bcdd" prot="public" static="no"> <name>freespace</name> <param><defname>fs</defname></param> <param><defname>percentreserved</defname></param> <initializer>(<ref refid="ufs_2ffs_2fs_8h_1a95d2f2b9e139c995142d775a63ed5f03" kindref="member">blkstofrags</ref>((<ref refid="structfs" kindref="compound">fs</ref>), (<ref refid="structfs" kindref="compound">fs</ref>)->fs_cstotal.cs_nbfree) + \ (<ref refid="structfs" kindref="compound">fs</ref>)->fs_cstotal.cs_nffree - \ (((<ref refid="include_2sys_2types_8h_1afa178be408981cc5edd64227b6332fc6" kindref="member">off_t</ref>)((<ref refid="structfs" kindref="compound">fs</ref>)->fs_dsize)) * (percentreserved) / 100))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="602" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="602" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1acb239d9104407b43a7a21a797b344df8" prot="public" static="no"> <name>FS_42INODEFMT</name> <initializer>-1 /* 4.2BSD <ref refid="structinode" kindref="compound">inode</ref> format */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="380" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="380" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aec36ab3845dc8939b802549b97517678" prot="public" static="no"> <name>FS_44INODEFMT</name> <initializer>2 /* 4.4BSD <ref refid="structinode" kindref="compound">inode</ref> format */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="381" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="381" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ae61037919a220a5a6f77e3c860a0f556" prot="public" static="no"> <name>FS_ACLS</name> <initializer>0x0010 /* <ref refid="structfile" kindref="compound">file</ref> system has POSIX.1e ACLs enabled */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="421" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="421" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a3a790ea6d8778aff9200aaf3e0aead98" prot="public" static="no"> <name>FS_BAD_MAGIC</name> <initializer>0x19960408 /* UFS incomplete newfs magic number */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="378" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="378" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a5f7b68c2daf5963c504dd3eb9f424e83" prot="public" static="no"> <name>fs_cs</name> <param><defname>fs</defname></param> <param><defname>indx</defname></param> <initializer>fs_csp[indx]</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="467" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="467" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a4d3ebb952d8b6e07239c2bb0f0819847" prot="public" static="no"> <name>FS_DOSOFTDEP</name> <initializer>0x0002 /* filesystem using soft dependencies */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="418" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="418" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a982ce44156d077a994c2ec7faa4b89a9" prot="public" static="no"> <name>FS_FLAGS_UPDATED</name> <initializer>0x0080 /* flags have been moved to new location */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="424" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="424" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aa06dce7dd9b81f4b727c7011d209f1bd" prot="public" static="no"> <name>FS_GJOURNAL</name> <initializer>0x0040 /* gjournaled <ref refid="structfile" kindref="compound">file</ref> system */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="423" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="423" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a47d7b1f35a014650abc4cbc6abc5967e" prot="public" static="no"> <name>FS_INDEXDIRS</name> <initializer>0x0200 /* kernel supports indexed directories */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="426" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="426" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ae6032640f0739d9bf722b737dc7d8af1" prot="public" static="no"> <name>FS_MAXCONTIG</name> <initializer>16</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="150" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="150" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a6ca57badba0a0a0bb1cba4d7186ed005" prot="public" static="no"> <name>FS_MULTILABEL</name> <initializer>0x0020 /* <ref refid="structfile" kindref="compound">file</ref> system is MAC multi-label */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="422" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="422" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a495af838867548e70461e7dbda6bc325" prot="public" static="no"> <name>FS_NEEDSFSCK</name> <initializer>0x0004 /* filesystem needs sync fsck before mount */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="419" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="419" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a8e03c37e9f2b46f17c2d72ac54f9a9d5" prot="public" static="no"> <name>FS_NFS4ACLS</name> <initializer>0x0100 /* <ref refid="structfile" kindref="compound">file</ref> system has NFSv4 ACLs enabled */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="425" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="425" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a44a8a0e97e596d49a1a323b5db0a7650" prot="public" static="no"> <name>FS_OKAY</name> <initializer>0x7c269d38 /* superblock checksum */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="379" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="379" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1abb1205b813dfa4f9e210648585dab67d" prot="public" static="no"> <name>FS_OPTSPACE</name> <initializer>1 /* minimize disk fragmentation */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="387" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="387" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ae331c132b869580e7851c80f4611ea38" prot="public" static="no"> <name>FS_OPTTIME</name> <initializer>0 /* minimize allocation time */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="386" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="386" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a61d9ee509859575e0b8f3417c22d66d2" prot="public" static="no"> <name>FS_SUJ</name> <initializer>0x0008 /* Filesystem using softupdate journal */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="420" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="420" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ac194d44f6d8ee87a5f468366a2ba321a" prot="public" static="no"> <name>FS_TRIM</name> <initializer>0x0400 /* issue BIO_DELETE for deleted blocks */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="427" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="427" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ace25c7a73c514a8e575e1ba8c15c9a9e" prot="public" static="no"> <name>FS_UFS1_MAGIC</name> <initializer>0x011954 /* <ref refid="ufsmount_8h_1a4e9b665625734832f1e9d74423c3d14e" kindref="member">UFS1</ref> fast filesystem magic number */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="376" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="376" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a0b73b7456fc1dee932dc0c1056c613fc" prot="public" static="no"> <name>FS_UFS2_MAGIC</name> <initializer>0x19540119 /* <ref refid="ufsmount_8h_1ad32c8660fd7a17ed68caa6ce7fccdebb" kindref="member">UFS2</ref> fast filesystem magic number */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="377" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="377" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a6d8bc767f9c8365bef4d66b4c9efe0bd" prot="public" static="no"> <name>FS_UNCLEAN</name> <initializer>0x0001 /* filesystem not clean at mount */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="417" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="417" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ae26526d0ac7505aae7345f0288c17fe6" prot="public" static="no"> <name>fsbtodb</name> <param><defname>fs</defname></param> <param><defname>b</defname></param> <initializer>((<ref refid="include_2sys_2types_8h_1ab4b318e7a68f3cd77c42492443c59895" kindref="member">daddr_t</ref>)(b) << (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fsbtodb)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="521" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="521" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a04c33da6605e73954cf2ff32c3f0f15a" prot="public" static="no"> <name>FSMAXSNAP</name> <initializer>20</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="187" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="187" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a22af882911b5ccb5c744257642089932" prot="public" static="no"> <name>ino_to_cg</name> <param><defname>fs</defname></param> <param><defname>x</defname></param> <initializer>(((<ref refid="include_2sys_2types_8h_1a73341b7381d39d6e5b80ff9f23379dbd" kindref="member">ino_t</ref>)(x)) / (<ref refid="structfs" kindref="compound">fs</ref>)->fs_ipg)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="545" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="545" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aff52db23f4b31f920a657a75e0e5d58b" prot="public" static="no"> <name>ino_to_fsba</name> <param><defname>fs</defname></param> <param><defname>x</defname></param> <initializer>((<ref refid="ufs_8h_1ad1d47f60518d845f7e798fa0f3458753" kindref="member">ufs2_daddr_t</ref>)(<ref refid="ufs_8h_1af2bea0d775018173b6e6f5141f09bdd0" kindref="member">cgimin</ref>(<ref refid="structfs" kindref="compound">fs</ref>, <ref refid="ufs_8h_1a22af882911b5ccb5c744257642089932" kindref="member">ino_to_cg</ref>(<ref refid="structfs" kindref="compound">fs</ref>, (<ref refid="include_2sys_2types_8h_1a73341b7381d39d6e5b80ff9f23379dbd" kindref="member">ino_t</ref>)(x))) + \ (<ref refid="ufs_2ffs_2fs_8h_1a95d2f2b9e139c995142d775a63ed5f03" kindref="member">blkstofrags</ref>((<ref refid="structfs" kindref="compound">fs</ref>), ((((<ref refid="include_2sys_2types_8h_1a73341b7381d39d6e5b80ff9f23379dbd" kindref="member">ino_t</ref>)(x)) % (<ref refid="structfs" kindref="compound">fs</ref>)->fs_ipg) / <ref refid="ufs_2ffs_2fs_8h_1a093aab4d88e8ac7dacc93d9cb6cc58ee" kindref="member">INOPB</ref>(<ref refid="structfs" kindref="compound">fs</ref>))))))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="546" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="546" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aa318a9ca261ab408a6df7949a593fb57" prot="public" static="no"> <name>ino_to_fsbo</name> <param><defname>fs</defname></param> <param><defname>x</defname></param> <initializer>(((<ref refid="include_2sys_2types_8h_1a73341b7381d39d6e5b80ff9f23379dbd" kindref="member">ino_t</ref>)(x)) % <ref refid="ufs_2ffs_2fs_8h_1a093aab4d88e8ac7dacc93d9cb6cc58ee" kindref="member">INOPB</ref>(<ref refid="structfs" kindref="compound">fs</ref>))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="549" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="549" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a093aab4d88e8ac7dacc93d9cb6cc58ee" prot="public" static="no"> <name>INOPB</name> <param><defname>fs</defname></param> <initializer>((<ref refid="structfs" kindref="compound">fs</ref>)->fs_inopb)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="663" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="663" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a5939afd460c193768d22b459157fff03" prot="public" static="no"> <name>INOPF</name> <param><defname>fs</defname></param> <initializer>((<ref refid="structfs" kindref="compound">fs</ref>)->fs_inopb >> (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fragshift)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="664" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="664" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a134d634023dc6c806ebd0ac3302387c6" prot="public" static="no"> <name>JOP_ADDREF</name> <initializer>1 /* Add a reference to an inode. */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="670" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="670" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a9d5817e0238c71f6e4adf39f9e9271d7" prot="public" static="no"> <name>JOP_FREEBLK</name> <initializer>4 /* Free a block or a tree of blocks. */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="673" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="673" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ac75aa27fa6823a9333348a5f2b9264aa" prot="public" static="no"> <name>JOP_MVREF</name> <initializer>5 /* Move a reference from one off to another. */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="674" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="674" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a7c7eb2831fd7d0973e30650b4727675b" prot="public" static="no"> <name>JOP_NEWBLK</name> <initializer>3 /* Allocate a block. */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="672" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="672" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a690b2696b6fb9002fc9b8eba3020d652" prot="public" static="no"> <name>JOP_REMREF</name> <initializer>2 /* Remove a reference from an inode. */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="671" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="671" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a4e0d73f00c3077e2f469d7bae5f033e7" prot="public" static="no"> <name>JOP_SYNC</name> <initializer>7 /* fsync() complete record. */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="676" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="676" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a99f5802b336acd498d6887f60942e94d" prot="public" static="no"> <name>JOP_TRUNC</name> <initializer>6 /* Partial truncation record. */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="675" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="675" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a4905331616d422822b20d4a8feebb8ac" prot="public" static="no"> <name>JREC_SIZE</name> <initializer>32 /* Record and segment header size. */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="678" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="678" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a1ea09415cf1bc5de0d0d4a7158a5c736" prot="public" static="no"> <name>lblkno</name> <param><defname>fs</defname></param> <param><defname>loc</defname></param> <initializer>/* calculates (loc / <ref refid="structfs" kindref="compound">fs</ref>->fs_bsize) */ \ ((loc) >> (<ref refid="structfs" kindref="compound">fs</ref>)->fs_bshift)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="581" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="581" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a5b967dc8f042bb719c6e745e78824d7e" prot="public" static="no"> <name>lblktosize</name> <param><defname>fs</defname></param> <param><defname>blk</defname></param> <initializer>/* calculates ((<ref refid="include_2sys_2types_8h_1afa178be408981cc5edd64227b6332fc6" kindref="member">off_t</ref>)blk * <ref refid="structfs" kindref="compound">fs</ref>->fs_bsize) */ \ (((<ref refid="include_2sys_2types_8h_1afa178be408981cc5edd64227b6332fc6" kindref="member">off_t</ref>)(blk)) << (<ref refid="structfs" kindref="compound">fs</ref>)->fs_bshift)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="576" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="576" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a9f0783e610130a4e2414a8b5d970b6ea" prot="public" static="no"> <name>lfragtosize</name> <param><defname>fs</defname></param> <param><defname>frag</defname></param> <initializer>/* calculates ((<ref refid="include_2sys_2types_8h_1afa178be408981cc5edd64227b6332fc6" kindref="member">off_t</ref>)frag * <ref refid="structfs" kindref="compound">fs</ref>->fs_fsize) */ \ (((<ref refid="include_2sys_2types_8h_1afa178be408981cc5edd64227b6332fc6" kindref="member">off_t</ref>)(frag)) << (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fshift)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="574" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="574" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a0a726df03725023405ee5dd1d3a897c5" prot="public" static="no"> <name>MAXFRAG</name> <initializer>8</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="82" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="82" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a0beb14d415a358b818cec76550e4fad1" prot="public" static="no"> <name>MAXMNTLEN</name> <initializer>468</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="119" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="119" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ac5859c27029a47d17c1279cc197f05c3" prot="public" static="no"> <name>MAXVOLLEN</name> <initializer>32</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="125" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="125" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1af1c15a7b2752e4c2fed4a3819192f8f3" prot="public" static="no"> <name>MINBSIZE</name> <initializer>4096</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="112" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="112" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a797bf03d58cdfd1c381eb11aacff1a09" prot="public" static="no"> <name>MINCYLGRPS</name> <initializer>4</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="462" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="462" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a4d07ee78d02c6f1d6a1fc1c1ead0a262" prot="public" static="no"> <name>MINFREE</name> <initializer>8</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="164" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="164" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a6d58397786421684bb8db78f01e13ae6" prot="public" static="no"> <name>NINDIR</name> <param><defname>fs</defname></param> <initializer>((<ref refid="structfs" kindref="compound">fs</ref>)->fs_nindir)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="622" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="622" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1aca816b354128719c1523e33152a13637" prot="public" static="no"> <name>NOCSPTRS</name> <initializer>((128 / sizeof(void *)) - 4)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="142" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="142" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1acfa519646d8a011297a5859930944c99" prot="public" static="no"> <name>numfrags</name> <param><defname>fs</defname></param> <param><defname>loc</defname></param> <initializer>/* calculates (loc / <ref refid="structfs" kindref="compound">fs</ref>->fs_fsize) */ \ ((loc) >> (<ref refid="structfs" kindref="compound">fs</ref>)->fs_fshift)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="583" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="583" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ad35c4c33dc54a0b8db742e0b3b5f64aa" prot="public" static="no"> <name>sblksize</name> <param><defname>fs</defname></param> <param><defname>size</defname></param> <param><defname>lbn</defname></param> <initializer>(((lbn) >= <ref refid="ufs_8h_1a0c136d7ef3223bdd2b6e7c83c65bb508" kindref="member">NDADDR</ref> || (size) >= ((lbn) + 1) << (<ref refid="structfs" kindref="compound">fs</ref>)->fs_bshift) \ ? (<ref refid="structfs" kindref="compound">fs</ref>)->fs_bsize \ : (<ref refid="ufs_8h_1a1494995062a8a6dbbe60f8dc6a3e995d" kindref="member">fragroundup</ref>(<ref refid="structfs" kindref="compound">fs</ref>, <ref refid="ufs_8h_1acd9d1b3e1eed7fc3850f8a78636dd5a7" kindref="member">blkoff</ref>(<ref refid="structfs" kindref="compound">fs</ref>, (size)))))</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="614" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="614" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ab6b633b015b70b15317113908ccc0a17" prot="public" static="no"> <name>SBLOCK_FLOPPY</name> <initializer>0</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="71" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="71" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1afa52e1b5081edc4bbc9c7e29556bfc92" prot="public" static="no"> <name>SBLOCK_PIGGY</name> <initializer>262144</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="74" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="74" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ad25e0f8e55fba4f0d670b43361e6b61e" prot="public" static="no"> <name>SBLOCK_UFS1</name> <initializer>8192</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="72" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="72" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a7376590d1dfaa886ae6ac77649aaea52" prot="public" static="no"> <name>SBLOCK_UFS2</name> <initializer>65536</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="73" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="73" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a63f5b70b0dfe26fd775e89713f552e23" prot="public" static="no"> <name>SBLOCKSEARCH</name> <initializer>{ <ref refid="ufs_8h_1a7376590d1dfaa886ae6ac77649aaea52" kindref="member">SBLOCK_UFS2</ref>, <ref refid="ufs_8h_1ad25e0f8e55fba4f0d670b43361e6b61e" kindref="member">SBLOCK_UFS1</ref>, <ref refid="ufs_8h_1ab6b633b015b70b15317113908ccc0a17" kindref="member">SBLOCK_FLOPPY</ref>, <ref refid="ufs_8h_1afa52e1b5081edc4bbc9c7e29556bfc92" kindref="member">SBLOCK_PIGGY</ref>, -1 }</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="76" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="76" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ab7ef7deca5409474c504d9c927e97249" prot="public" static="no"> <name>SBLOCKSIZE</name> <initializer>8192</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="75" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="75" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a1d55f50ebbb5fa90396f3576e071bc98" prot="public" static="no"> <name>smalllblktosize</name> <param><defname>fs</defname></param> <param><defname>blk</defname></param> <initializer>/* calculates (blk * <ref refid="structfs" kindref="compound">fs</ref>->fs_bsize) */ \ ((blk) << (<ref refid="structfs" kindref="compound">fs</ref>)->fs_bshift)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="579" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="579" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a37c8e3e7ddf943e18f40826f0d4bf6b5" prot="public" static="no"> <name>SUJ_FILE</name> <initializer>".sujournal" /* Journal <ref refid="structfile" kindref="compound">file</ref> <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref> */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="682" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="682" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a91e540c7a8059e7ed242e6b393185134" prot="public" static="no"> <name>SUJ_MAX</name> <initializer>(32 * 1024 * 1024) /* Maximum journal size */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="681" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="681" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a57fecb337d45cced110e07e4453667ba" prot="public" static="no"> <name>SUJ_MIN</name> <initializer>(4 * 1024 * 1024) /* Minimum journal size */</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="680" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="680" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1ae33287b99e13a8ad88976a730658c7fe" prot="public" static="no"> <name>UFSRESUME</name> <initializer><ref refid="ioctl_8h_1a07792d882badfbf686051cd670b6bef0" kindref="member">_IO</ref>('U', 2)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="776" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="776" bodyend="-1"/> </memberdef> <memberdef kind="define" id="ufs_2ffs_2fs_8h_1a52c0d0571a2cba9f05c05e33cc141936" prot="public" static="no"> <name>UFSSUSPEND</name> <initializer><ref refid="ioctl_8h_1af6f978c977cb0e07f43fb862b23a8096" kindref="member">_IOW</ref>('U', 1, <ref refid="mount_8h_1a64b15807dd2ede85d728b779134071a2" kindref="member">fsid_t</ref>)</initializer> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="775" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="775" bodyend="-1"/> </memberdef> </sectiondef> <sectiondef kind="var"> <memberdef kind="variable" id="ufs_2ffs_2fs_8h_1a34ec76b74d405e5b8d84f03da131e31b" prot="public" static="no" mutable="no"> <type>int</type> <definition>int around[]</definition> <argsstring>[]</argsstring> <name>around</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="769" column="19" declfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" declline="769" declcolumn="19"/> </memberdef> <memberdef kind="variable" id="ufs_2ffs_2fs_8h_1a2b6976f7b2ef1386046f64697328599c" prot="public" static="no" mutable="no"> <type><ref refid="include_2sys_2types_8h_1ae2b02ed168fc99cff3851603910b1fb6" kindref="member">u_char</ref> *</type> <definition>u_char* fragtbl[]</definition> <argsstring>[]</argsstring> <name>fragtbl</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="770" column="15" declfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" declline="770" declcolumn="15"/> </memberdef> <memberdef kind="variable" id="ufs_2ffs_2fs_8h_1a9de91045e6b0e9956ab6648124ac3dcc" prot="public" static="no" mutable="no"> <type>int</type> <definition>int inside[]</definition> <argsstring>[]</argsstring> <name>inside</name> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="769" column="12" declfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" declline="769" declcolumn="12"/> </memberdef> </sectiondef> <sectiondef kind="func"> <memberdef kind="function" id="ufs_2ffs_2fs_8h_1a907971fd1d99b7d751ff93ab3e905928" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual"> <type>int</type> <definition>static int lbn_level</definition> <argsstring>(ufs_lbn_t lbn)</argsstring> <name>lbn_level</name> <param> <type><ref refid="ufs_8h_1acfdbacc42c74f81152f66f8f81316513" kindref="member">ufs_lbn_t</ref></type> <declname>lbn</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="631" column="1" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="631" bodyend="648"/> </memberdef> <memberdef kind="function" id="ufs_2ffs_2fs_8h_1a87a066b5d92d13e7f48886f0e7e66681" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual"> <type><ref refid="ufs_8h_1acfdbacc42c74f81152f66f8f81316513" kindref="member">ufs_lbn_t</ref></type> <definition>static ufs_lbn_t lbn_offset</definition> <argsstring>(struct fs *fs, int level)</argsstring> <name>lbn_offset</name> <param> <type>struct <ref refid="structfs" kindref="compound">fs</ref> *</type> <declname>fs</declname> </param> <param> <type>int</type> <declname>level</declname> </param> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" line="651" column="1" bodyfile="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h" bodystart="651" bodyend="658"/> </memberdef> </sectiondef> <briefdescription> </briefdescription> <detaileddescription> </detaileddescription> <programlisting> <codeline lineno="1"><highlight class="comment">/*-</highlight></codeline> <codeline lineno="2"><highlight class="comment"><sp/>*<sp/>Copyright<sp/>(c)<sp/>1982,<sp/>1986,<sp/>1993</highlight></codeline> <codeline lineno="3"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>The<sp/>Regents<sp/>of<sp/>the<sp/>University<sp/>of<sp/>California.<sp/><sp/>All<sp/>rights<sp/>reserved.</highlight></codeline> <codeline lineno="4"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="5"><highlight class="comment"><sp/>*<sp/>Redistribution<sp/>and<sp/>use<sp/>in<sp/>source<sp/>and<sp/>binary<sp/>forms,<sp/>with<sp/>or<sp/>without</highlight></codeline> <codeline lineno="6"><highlight class="comment"><sp/>*<sp/>modification,<sp/>are<sp/>permitted<sp/>provided<sp/>that<sp/>the<sp/>following<sp/>conditions</highlight></codeline> <codeline lineno="7"><highlight class="comment"><sp/>*<sp/>are<sp/>met:</highlight></codeline> <codeline lineno="8"><highlight class="comment"><sp/>*<sp/>1.<sp/>Redistributions<sp/>of<sp/>source<sp/>code<sp/>must<sp/>retain<sp/>the<sp/>above<sp/>copyright</highlight></codeline> <codeline lineno="9"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>notice,<sp/>this<sp/>list<sp/>of<sp/>conditions<sp/>and<sp/>the<sp/>following<sp/>disclaimer.</highlight></codeline> <codeline lineno="10"><highlight class="comment"><sp/>*<sp/>2.<sp/>Redistributions<sp/>in<sp/>binary<sp/>form<sp/>must<sp/>reproduce<sp/>the<sp/>above<sp/>copyright</highlight></codeline> <codeline lineno="11"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>notice,<sp/>this<sp/>list<sp/>of<sp/>conditions<sp/>and<sp/>the<sp/>following<sp/>disclaimer<sp/>in<sp/>the</highlight></codeline> <codeline lineno="12"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>documentation<sp/>and/or<sp/>other<sp/>materials<sp/>provided<sp/>with<sp/>the<sp/>distribution.</highlight></codeline> <codeline lineno="13"><highlight class="comment"><sp/>*<sp/>4.<sp/>Neither<sp/>the<sp/>name<sp/>of<sp/>the<sp/>University<sp/>nor<sp/>the<sp/>names<sp/>of<sp/>its<sp/>contributors</highlight></codeline> <codeline lineno="14"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>may<sp/>be<sp/>used<sp/>to<sp/>endorse<sp/>or<sp/>promote<sp/>products<sp/>derived<sp/>from<sp/>this<sp/>software</highlight></codeline> <codeline lineno="15"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>without<sp/>specific<sp/>prior<sp/>written<sp/>permission.</highlight></codeline> <codeline lineno="16"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="17"><highlight class="comment"><sp/>*<sp/>THIS<sp/>SOFTWARE<sp/>IS<sp/>PROVIDED<sp/>BY<sp/>THE<sp/>REGENTS<sp/>AND<sp/>CONTRIBUTORS<sp/>``AS<sp/>IS''<sp/>AND</highlight></codeline> <codeline lineno="18"><highlight class="comment"><sp/>*<sp/>ANY<sp/>EXPRESS<sp/>OR<sp/>IMPLIED<sp/>WARRANTIES,<sp/>INCLUDING,<sp/>BUT<sp/>NOT<sp/>LIMITED<sp/>TO,<sp/>THE</highlight></codeline> <codeline lineno="19"><highlight class="comment"><sp/>*<sp/>IMPLIED<sp/>WARRANTIES<sp/>OF<sp/>MERCHANTABILITY<sp/>AND<sp/>FITNESS<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE</highlight></codeline> <codeline lineno="20"><highlight class="comment"><sp/>*<sp/>ARE<sp/>DISCLAIMED.<sp/><sp/>IN<sp/>NO<sp/>EVENT<sp/>SHALL<sp/>THE<sp/>REGENTS<sp/>OR<sp/>CONTRIBUTORS<sp/>BE<sp/>LIABLE</highlight></codeline> <codeline lineno="21"><highlight class="comment"><sp/>*<sp/>FOR<sp/>ANY<sp/>DIRECT,<sp/>INDIRECT,<sp/>INCIDENTAL,<sp/>SPECIAL,<sp/>EXEMPLARY,<sp/>OR<sp/>CONSEQUENTIAL</highlight></codeline> <codeline lineno="22"><highlight class="comment"><sp/>*<sp/>DAMAGES<sp/>(INCLUDING,<sp/>BUT<sp/>NOT<sp/>LIMITED<sp/>TO,<sp/>PROCUREMENT<sp/>OF<sp/>SUBSTITUTE<sp/>GOODS</highlight></codeline> <codeline lineno="23"><highlight class="comment"><sp/>*<sp/>OR<sp/>SERVICES;<sp/>LOSS<sp/>OF<sp/>USE,<sp/>DATA,<sp/>OR<sp/>PROFITS;<sp/>OR<sp/>BUSINESS<sp/>INTERRUPTION)</highlight></codeline> <codeline lineno="24"><highlight class="comment"><sp/>*<sp/>HOWEVER<sp/>CAUSED<sp/>AND<sp/>ON<sp/>ANY<sp/>THEORY<sp/>OF<sp/>LIABILITY,<sp/>WHETHER<sp/>IN<sp/>CONTRACT,<sp/>STRICT</highlight></codeline> <codeline lineno="25"><highlight class="comment"><sp/>*<sp/>LIABILITY,<sp/>OR<sp/>TORT<sp/>(INCLUDING<sp/>NEGLIGENCE<sp/>OR<sp/>OTHERWISE)<sp/>ARISING<sp/>IN<sp/>ANY<sp/>WAY</highlight></codeline> <codeline lineno="26"><highlight class="comment"><sp/>*<sp/>OUT<sp/>OF<sp/>THE<sp/>USE<sp/>OF<sp/>THIS<sp/>SOFTWARE,<sp/>EVEN<sp/>IF<sp/>ADVISED<sp/>OF<sp/>THE<sp/>POSSIBILITY<sp/>OF</highlight></codeline> <codeline lineno="27"><highlight class="comment"><sp/>*<sp/>SUCH<sp/>DAMAGE.</highlight></codeline> <codeline lineno="28"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="29"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>@(#)fs.h<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>8.13<sp/>(Berkeley)<sp/>3/21/95</highlight></codeline> <codeline lineno="30"><highlight class="comment"><sp/>*<sp/>$FreeBSD:<sp/>releng/11.1/sys/ufs/ffs/fs.h<sp/>298804<sp/>2016-04-29<sp/>20:43:51Z<sp/>pfg<sp/>$</highlight></codeline> <codeline lineno="31"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="32"><highlight class="normal"></highlight></codeline> <codeline lineno="33"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>_UFS_FFS_FS_H_</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="34"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>_UFS_FFS_FS_H_</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="35"><highlight class="normal"></highlight></codeline> <codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><<ref refid="mount_8h" kindref="compound">vfs/mount.h</ref>></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="37"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><ufs/ufs/dinode.h></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="38"><highlight class="normal"></highlight></codeline> <codeline lineno="39"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="40"><highlight class="comment"><sp/>*<sp/>Each<sp/>disk<sp/>drive<sp/>contains<sp/>some<sp/>number<sp/>of<sp/>filesystems.</highlight></codeline> <codeline lineno="41"><highlight class="comment"><sp/>*<sp/>A<sp/>filesystem<sp/>consists<sp/>of<sp/>a<sp/>number<sp/>of<sp/>cylinder<sp/>groups.</highlight></codeline> <codeline lineno="42"><highlight class="comment"><sp/>*<sp/>Each<sp/>cylinder<sp/>group<sp/>has<sp/>inodes<sp/>and<sp/>data.</highlight></codeline> <codeline lineno="43"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="44"><highlight class="comment"><sp/>*<sp/>A<sp/>filesystem<sp/>is<sp/>described<sp/>by<sp/>its<sp/>super-block,<sp/>which<sp/>in<sp/>turn</highlight></codeline> <codeline lineno="45"><highlight class="comment"><sp/>*<sp/>describes<sp/>the<sp/>cylinder<sp/>groups.<sp/><sp/>The<sp/>super-block<sp/>is<sp/>critical</highlight></codeline> <codeline lineno="46"><highlight class="comment"><sp/>*<sp/>data<sp/>and<sp/>is<sp/>replicated<sp/>in<sp/>each<sp/>cylinder<sp/>group<sp/>to<sp/>protect<sp/>against</highlight></codeline> <codeline lineno="47"><highlight class="comment"><sp/>*<sp/>catastrophic<sp/>loss.<sp/><sp/>This<sp/>is<sp/>done<sp/>at<sp/>`newfs'<sp/>time<sp/>and<sp/>the<sp/>critical</highlight></codeline> <codeline lineno="48"><highlight class="comment"><sp/>*<sp/>super-block<sp/>data<sp/>does<sp/>not<sp/>change,<sp/>so<sp/>the<sp/>copies<sp/>need<sp/>not<sp/>be</highlight></codeline> <codeline lineno="49"><highlight class="comment"><sp/>*<sp/>referenced<sp/>further<sp/>unless<sp/>disaster<sp/>strikes.</highlight></codeline> <codeline lineno="50"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="51"><highlight class="comment"><sp/>*<sp/>For<sp/>filesystem<sp/>fs,<sp/>the<sp/>offsets<sp/>of<sp/>the<sp/>various<sp/>blocks<sp/>of<sp/>interest</highlight></codeline> <codeline lineno="52"><highlight class="comment"><sp/>*<sp/>are<sp/>given<sp/>in<sp/>the<sp/>super<sp/>block<sp/>as:</highlight></codeline> <codeline lineno="53"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>[fs->fs_sblkno]<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Super-block</highlight></codeline> <codeline lineno="54"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>[fs->fs_cblkno]<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Cylinder<sp/>group<sp/>block</highlight></codeline> <codeline lineno="55"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>[fs->fs_iblkno]<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Inode<sp/>blocks</highlight></codeline> <codeline lineno="56"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>[fs->fs_dblkno]<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>Data<sp/>blocks</highlight></codeline> <codeline lineno="57"><highlight class="comment"><sp/>*<sp/>The<sp/>beginning<sp/>of<sp/>cylinder<sp/>group<sp/>cg<sp/>in<sp/>fs,<sp/>is<sp/>given<sp/>by</highlight></codeline> <codeline lineno="58"><highlight class="comment"><sp/>*<sp/>the<sp/>``cgbase(fs,<sp/>cg)''<sp/>macro.</highlight></codeline> <codeline lineno="59"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="60"><highlight class="comment"><sp/>*<sp/>Depending<sp/>on<sp/>the<sp/>architecture<sp/>and<sp/>the<sp/>media,<sp/>the<sp/>superblock<sp/>may</highlight></codeline> <codeline lineno="61"><highlight class="comment"><sp/>*<sp/>reside<sp/>in<sp/>any<sp/>one<sp/>of<sp/>four<sp/>places.<sp/>For<sp/>tiny<sp/>media<sp/>where<sp/>every<sp/>block<sp/></highlight></codeline> <codeline lineno="62"><highlight class="comment"><sp/>*<sp/>counts,<sp/>it<sp/>is<sp/>placed<sp/>at<sp/>the<sp/>very<sp/>front<sp/>of<sp/>the<sp/>partition.<sp/>Historically,</highlight></codeline> <codeline lineno="63"><highlight class="comment"><sp/>*<sp/>UFS1<sp/>placed<sp/>it<sp/>8K<sp/>from<sp/>the<sp/>front<sp/>to<sp/>leave<sp/>room<sp/>for<sp/>the<sp/>disk<sp/>label<sp/>and</highlight></codeline> <codeline lineno="64"><highlight class="comment"><sp/>*<sp/>a<sp/>small<sp/>bootstrap.<sp/>For<sp/>UFS2<sp/>it<sp/>got<sp/>moved<sp/>to<sp/>64K<sp/>from<sp/>the<sp/>front<sp/>to<sp/>leave</highlight></codeline> <codeline lineno="65"><highlight class="comment"><sp/>*<sp/>room<sp/>for<sp/>the<sp/>disk<sp/>label<sp/>and<sp/>a<sp/>bigger<sp/>bootstrap,<sp/>and<sp/>for<sp/>really<sp/>piggy</highlight></codeline> <codeline lineno="66"><highlight class="comment"><sp/>*<sp/>systems<sp/>we<sp/>check<sp/>at<sp/>256K<sp/>from<sp/>the<sp/>front<sp/>if<sp/>the<sp/>first<sp/>three<sp/>fail.<sp/>In</highlight></codeline> <codeline lineno="67"><highlight class="comment"><sp/>*<sp/>all<sp/>cases<sp/>the<sp/>size<sp/>of<sp/>the<sp/>superblock<sp/>will<sp/>be<sp/>SBLOCKSIZE.<sp/>All<sp/>values<sp/>are</highlight></codeline> <codeline lineno="68"><highlight class="comment"><sp/>*<sp/>given<sp/>in<sp/>byte-offset<sp/>form,<sp/>so<sp/>they<sp/>do<sp/>not<sp/>imply<sp/>a<sp/>sector<sp/>size.<sp/>The</highlight></codeline> <codeline lineno="69"><highlight class="comment"><sp/>*<sp/>SBLOCKSEARCH<sp/>specifies<sp/>the<sp/>order<sp/>in<sp/>which<sp/>the<sp/>locations<sp/>should<sp/>be<sp/>searched.</highlight></codeline> <codeline lineno="70"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="71" refid="ufs_2ffs_2fs_8h_1ab6b633b015b70b15317113908ccc0a17" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SBLOCK_FLOPPY<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="72" refid="ufs_2ffs_2fs_8h_1ad25e0f8e55fba4f0d670b43361e6b61e" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SBLOCK_UFS1<sp/><sp/><sp/><sp/><sp/><sp/><sp/>8192</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="73" refid="ufs_2ffs_2fs_8h_1a7376590d1dfaa886ae6ac77649aaea52" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SBLOCK_UFS2<sp/><sp/><sp/><sp/><sp/><sp/>65536</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="74" refid="ufs_2ffs_2fs_8h_1afa52e1b5081edc4bbc9c7e29556bfc92" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SBLOCK_PIGGY<sp/><sp/><sp/><sp/>262144</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="75" refid="ufs_2ffs_2fs_8h_1ab7ef7deca5409474c504d9c927e97249" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SBLOCKSIZE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>8192</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="76" refid="ufs_2ffs_2fs_8h_1a63f5b70b0dfe26fd775e89713f552e23" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SBLOCKSEARCH<sp/>\</highlight></codeline> <codeline lineno="77"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{<sp/>SBLOCK_UFS2,<sp/>SBLOCK_UFS1,<sp/>SBLOCK_FLOPPY,<sp/>SBLOCK_PIGGY,<sp/>-1<sp/>}</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="78"><highlight class="normal"></highlight></codeline> <codeline lineno="79"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="80"><highlight class="comment"><sp/>*<sp/>Max<sp/>number<sp/>of<sp/>fragments<sp/>per<sp/>block.<sp/>This<sp/>value<sp/>is<sp/>NOT<sp/>tweakable.</highlight></codeline> <codeline lineno="81"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="82" refid="ufs_2ffs_2fs_8h_1a0a726df03725023405ee5dd1d3a897c5" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>MAXFRAG<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>8</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="83"><highlight class="normal"></highlight></codeline> <codeline lineno="84"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="85"><highlight class="comment"><sp/>*<sp/>Addresses<sp/>stored<sp/>in<sp/>inodes<sp/>are<sp/>capable<sp/>of<sp/>addressing<sp/>fragments</highlight></codeline> <codeline lineno="86"><highlight class="comment"><sp/>*<sp/>of<sp/>`blocks'.<sp/>File<sp/>system<sp/>blocks<sp/>of<sp/>at<sp/>most<sp/>size<sp/>MAXBSIZE<sp/>can</highlight></codeline> <codeline lineno="87"><highlight class="comment"><sp/>*<sp/>be<sp/>optionally<sp/>broken<sp/>into<sp/>2,<sp/>4,<sp/>or<sp/>8<sp/>pieces,<sp/>each<sp/>of<sp/>which<sp/>is</highlight></codeline> <codeline lineno="88"><highlight class="comment"><sp/>*<sp/>addressable;<sp/>these<sp/>pieces<sp/>may<sp/>be<sp/>DEV_BSIZE,<sp/>or<sp/>some<sp/>multiple<sp/>of</highlight></codeline> <codeline lineno="89"><highlight class="comment"><sp/>*<sp/>a<sp/>DEV_BSIZE<sp/>unit.</highlight></codeline> <codeline lineno="90"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="91"><highlight class="comment"><sp/>*<sp/>Large<sp/>files<sp/>consist<sp/>of<sp/>exclusively<sp/>large<sp/>data<sp/>blocks.<sp/><sp/>To<sp/>avoid</highlight></codeline> <codeline lineno="92"><highlight class="comment"><sp/>*<sp/>undue<sp/>wasted<sp/>disk<sp/>space,<sp/>the<sp/>last<sp/>data<sp/>block<sp/>of<sp/>a<sp/>small<sp/>file<sp/>may<sp/>be</highlight></codeline> <codeline lineno="93"><highlight class="comment"><sp/>*<sp/>allocated<sp/>as<sp/>only<sp/>as<sp/>many<sp/>fragments<sp/>of<sp/>a<sp/>large<sp/>block<sp/>as<sp/>are</highlight></codeline> <codeline lineno="94"><highlight class="comment"><sp/>*<sp/>necessary.<sp/><sp/>The<sp/>filesystem<sp/>format<sp/>retains<sp/>only<sp/>a<sp/>single<sp/>pointer</highlight></codeline> <codeline lineno="95"><highlight class="comment"><sp/>*<sp/>to<sp/>such<sp/>a<sp/>fragment,<sp/>which<sp/>is<sp/>a<sp/>piece<sp/>of<sp/>a<sp/>single<sp/>large<sp/>block<sp/>that</highlight></codeline> <codeline lineno="96"><highlight class="comment"><sp/>*<sp/>has<sp/>been<sp/>divided.<sp/><sp/>The<sp/>size<sp/>of<sp/>such<sp/>a<sp/>fragment<sp/>is<sp/>determinable<sp/>from</highlight></codeline> <codeline lineno="97"><highlight class="comment"><sp/>*<sp/>information<sp/>in<sp/>the<sp/>inode,<sp/>using<sp/>the<sp/>``blksize(fs,<sp/>ip,<sp/>lbn)''<sp/>macro.</highlight></codeline> <codeline lineno="98"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="99"><highlight class="comment"><sp/>*<sp/>The<sp/>filesystem<sp/>records<sp/>space<sp/>availability<sp/>at<sp/>the<sp/>fragment<sp/>level;</highlight></codeline> <codeline lineno="100"><highlight class="comment"><sp/>*<sp/>to<sp/>determine<sp/>block<sp/>availability,<sp/>aligned<sp/>fragments<sp/>are<sp/>examined.</highlight></codeline> <codeline lineno="101"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="102"><highlight class="normal"></highlight></codeline> <codeline lineno="103"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="104"><highlight class="comment"><sp/>*<sp/>MINBSIZE<sp/>is<sp/>the<sp/>smallest<sp/>allowable<sp/>block<sp/>size.</highlight></codeline> <codeline lineno="105"><highlight class="comment"><sp/>*<sp/>In<sp/>order<sp/>to<sp/>insure<sp/>that<sp/>it<sp/>is<sp/>possible<sp/>to<sp/>create<sp/>files<sp/>of<sp/>size</highlight></codeline> <codeline lineno="106"><highlight class="comment"><sp/>*<sp/>2^32<sp/>with<sp/>only<sp/>two<sp/>levels<sp/>of<sp/>indirection,<sp/>MINBSIZE<sp/>is<sp/>set<sp/>to<sp/>4096.</highlight></codeline> <codeline lineno="107"><highlight class="comment"><sp/>*<sp/>MINBSIZE<sp/>must<sp/>be<sp/>big<sp/>enough<sp/>to<sp/>hold<sp/>a<sp/>cylinder<sp/>group<sp/>block,</highlight></codeline> <codeline lineno="108"><highlight class="comment"><sp/>*<sp/>thus<sp/>changes<sp/>to<sp/>(struct<sp/>cg)<sp/>must<sp/>keep<sp/>its<sp/>size<sp/>within<sp/>MINBSIZE.</highlight></codeline> <codeline lineno="109"><highlight class="comment"><sp/>*<sp/>Note<sp/>that<sp/>super<sp/>blocks<sp/>are<sp/>always<sp/>of<sp/>size<sp/>SBLOCKSIZE,</highlight></codeline> <codeline lineno="110"><highlight class="comment"><sp/>*<sp/>and<sp/>that<sp/>both<sp/>SBLOCKSIZE<sp/>and<sp/>MAXBSIZE<sp/>must<sp/>be<sp/>>=<sp/>MINBSIZE.</highlight></codeline> <codeline lineno="111"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="112" refid="ufs_2ffs_2fs_8h_1af1c15a7b2752e4c2fed4a3819192f8f3" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>MINBSIZE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>4096</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="113"><highlight class="normal"></highlight></codeline> <codeline lineno="114"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="115"><highlight class="comment"><sp/>*<sp/>The<sp/>path<sp/>name<sp/>on<sp/>which<sp/>the<sp/>filesystem<sp/>is<sp/>mounted<sp/>is<sp/>maintained</highlight></codeline> <codeline lineno="116"><highlight class="comment"><sp/>*<sp/>in<sp/>fs_fsmnt.<sp/>MAXMNTLEN<sp/>defines<sp/>the<sp/>amount<sp/>of<sp/>space<sp/>allocated<sp/>in</highlight></codeline> <codeline lineno="117"><highlight class="comment"><sp/>*<sp/>the<sp/>super<sp/>block<sp/>for<sp/>this<sp/>name.</highlight></codeline> <codeline lineno="118"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="119" refid="ufs_2ffs_2fs_8h_1a0beb14d415a358b818cec76550e4fad1" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>MAXMNTLEN<sp/><sp/><sp/><sp/><sp/><sp/><sp/>468</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="120"><highlight class="normal"></highlight></codeline> <codeline lineno="121"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="122"><highlight class="comment"><sp/>*<sp/>The<sp/>volume<sp/>name<sp/>for<sp/>this<sp/>filesystem<sp/>is<sp/>maintained<sp/>in<sp/>fs_volname.</highlight></codeline> <codeline lineno="123"><highlight class="comment"><sp/>*<sp/>MAXVOLLEN<sp/>defines<sp/>the<sp/>length<sp/>of<sp/>the<sp/>buffer<sp/>allocated.</highlight></codeline> <codeline lineno="124"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="125" refid="ufs_2ffs_2fs_8h_1ac5859c27029a47d17c1279cc197f05c3" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>MAXVOLLEN<sp/><sp/><sp/><sp/><sp/><sp/><sp/>32</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="126"><highlight class="normal"></highlight></codeline> <codeline lineno="127"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="128"><highlight class="comment"><sp/>*<sp/>There<sp/>is<sp/>a<sp/>128-byte<sp/>region<sp/>in<sp/>the<sp/>superblock<sp/>reserved<sp/>for<sp/>in-core</highlight></codeline> <codeline lineno="129"><highlight class="comment"><sp/>*<sp/>pointers<sp/>to<sp/>summary<sp/>information.<sp/>Originally<sp/>this<sp/>included<sp/>an<sp/>array</highlight></codeline> <codeline lineno="130"><highlight class="comment"><sp/>*<sp/>of<sp/>pointers<sp/>to<sp/>blocks<sp/>of<sp/>struct<sp/>csum;<sp/>now<sp/>there<sp/>are<sp/>just<sp/>a<sp/>few</highlight></codeline> <codeline lineno="131"><highlight class="comment"><sp/>*<sp/>pointers<sp/>and<sp/>the<sp/>remaining<sp/>space<sp/>is<sp/>padded<sp/>with<sp/>fs_ocsp[].</highlight></codeline> <codeline lineno="132"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="133"><highlight class="comment"><sp/>*<sp/>NOCSPTRS<sp/>determines<sp/>the<sp/>size<sp/>of<sp/>this<sp/>padding.<sp/>One<sp/>pointer<sp/>(fs_csp)</highlight></codeline> <codeline lineno="134"><highlight class="comment"><sp/>*<sp/>is<sp/>taken<sp/>away<sp/>to<sp/>point<sp/>to<sp/>a<sp/>contiguous<sp/>array<sp/>of<sp/>struct<sp/>csum<sp/>for</highlight></codeline> <codeline lineno="135"><highlight class="comment"><sp/>*<sp/>all<sp/>cylinder<sp/>groups;<sp/>a<sp/>second<sp/>(fs_maxcluster)<sp/>points<sp/>to<sp/>an<sp/>array</highlight></codeline> <codeline lineno="136"><highlight class="comment"><sp/>*<sp/>of<sp/>cluster<sp/>sizes<sp/>that<sp/>is<sp/>computed<sp/>as<sp/>cylinder<sp/>groups<sp/>are<sp/>inspected,</highlight></codeline> <codeline lineno="137"><highlight class="comment"><sp/>*<sp/>and<sp/>the<sp/>third<sp/>points<sp/>to<sp/>an<sp/>array<sp/>that<sp/>tracks<sp/>the<sp/>creation<sp/>of<sp/>new</highlight></codeline> <codeline lineno="138"><highlight class="comment"><sp/>*<sp/>directories.<sp/>A<sp/>fourth<sp/>pointer,<sp/>fs_active,<sp/>is<sp/>used<sp/>when<sp/>creating</highlight></codeline> <codeline lineno="139"><highlight class="comment"><sp/>*<sp/>snapshots;<sp/>it<sp/>points<sp/>to<sp/>a<sp/>bitmap<sp/>of<sp/>cylinder<sp/>groups<sp/>for<sp/>which<sp/>the</highlight></codeline> <codeline lineno="140"><highlight class="comment"><sp/>*<sp/>free-block<sp/>bitmap<sp/>has<sp/>changed<sp/>since<sp/>the<sp/>snapshot<sp/>operation<sp/>began.</highlight></codeline> <codeline lineno="141"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="142" refid="ufs_2ffs_2fs_8h_1aca816b354128719c1523e33152a13637" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>NOCSPTRS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((128<sp/>/<sp/>sizeof(void<sp/>*))<sp/>-<sp/>4)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="143"><highlight class="normal"></highlight></codeline> <codeline lineno="144"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="145"><highlight class="comment"><sp/>*<sp/>A<sp/>summary<sp/>of<sp/>contiguous<sp/>blocks<sp/>of<sp/>various<sp/>sizes<sp/>is<sp/>maintained</highlight></codeline> <codeline lineno="146"><highlight class="comment"><sp/>*<sp/>in<sp/>each<sp/>cylinder<sp/>group.<sp/>Normally<sp/>this<sp/>is<sp/>set<sp/>by<sp/>the<sp/>initial</highlight></codeline> <codeline lineno="147"><highlight class="comment"><sp/>*<sp/>value<sp/>of<sp/>fs_maxcontig.<sp/>To<sp/>conserve<sp/>space,<sp/>a<sp/>maximum<sp/>summary<sp/>size</highlight></codeline> <codeline lineno="148"><highlight class="comment"><sp/>*<sp/>is<sp/>set<sp/>by<sp/>FS_MAXCONTIG.</highlight></codeline> <codeline lineno="149"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="150" refid="ufs_2ffs_2fs_8h_1ae6032640f0739d9bf722b737dc7d8af1" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_MAXCONTIG<sp/><sp/><sp/><sp/>16</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="151"><highlight class="normal"></highlight></codeline> <codeline lineno="152"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="153"><highlight class="comment"><sp/>*<sp/>MINFREE<sp/>gives<sp/>the<sp/>minimum<sp/>acceptable<sp/>percentage<sp/>of<sp/>filesystem</highlight></codeline> <codeline lineno="154"><highlight class="comment"><sp/>*<sp/>blocks<sp/>which<sp/>may<sp/>be<sp/>free.<sp/>If<sp/>the<sp/>freelist<sp/>drops<sp/>below<sp/>this<sp/>level</highlight></codeline> <codeline lineno="155"><highlight class="comment"><sp/>*<sp/>only<sp/>the<sp/>superuser<sp/>may<sp/>continue<sp/>to<sp/>allocate<sp/>blocks.<sp/>This<sp/>may</highlight></codeline> <codeline lineno="156"><highlight class="comment"><sp/>*<sp/>be<sp/>set<sp/>to<sp/>0<sp/>if<sp/>no<sp/>reserve<sp/>of<sp/>free<sp/>blocks<sp/>is<sp/>deemed<sp/>necessary,</highlight></codeline> <codeline lineno="157"><highlight class="comment"><sp/>*<sp/>however<sp/>throughput<sp/>drops<sp/>by<sp/>fifty<sp/>percent<sp/>if<sp/>the<sp/>filesystem</highlight></codeline> <codeline lineno="158"><highlight class="comment"><sp/>*<sp/>is<sp/>run<sp/>at<sp/>between<sp/>95%<sp/>and<sp/>100%<sp/>full;<sp/>thus<sp/>the<sp/>minimum<sp/>default</highlight></codeline> <codeline lineno="159"><highlight class="comment"><sp/>*<sp/>value<sp/>of<sp/>fs_minfree<sp/>is<sp/>5%.<sp/>However,<sp/>to<sp/>get<sp/>good<sp/>clustering</highlight></codeline> <codeline lineno="160"><highlight class="comment"><sp/>*<sp/>performance,<sp/>10%<sp/>is<sp/>a<sp/>better<sp/>choice.<sp/>hence<sp/>we<sp/>use<sp/>10%<sp/>as<sp/>our</highlight></codeline> <codeline lineno="161"><highlight class="comment"><sp/>*<sp/>default<sp/>value.<sp/>With<sp/>10%<sp/>free<sp/>space,<sp/>fragmentation<sp/>is<sp/>not<sp/>a</highlight></codeline> <codeline lineno="162"><highlight class="comment"><sp/>*<sp/>problem,<sp/>so<sp/>we<sp/>choose<sp/>to<sp/>optimize<sp/>for<sp/>time.</highlight></codeline> <codeline lineno="163"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="164" refid="ufs_2ffs_2fs_8h_1a4d07ee78d02c6f1d6a1fc1c1ead0a262" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>MINFREE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>8</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="165" refid="ufs_2ffs_2fs_8h_1ac0137ded6f8af101a0ea008ffbe62d7f" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>DEFAULTOPT<sp/><sp/><sp/><sp/><sp/><sp/>FS_OPTTIME</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="166"><highlight class="normal"></highlight></codeline> <codeline lineno="167"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="168"><highlight class="comment"><sp/>*<sp/>Grigoriy<sp/>Orlov<sp/><gluk@ptci.ru><sp/>has<sp/>done<sp/>some<sp/>extensive<sp/>work<sp/>to<sp/>fine</highlight></codeline> <codeline lineno="169"><highlight class="comment"><sp/>*<sp/>tune<sp/>the<sp/>layout<sp/>preferences<sp/>for<sp/>directories<sp/>within<sp/>a<sp/>filesystem.</highlight></codeline> <codeline lineno="170"><highlight class="comment"><sp/>*<sp/>His<sp/>algorithm<sp/>can<sp/>be<sp/>tuned<sp/>by<sp/>adjusting<sp/>the<sp/>following<sp/>parameters</highlight></codeline> <codeline lineno="171"><highlight class="comment"><sp/>*<sp/>which<sp/>tell<sp/>the<sp/>system<sp/>the<sp/>average<sp/>file<sp/>size<sp/>and<sp/>the<sp/>average<sp/>number</highlight></codeline> <codeline lineno="172"><highlight class="comment"><sp/>*<sp/>of<sp/>files<sp/>per<sp/>directory.<sp/>These<sp/>defaults<sp/>are<sp/>well<sp/>selected<sp/>for<sp/>typical</highlight></codeline> <codeline lineno="173"><highlight class="comment"><sp/>*<sp/>filesystems,<sp/>but<sp/>may<sp/>need<sp/>to<sp/>be<sp/>tuned<sp/>for<sp/>odd<sp/>cases<sp/>like<sp/>filesystems</highlight></codeline> <codeline lineno="174"><highlight class="comment"><sp/>*<sp/>being<sp/>used<sp/>for<sp/>squid<sp/>caches<sp/>or<sp/>news<sp/>spools.</highlight></codeline> <codeline lineno="175"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="176" refid="ufs_2ffs_2fs_8h_1aa6dce94fc058cff5a9d12840925229fe" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>AVFILESIZ<sp/><sp/><sp/><sp/><sp/><sp/><sp/>16384<sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>expected<sp/>average<sp/>file<sp/>size<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="177" refid="ufs_2ffs_2fs_8h_1abeb46ff463938c875d10dc7d077f6503" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>AFPDIR<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>64<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>expected<sp/>number<sp/>of<sp/>files<sp/>per<sp/>directory<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="178"><highlight class="normal"></highlight></codeline> <codeline lineno="179"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="180"><highlight class="comment"><sp/>*<sp/>The<sp/>maximum<sp/>number<sp/>of<sp/>snapshot<sp/>nodes<sp/>that<sp/>can<sp/>be<sp/>associated</highlight></codeline> <codeline lineno="181"><highlight class="comment"><sp/>*<sp/>with<sp/>each<sp/>filesystem.<sp/>This<sp/>limit<sp/>affects<sp/>only<sp/>the<sp/>number<sp/>of</highlight></codeline> <codeline lineno="182"><highlight class="comment"><sp/>*<sp/>snapshot<sp/>files<sp/>that<sp/>can<sp/>be<sp/>recorded<sp/>within<sp/>the<sp/>superblock<sp/>so</highlight></codeline> <codeline lineno="183"><highlight class="comment"><sp/>*<sp/>that<sp/>they<sp/>can<sp/>be<sp/>found<sp/>when<sp/>the<sp/>filesystem<sp/>is<sp/>mounted.<sp/>However,</highlight></codeline> <codeline lineno="184"><highlight class="comment"><sp/>*<sp/>maintaining<sp/>too<sp/>many<sp/>will<sp/>slow<sp/>the<sp/>filesystem<sp/>performance,<sp/>so</highlight></codeline> <codeline lineno="185"><highlight class="comment"><sp/>*<sp/>having<sp/>this<sp/>limit<sp/>is<sp/>a<sp/>good<sp/>idea.</highlight></codeline> <codeline lineno="186"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="187" refid="ufs_2ffs_2fs_8h_1a04c33da6605e73954cf2ff32c3f0f15a" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FSMAXSNAP<sp/>20</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="188"><highlight class="normal"></highlight></codeline> <codeline lineno="189"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="190"><highlight class="comment"><sp/>*<sp/>Used<sp/>to<sp/>identify<sp/>special<sp/>blocks<sp/>in<sp/>snapshots:</highlight></codeline> <codeline lineno="191"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="192"><highlight class="comment"><sp/>*<sp/>BLK_NOCOPY<sp/>-<sp/>A<sp/>block<sp/>that<sp/>was<sp/>unallocated<sp/>at<sp/>the<sp/>time<sp/>the<sp/>snapshot</highlight></codeline> <codeline lineno="193"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>was<sp/>taken,<sp/>hence<sp/>does<sp/>not<sp/>need<sp/>to<sp/>be<sp/>copied<sp/>when<sp/>written.</highlight></codeline> <codeline lineno="194"><highlight class="comment"><sp/>*<sp/>BLK_SNAP<sp/>-<sp/>A<sp/>block<sp/>held<sp/>by<sp/>another<sp/>snapshot<sp/>that<sp/>is<sp/>not<sp/>needed<sp/>by<sp/>this</highlight></codeline> <codeline lineno="195"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>snapshot.<sp/>When<sp/>the<sp/>other<sp/>snapshot<sp/>is<sp/>freed,<sp/>the<sp/>BLK_SNAP<sp/>entries</highlight></codeline> <codeline lineno="196"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>are<sp/>converted<sp/>to<sp/>BLK_NOCOPY.<sp/>These<sp/>are<sp/>needed<sp/>to<sp/>allow<sp/>fsck<sp/>to</highlight></codeline> <codeline lineno="197"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>identify<sp/>blocks<sp/>that<sp/>are<sp/>in<sp/>use<sp/>by<sp/>other<sp/>snapshots<sp/>(which<sp/>are</highlight></codeline> <codeline lineno="198"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/><sp/>expunged<sp/>from<sp/>this<sp/>snapshot).</highlight></codeline> <codeline lineno="199"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="200" refid="ufs_2ffs_2fs_8h_1a5bb4110dff6259237b59f53236b0c1a1" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BLK_NOCOPY<sp/>((ufs2_daddr_t)(1))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="201" refid="ufs_2ffs_2fs_8h_1affee0e4ffe574b078c3355a00a9b3f14" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>BLK_SNAP<sp/>((ufs2_daddr_t)(2))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="202"><highlight class="normal"></highlight></codeline> <codeline lineno="203"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="204"><highlight class="comment"><sp/>*<sp/>Sysctl<sp/>values<sp/>for<sp/>the<sp/>fast<sp/>filesystem.</highlight></codeline> <codeline lineno="205"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="206" refid="ufs_2ffs_2fs_8h_1a0e74599a871f2abe758bef1b42123bb0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_ADJ_REFCNT<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>1<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>adjust<sp/>inode<sp/>reference<sp/>count<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="207" refid="ufs_2ffs_2fs_8h_1aa05619dd59913bfda3199f12c7cce015" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_ADJ_BLKCNT<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>2<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>adjust<sp/>inode<sp/>used<sp/>block<sp/>count<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="208" refid="ufs_2ffs_2fs_8h_1a77d83208fbc3af8385cda5d0c47cbc61" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_BLK_FREE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>3<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>free<sp/>range<sp/>of<sp/>blocks<sp/>in<sp/>map<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="209" refid="ufs_2ffs_2fs_8h_1a17bd0a0454da06da9aab1f86bd0b8ea4" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_DIR_FREE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>4<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>free<sp/>specified<sp/>dir<sp/>inodes<sp/>in<sp/>map<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="210" refid="ufs_2ffs_2fs_8h_1a3a3db08c0042cf109c8539af5e531711" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_FILE_FREE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>5<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>free<sp/>specified<sp/>file<sp/>inodes<sp/>in<sp/>map<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="211" refid="ufs_2ffs_2fs_8h_1a230781142be04b4f24fcf054aa56f9e9" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_SET_FLAGS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>6<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>set<sp/>filesystem<sp/>flags<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="212" refid="ufs_2ffs_2fs_8h_1ade4455eda3d3ff668c60075ac72c6d14" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_ADJ_NDIR<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>7<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>adjust<sp/>number<sp/>of<sp/>directories<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="213" refid="ufs_2ffs_2fs_8h_1a7eeb711dcadf6283246d8a9e61980a1f" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_ADJ_NBFREE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>8<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>adjust<sp/>number<sp/>of<sp/>free<sp/>blocks<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="214" refid="ufs_2ffs_2fs_8h_1a86d6104e2b0109286e13c06bb0212f46" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_ADJ_NIFREE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>9<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>adjust<sp/>number<sp/>of<sp/>free<sp/>inodes<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="215" refid="ufs_2ffs_2fs_8h_1a7c032804ff7a087d3ffdd6440c95051c" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_ADJ_NFFREE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>10<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>adjust<sp/>number<sp/>of<sp/>free<sp/>frags<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="216" refid="ufs_2ffs_2fs_8h_1ae96f68bf42f9dc8f9802715ef3c109ef" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_ADJ_NUMCLUSTERS<sp/><sp/><sp/><sp/><sp/>11<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>adjust<sp/>number<sp/>of<sp/>free<sp/>clusters<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="217" refid="ufs_2ffs_2fs_8h_1aab848f47ad66f7c4da3dad848157af4f" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_SET_CWD<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>12<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>set<sp/>current<sp/>directory<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="218" refid="ufs_2ffs_2fs_8h_1a37a8933573bf9c2e5a8a371355f41e36" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_SET_DOTDOT<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>13<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>set<sp/>inode<sp/>number<sp/>for<sp/>".."<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="219" refid="ufs_2ffs_2fs_8h_1a41f2e1110d0c1715fc71389ea705d398" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_UNLINK<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>14<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>remove<sp/>a<sp/>name<sp/>in<sp/>the<sp/>filesystem<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="220" refid="ufs_2ffs_2fs_8h_1a56b97e7252798995b0debdd6783bcdcf" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_SET_INODE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>15<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>update<sp/>an<sp/>on-disk<sp/>inode<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="221" refid="ufs_2ffs_2fs_8h_1ad8f63d2ce3a63a7026aa4af23e28c759" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_SET_BUFOUTPUT<sp/><sp/><sp/><sp/><sp/><sp/><sp/>16<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>set<sp/>buffered<sp/>writing<sp/>on<sp/>descriptor<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="222" refid="ufs_2ffs_2fs_8h_1aabac33a5c8c848deec69644756657ca0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_MAXID<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>16<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>valid<sp/>ffs<sp/>ids<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="223"><highlight class="normal"></highlight></codeline> <codeline lineno="224"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="225"><highlight class="comment"><sp/>*<sp/>Command<sp/>structure<sp/>passed<sp/>in<sp/>to<sp/>the<sp/>filesystem<sp/>to<sp/>adjust<sp/>filesystem<sp/>values.</highlight></codeline> <codeline lineno="226"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="227" refid="ufs_2ffs_2fs_8h_1acb828f4d6f55a3dd7e66fcdf4ed54627" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FFS_CMD_VERSION<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x19790518<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>version<sp/>ID<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="228" refid="structfsck__cmd" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structfsck__cmd" kindref="compound">fsck_cmd</ref><sp/>{</highlight></codeline> <codeline lineno="229" refid="structfsck__cmd_1afecc79b8563530b01494949d6ab04f71" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><ref refid="structfsck__cmd_1afecc79b8563530b01494949d6ab04f71" kindref="member">version</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>version<sp/>of<sp/>command<sp/>structure<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="230" refid="structfsck__cmd_1ae5e77c2532806fbbdf84f22a4beb1acd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><ref refid="structfsck__cmd_1ae5e77c2532806fbbdf84f22a4beb1acd" kindref="member">handle</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>reference<sp/>to<sp/>filesystem<sp/>to<sp/>be<sp/>changed<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="231" refid="structfsck__cmd_1ac57cfd510bb1787c63f08b54ed3280cd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structfsck__cmd_1ac57cfd510bb1787c63f08b54ed3280cd" kindref="member">value</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>inode<sp/>or<sp/>block<sp/>number<sp/>to<sp/>be<sp/>affected<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="232" refid="structfsck__cmd_1ae25303126aeff4fa5fa837146d210186" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structfsck__cmd_1ae25303126aeff4fa5fa837146d210186" kindref="member">size</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>amount<sp/>or<sp/>range<sp/>to<sp/>be<sp/>adjusted<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="233" refid="structfsck__cmd_1a61850225bd7e885356aee009319100a0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structfsck__cmd_1a61850225bd7e885356aee009319100a0" kindref="member">spare</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>reserved<sp/>for<sp/>future<sp/>use<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="234"><highlight class="normal">};</highlight></codeline> <codeline lineno="235"><highlight class="normal"></highlight></codeline> <codeline lineno="236"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="237"><highlight class="comment"><sp/>*<sp/>Per<sp/>cylinder<sp/>group<sp/>information;<sp/>summarized<sp/>in<sp/>blocks<sp/>allocated</highlight></codeline> <codeline lineno="238"><highlight class="comment"><sp/>*<sp/>from<sp/>first<sp/>cylinder<sp/>group<sp/>data<sp/>blocks.<sp/><sp/>These<sp/>blocks<sp/>have<sp/>to<sp/>be</highlight></codeline> <codeline lineno="239"><highlight class="comment"><sp/>*<sp/>read<sp/>in<sp/>from<sp/>fs_csaddr<sp/>(size<sp/>fs_cssize)<sp/>in<sp/>addition<sp/>to<sp/>the</highlight></codeline> <codeline lineno="240"><highlight class="comment"><sp/>*<sp/>super<sp/>block.</highlight></codeline> <codeline lineno="241"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="242" refid="structcsum" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structcsum" kindref="compound">csum</ref><sp/>{</highlight></codeline> <codeline lineno="243" refid="structcsum_1a910936b597b99baa5f64ddd5a15f6b70" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><ref refid="structcsum_1a910936b597b99baa5f64ddd5a15f6b70" kindref="member">cs_ndir</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>directories<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="244" refid="structcsum_1ac77b40fc2a8d65ec266e9471fb96ed99" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><ref refid="structcsum_1ac77b40fc2a8d65ec266e9471fb96ed99" kindref="member">cs_nbfree</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>free<sp/>blocks<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="245" refid="structcsum_1a997edf4fbc43862abb72a4a7e411a51d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><ref refid="structcsum_1a997edf4fbc43862abb72a4a7e411a51d" kindref="member">cs_nifree</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>free<sp/>inodes<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="246" refid="structcsum_1a4725bcc5b848a377eb7aeb181018405d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><ref refid="structcsum_1a4725bcc5b848a377eb7aeb181018405d" kindref="member">cs_nffree</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>free<sp/>frags<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="247"><highlight class="normal">};</highlight></codeline> <codeline lineno="248" refid="structcsum__total" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structcsum__total" kindref="compound">csum_total</ref><sp/>{</highlight></codeline> <codeline lineno="249" refid="structcsum__total_1ace49dca16f94651c7e9b1df65d8197d9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structcsum__total_1ace49dca16f94651c7e9b1df65d8197d9" kindref="member">cs_ndir</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>directories<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="250" refid="structcsum__total_1ac41c6231e09b4ca0b7fd2fe16d73abee" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structcsum__total_1ac41c6231e09b4ca0b7fd2fe16d73abee" kindref="member">cs_nbfree</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>free<sp/>blocks<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="251" refid="structcsum__total_1a804f2ae79c647da155cbd6ea5952b3b3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structcsum__total_1a804f2ae79c647da155cbd6ea5952b3b3" kindref="member">cs_nifree</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>free<sp/>inodes<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="252" refid="structcsum__total_1a6d734f6ae45524cb242fb899168cc1e6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structcsum__total_1a6d734f6ae45524cb242fb899168cc1e6" kindref="member">cs_nffree</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>free<sp/>frags<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="253" refid="structcsum__total_1a89edf9903e16183ddc371bbbc7756217" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structcsum__total_1a89edf9903e16183ddc371bbbc7756217" kindref="member">cs_numclusters</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>free<sp/>clusters<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="254" refid="structcsum__total_1ab96e3e2dbc1ce2a4b2f8bbdcdba76200" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><ref refid="structcsum__total_1ab96e3e2dbc1ce2a4b2f8bbdcdba76200" kindref="member">cs_spare</ref>[3];<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>future<sp/>expansion<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="255"><highlight class="normal">};</highlight></codeline> <codeline lineno="256"><highlight class="normal"></highlight></codeline> <codeline lineno="257"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="258"><highlight class="comment"><sp/>*<sp/>Super<sp/>block<sp/>for<sp/>an<sp/>FFS<sp/>filesystem.</highlight></codeline> <codeline lineno="259"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="260" refid="structfs" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structfs" kindref="compound">fs</ref><sp/>{</highlight></codeline> <codeline lineno="261" refid="structfs_1a845f442a845714c10fff6d8b12c9eb9e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a845f442a845714c10fff6d8b12c9eb9e" kindref="member">fs_firstfield</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>historic<sp/>filesystem<sp/>linked<sp/>list,<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="262" refid="structfs_1a7246de3f8042955f49127b1e656838f5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a7246de3f8042955f49127b1e656838f5" kindref="member">fs_unused_1</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/><sp/><sp/><sp/><sp/>used<sp/>for<sp/>incore<sp/>super<sp/>blocks<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="263" refid="structfs_1ab96f2622ae5d8b12c0ca31a210b3c58e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ab96f2622ae5d8b12c0ca31a210b3c58e" kindref="member">fs_sblkno</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>offset<sp/>of<sp/>super-block<sp/>in<sp/>filesys<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="264" refid="structfs_1adedb82f28a6436a506aa3c47bdf49aa0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1adedb82f28a6436a506aa3c47bdf49aa0" kindref="member">fs_cblkno</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>offset<sp/>of<sp/>cyl-block<sp/>in<sp/>filesys<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="265" refid="structfs_1a680d9067242a7b551779146d839997f4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a680d9067242a7b551779146d839997f4" kindref="member">fs_iblkno</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>offset<sp/>of<sp/>inode-blocks<sp/>in<sp/>filesys<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="266" refid="structfs_1afc80e8002a127f6e31ab675bc79d7466" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1afc80e8002a127f6e31ab675bc79d7466" kindref="member">fs_dblkno</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>offset<sp/>of<sp/>first<sp/>data<sp/>after<sp/>cg<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="267" refid="structfs_1a0e65a1457e48bf92c3ff9ed5de2d2f97" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a0e65a1457e48bf92c3ff9ed5de2d2f97" kindref="member">fs_old_cgoffset</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cylinder<sp/>group<sp/>offset<sp/>in<sp/>cylinder<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="268" refid="structfs_1a3372db524b01604405d0736d4c76ed88" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a3372db524b01604405d0736d4c76ed88" kindref="member">fs_old_cgmask</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>used<sp/>to<sp/>calc<sp/>mod<sp/>fs_ntrak<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="269" refid="structfs_1a948e2a387ab0a3cfd674e93db8e9faf0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a948e2a387ab0a3cfd674e93db8e9faf0" kindref="member">fs_old_time</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>last<sp/>time<sp/>written<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="270" refid="structfs_1ad24dc27973a0594319921fe1aa0394d4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ad24dc27973a0594319921fe1aa0394d4" kindref="member">fs_old_size</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>blocks<sp/>in<sp/>fs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="271" refid="structfs_1a07a13bddf97b62b08ec62f12f788be8a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a07a13bddf97b62b08ec62f12f788be8a" kindref="member">fs_old_dsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>data<sp/>blocks<sp/>in<sp/>fs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="272" refid="structfs_1a2d9e55c707f7e3d817aecadcdd64caaf" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structfs_1a2d9e55c707f7e3d817aecadcdd64caaf" kindref="member">fs_ncg</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>cylinder<sp/>groups<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="273" refid="structfs_1abeaa37858276e7d7d7f8f4260bc53f6d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1abeaa37858276e7d7d7f8f4260bc53f6d" kindref="member">fs_bsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>size<sp/>of<sp/>basic<sp/>blocks<sp/>in<sp/>fs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="274" refid="structfs_1ac2a347c2b6170615954aee791991f94d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ac2a347c2b6170615954aee791991f94d" kindref="member">fs_fsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>size<sp/>of<sp/>frag<sp/>blocks<sp/>in<sp/>fs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="275" refid="structfs_1a13aa148271139d206d6b778ac9b3ed09" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a13aa148271139d206d6b778ac9b3ed09" kindref="member">fs_frag</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>frags<sp/>in<sp/>a<sp/>block<sp/>in<sp/>fs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="276"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>these<sp/>are<sp/>configuration<sp/>parameters<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="277" refid="structfs_1a3b39e3f97e0438ecbb1a953dec03a5c1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a3b39e3f97e0438ecbb1a953dec03a5c1" kindref="member">fs_minfree</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>minimum<sp/>percentage<sp/>of<sp/>free<sp/>blocks<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="278" refid="structfs_1a31507b3bebe2528e83e9eecadea5fca0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a31507b3bebe2528e83e9eecadea5fca0" kindref="member">fs_old_rotdelay</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>num<sp/>of<sp/>ms<sp/>for<sp/>optimal<sp/>next<sp/>block<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="279" refid="structfs_1af615de722bf977da3bf0b21e99099358" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1af615de722bf977da3bf0b21e99099358" kindref="member">fs_old_rps</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>disk<sp/>revolutions<sp/>per<sp/>second<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="280"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>these<sp/>fields<sp/>can<sp/>be<sp/>computed<sp/>from<sp/>the<sp/>others<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="281" refid="structfs_1a9a6df636b99f001bb0fe96c2c567c3db" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a9a6df636b99f001bb0fe96c2c567c3db" kindref="member">fs_bmask</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>``blkoff''<sp/>calc<sp/>of<sp/>blk<sp/>offsets<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="282" refid="structfs_1af447cdadaacd96c24c81f7e34c0059f5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1af447cdadaacd96c24c81f7e34c0059f5" kindref="member">fs_fmask</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>``fragoff''<sp/>calc<sp/>of<sp/>frag<sp/>offsets<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="283" refid="structfs_1a664686425d41a31c188000518c356682" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a664686425d41a31c188000518c356682" kindref="member">fs_bshift</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>``lblkno''<sp/>calc<sp/>of<sp/>logical<sp/>blkno<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="284" refid="structfs_1ac62c66d38fde6372b81e3cf8ef8ec6f2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ac62c66d38fde6372b81e3cf8ef8ec6f2" kindref="member">fs_fshift</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>``numfrags''<sp/>calc<sp/>number<sp/>of<sp/>frags<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="285"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>these<sp/>are<sp/>configuration<sp/>parameters<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="286" refid="structfs_1a78bdd388e46c8136e6f9e5b6b7a3f600" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a78bdd388e46c8136e6f9e5b6b7a3f600" kindref="member">fs_maxcontig</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>max<sp/>number<sp/>of<sp/>contiguous<sp/>blks<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="287" refid="structfs_1a1236b6b674047859269b8df46a745aba" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a1236b6b674047859269b8df46a745aba" kindref="member">fs_maxbpg</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>max<sp/>number<sp/>of<sp/>blks<sp/>per<sp/>cyl<sp/>group<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="288"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>these<sp/>fields<sp/>can<sp/>be<sp/>computed<sp/>from<sp/>the<sp/>others<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="289" refid="structfs_1a27f2b7e09b8716cf08237aba7529fbf7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a27f2b7e09b8716cf08237aba7529fbf7" kindref="member">fs_fragshift</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>block<sp/>to<sp/>frag<sp/>shift<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="290" refid="structfs_1a420213fcd930d17a087a39fa48eab6bb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a420213fcd930d17a087a39fa48eab6bb" kindref="member">fs_fsbtodb</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>fsbtodb<sp/>and<sp/>dbtofsb<sp/>shift<sp/>constant<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="291" refid="structfs_1a60ddc7f4adc14ba5f09977808f93b124" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a60ddc7f4adc14ba5f09977808f93b124" kindref="member">fs_sbsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>actual<sp/>size<sp/>of<sp/>super<sp/>block<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="292" refid="structfs_1ae626e7eadba9d15bd1aa6bd733de59fe" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ae626e7eadba9d15bd1aa6bd733de59fe" kindref="member">fs_spare1</ref>[2];<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>fs_csmask<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="293"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>fs_csshift<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="294" refid="structfs_1a2d119c1181a7e3acad4d7705a589d20b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a2d119c1181a7e3acad4d7705a589d20b" kindref="member">fs_nindir</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>value<sp/>of<sp/>NINDIR<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="295" refid="structfs_1a733402e62d65acbcba0ab0468022b4d5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structfs_1a733402e62d65acbcba0ab0468022b4d5" kindref="member">fs_inopb</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>value<sp/>of<sp/>INOPB<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="296" refid="structfs_1a7262744877dac1c79e119fab7ee3d67d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a7262744877dac1c79e119fab7ee3d67d" kindref="member">fs_old_nspf</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>value<sp/>of<sp/>NSPF<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="297"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>yet<sp/>another<sp/>configuration<sp/>parameter<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="298" refid="structfs_1ad2741b461acb83e521e8f094586e1f04" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ad2741b461acb83e521e8f094586e1f04" kindref="member">fs_optim</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>optimization<sp/>preference,<sp/>see<sp/>below<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="299" refid="structfs_1aaefee9a806967afe881a50fcbe391ff5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1aaefee9a806967afe881a50fcbe391ff5" kindref="member">fs_old_npsect</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>#<sp/>sectors/track<sp/>including<sp/>spares<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="300" refid="structfs_1affe7e7f7fcff6fab9079d83220e3e1cc" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1affe7e7f7fcff6fab9079d83220e3e1cc" kindref="member">fs_old_interleave</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>hardware<sp/>sector<sp/>interleave<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="301" refid="structfs_1ab013e02a3dd43b54edb8d17a6303987e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ab013e02a3dd43b54edb8d17a6303987e" kindref="member">fs_old_trackskew</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>sector<sp/>0<sp/>skew,<sp/>per<sp/>track<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="302" refid="structfs_1ad573635cfbc906b4d5af65a338705fef" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ad573635cfbc906b4d5af65a338705fef" kindref="member">fs_id</ref>[2];<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>unique<sp/>filesystem<sp/>id<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="303"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>sizes<sp/>determined<sp/>by<sp/>number<sp/>of<sp/>cylinder<sp/>groups<sp/>and<sp/>their<sp/>sizes<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="304" refid="structfs_1a1e5f3cc79f0589b713e56ae3f7892287" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a1e5f3cc79f0589b713e56ae3f7892287" kindref="member">fs_old_csaddr</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>blk<sp/>addr<sp/>of<sp/>cyl<sp/>grp<sp/>summary<sp/>area<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="305" refid="structfs_1a8eba877a723ca9b8f9c762a1d65878e9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a8eba877a723ca9b8f9c762a1d65878e9" kindref="member">fs_cssize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>size<sp/>of<sp/>cyl<sp/>grp<sp/>summary<sp/>area<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="306" refid="structfs_1a1a500c66d35a8ae7875ae00c2a953eea" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a1a500c66d35a8ae7875ae00c2a953eea" kindref="member">fs_cgsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cylinder<sp/>group<sp/>size<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="307" refid="structfs_1a7cebf2cb358cde121c29269dbc20a1f3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a7cebf2cb358cde121c29269dbc20a1f3" kindref="member">fs_spare2</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>fs_ntrak<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="308" refid="structfs_1a89b502e2bf515440bc150e8e4ebb12c9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a89b502e2bf515440bc150e8e4ebb12c9" kindref="member">fs_old_nsect</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>sectors<sp/>per<sp/>track<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="309" refid="structfs_1affb1c061e74f60407af46700f5394a0c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1affb1c061e74f60407af46700f5394a0c" kindref="member">fs_old_spc</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>sectors<sp/>per<sp/>cylinder<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="310" refid="structfs_1a3b4d10d43d4175b9444ed73ddcf18140" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a3b4d10d43d4175b9444ed73ddcf18140" kindref="member">fs_old_ncyl</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cylinders<sp/>in<sp/>filesystem<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="311" refid="structfs_1a3059d11894848b96ae73618740f0dac6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a3059d11894848b96ae73618740f0dac6" kindref="member">fs_old_cpg</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cylinders<sp/>per<sp/>group<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="312" refid="structfs_1adf24d0e3ffe0fceef2f3821305e04e3d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structfs_1adf24d0e3ffe0fceef2f3821305e04e3d" kindref="member">fs_ipg</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>inodes<sp/>per<sp/>group<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="313" refid="structfs_1a8231c53c394bf5c523584dbe87295b03" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a8231c53c394bf5c523584dbe87295b03" kindref="member">fs_fpg</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>blocks<sp/>per<sp/>group<sp/>*<sp/>fs_frag<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="314"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>this<sp/>data<sp/>must<sp/>be<sp/>re-computed<sp/>after<sp/>crashes<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="315" refid="structfs_1a987656a71ddd126654688a50477b4757" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/><sp/></highlight><highlight class="normal"><ref refid="structcsum" kindref="compound">csum</ref><sp/><ref refid="structfs_1a987656a71ddd126654688a50477b4757" kindref="member">fs_old_cstotal</ref>;<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cylinder<sp/>summary<sp/>information<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="316"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>these<sp/>fields<sp/>are<sp/>cleared<sp/>at<sp/>mount<sp/>time<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="317" refid="structfs_1a685528bae5950f6dc8d7868ce1df2268" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a06ffba8acf5d133104191f183e67ac8c" kindref="member">int8_t</ref><sp/><sp/><sp/><ref refid="structfs_1a685528bae5950f6dc8d7868ce1df2268" kindref="member">fs_fmod</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>super<sp/>block<sp/>modified<sp/>flag<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="318" refid="structfs_1ad70b3b14f20ee12639f774ce0a6817b0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a06ffba8acf5d133104191f183e67ac8c" kindref="member">int8_t</ref><sp/><sp/><sp/><ref refid="structfs_1ad70b3b14f20ee12639f774ce0a6817b0" kindref="member">fs_clean</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>filesystem<sp/>is<sp/>clean<sp/>flag<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="319" refid="structfs_1ac4a00ffe190e24cf27323062dd3c4b04" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a06ffba8acf5d133104191f183e67ac8c" kindref="member">int8_t</ref><sp/><sp/><sp/><ref refid="structfs_1ac4a00ffe190e24cf27323062dd3c4b04" kindref="member">fs_ronly</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>mounted<sp/>read-only<sp/>flag<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="320" refid="structfs_1a2eb4e28e41443e46d48f4b2d401fa61f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a06ffba8acf5d133104191f183e67ac8c" kindref="member">int8_t</ref><sp/><sp/><sp/><ref refid="structfs_1a2eb4e28e41443e46d48f4b2d401fa61f" kindref="member">fs_old_flags</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>FS_<sp/>flags<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="321" refid="structfs_1a580ddd495e4e346d10f6f74cd8ae35ad" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1ae2b02ed168fc99cff3851603910b1fb6" kindref="member">u_char</ref><sp/><sp/><sp/><ref refid="structfs_1a580ddd495e4e346d10f6f74cd8ae35ad" kindref="member">fs_fsmnt</ref>[<ref refid="ufs_2ffs_2fs_8h_1a0beb14d415a358b818cec76550e4fad1" kindref="member">MAXMNTLEN</ref>];<sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>name<sp/>mounted<sp/>on<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="322" refid="structfs_1af062a835d2e2599fd6ffd453c454dd22" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1ae2b02ed168fc99cff3851603910b1fb6" kindref="member">u_char</ref><sp/><sp/><sp/><ref refid="structfs_1af062a835d2e2599fd6ffd453c454dd22" kindref="member">fs_volname</ref>[<ref refid="ufs_2ffs_2fs_8h_1ac5859c27029a47d17c1279cc197f05c3" kindref="member">MAXVOLLEN</ref>];<sp/></highlight><highlight class="comment">/*<sp/>volume<sp/>name<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="323" refid="structfs_1a582e900902af7c6ba9a7a837c61ce8b9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a250ac047bf3984b5dae755276a305d64" kindref="member">u_int64_t</ref><sp/><ref refid="structfs_1a582e900902af7c6ba9a7a837c61ce8b9" kindref="member">fs_swuid</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>system-wide<sp/>uid<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="324" refid="structfs_1a2cb27fb4a6379e89a430db9f9d51eda5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a2cb27fb4a6379e89a430db9f9d51eda5" kindref="member">fs_pad</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>due<sp/>to<sp/>alignment<sp/>of<sp/>fs_swuid<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="325"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>these<sp/>fields<sp/>retain<sp/>the<sp/>current<sp/>block<sp/>allocation<sp/>info<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="326" refid="structfs_1a30411c307e72e31cec612a97b004453e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a30411c307e72e31cec612a97b004453e" kindref="member">fs_cgrotor</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>last<sp/>cg<sp/>searched<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="327" refid="structfs_1a4cf49593a8f0cf0a1d2d53992fab1ec7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><sp/><sp/><sp/>*<ref refid="structfs_1a4cf49593a8f0cf0a1d2d53992fab1ec7" kindref="member">fs_ocsp</ref>[<ref refid="ufs_2ffs_2fs_8h_1aca816b354128719c1523e33152a13637" kindref="member">NOCSPTRS</ref>];<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>padding;<sp/>was<sp/>list<sp/>of<sp/>fs_cs<sp/>buffers<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="328" refid="structfs_1ada48615e2bbbfed4cce9753d86d7584f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1ac7c42f52639b9aca7da966a0783996d7" kindref="member">u_int8_t</ref><sp/>*<ref refid="structfs_1ada48615e2bbbfed4cce9753d86d7584f" kindref="member">fs_contigdirs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u)<sp/>#<sp/>of<sp/>contig.<sp/>allocated<sp/>dirs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="329" refid="structfs_1a4b9c3e77f89f5a59f71e37f83b8d42aa" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/><sp/></highlight><highlight class="normal"><ref refid="structcsum" kindref="compound">csum</ref><sp/>*<ref refid="structfs_1a4b9c3e77f89f5a59f71e37f83b8d42aa" kindref="member">fs_csp</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u)<sp/>cg<sp/>summary<sp/>info<sp/>buffer<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="330" refid="structfs_1a3456619a6ebb8c8c6b522d5d3ef1b081" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/>*<ref refid="structfs_1a3456619a6ebb8c8c6b522d5d3ef1b081" kindref="member">fs_maxcluster</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u)<sp/>max<sp/>cluster<sp/>in<sp/>each<sp/>cyl<sp/>group<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="331" refid="structfs_1a242bad85def13c2aba47daaf58de7308" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1ac319c165d52643e43249fe003e18bdf3" kindref="member">u_int</ref><sp/><sp/><sp/>*<ref refid="structfs_1a242bad85def13c2aba47daaf58de7308" kindref="member">fs_active</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u)<sp/>used<sp/>by<sp/>snapshots<sp/>to<sp/>track<sp/>fs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="332" refid="structfs_1ada2826b8126cd04502a8d106d97f2feb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ada2826b8126cd04502a8d106d97f2feb" kindref="member">fs_old_cpc</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cyl<sp/>per<sp/>cycle<sp/>in<sp/>postbl<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="333" refid="structfs_1a133f70897ddd802936d9f15f9c4f7b1d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a133f70897ddd802936d9f15f9c4f7b1d" kindref="member">fs_maxbsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>maximum<sp/>blocking<sp/>factor<sp/>permitted<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="334" refid="structfs_1ac2ce9858e817fcdc2ce736089aebe49b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1ac2ce9858e817fcdc2ce736089aebe49b" kindref="member">fs_unrefs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>unreferenced<sp/>inodes<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="335" refid="structfs_1a0b72655872d538c1bd9970a3756695da" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1a0b72655872d538c1bd9970a3756695da" kindref="member">fs_providersize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>size<sp/>of<sp/>underlying<sp/>GEOM<sp/>provider<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="336" refid="structfs_1a7c602e34fbe2437930da5af29bdd3f40" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1a7c602e34fbe2437930da5af29bdd3f40" kindref="member">fs_metaspace</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>size<sp/>of<sp/>area<sp/>reserved<sp/>for<sp/>metadata<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="337" refid="structfs_1a7abf5f534e4a4a54dcbb38013f2afcb7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1a7abf5f534e4a4a54dcbb38013f2afcb7" kindref="member">fs_sparecon64</ref>[14];<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>rotation<sp/>block<sp/>list<sp/>head<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="338" refid="structfs_1a7f7bd1346fb9aa31b3509e7736b9c3c5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1a7f7bd1346fb9aa31b3509e7736b9c3c5" kindref="member">fs_sblockloc</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>byte<sp/>offset<sp/>of<sp/>standard<sp/>superblock<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="339" refid="structfs_1a85a5dbf3800d9a52f02efc0367cf87f2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/><sp/></highlight><highlight class="normal"><ref refid="structcsum__total" kindref="compound">csum_total</ref><sp/><ref refid="structfs_1a85a5dbf3800d9a52f02efc0367cf87f2" kindref="member">fs_cstotal</ref>;<sp/><sp/></highlight><highlight class="comment">/*<sp/>(u)<sp/>cylinder<sp/>summary<sp/>information<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="340" refid="structfs_1a05c9a84e408e2f7898dd0a83f7859112" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="ufs_8h_1aec5bc03f68bf810247d604821ad95bb7" kindref="member">ufs_time_t</ref><sp/><ref refid="structfs_1a05c9a84e408e2f7898dd0a83f7859112" kindref="member">fs_time</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>last<sp/>time<sp/>written<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="341" refid="structfs_1a4f95748c8c7cc9e3e9ed007405b99761" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1a4f95748c8c7cc9e3e9ed007405b99761" kindref="member">fs_size</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>blocks<sp/>in<sp/>fs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="342" refid="structfs_1aa8e6378d3a6150f5a1dc264cf2e306e6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1aa8e6378d3a6150f5a1dc264cf2e306e6" kindref="member">fs_dsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>data<sp/>blocks<sp/>in<sp/>fs<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="343" refid="structfs_1ad43582016bfc00268dbd3de5bdf63c56" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="ufs_8h_1ad1d47f60518d845f7e798fa0f3458753" kindref="member">ufs2_daddr_t</ref><sp/><ref refid="structfs_1ad43582016bfc00268dbd3de5bdf63c56" kindref="member">fs_csaddr</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>blk<sp/>addr<sp/>of<sp/>cyl<sp/>grp<sp/>summary<sp/>area<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="344" refid="structfs_1a716babdd931f0aae037a388a76fb0f5e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1a716babdd931f0aae037a388a76fb0f5e" kindref="member">fs_pendingblocks</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u)<sp/>blocks<sp/>being<sp/>freed<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="345" refid="structfs_1a0cbe58ffe6a5938d48c456413580d492" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structfs_1a0cbe58ffe6a5938d48c456413580d492" kindref="member">fs_pendinginodes</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u)<sp/>inodes<sp/>being<sp/>freed<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="346" refid="structfs_1a1d23acba4998d1e7aaa613fabbeacd8c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><ref refid="structfs_1a1d23acba4998d1e7aaa613fabbeacd8c" kindref="member">fs_snapinum</ref>[<ref refid="ufs_2ffs_2fs_8h_1a04c33da6605e73954cf2ff32c3f0f15a" kindref="member">FSMAXSNAP</ref>];</highlight><highlight class="comment">/*<sp/>list<sp/>of<sp/>snapshot<sp/>inode<sp/>numbers<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="347" refid="structfs_1aac41d7cc53c7100d01164f2b296b05ee" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structfs_1aac41d7cc53c7100d01164f2b296b05ee" kindref="member">fs_avgfilesize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>expected<sp/>average<sp/>file<sp/>size<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="348" refid="structfs_1ada76c669a82750d9a8c0d7ca2eddd082" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structfs_1ada76c669a82750d9a8c0d7ca2eddd082" kindref="member">fs_avgfpdir</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>expected<sp/>#<sp/>of<sp/>files<sp/>per<sp/>directory<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="349" refid="structfs_1a296f6ea58ab5171bb0cebf8d9e9759b9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a296f6ea58ab5171bb0cebf8d9e9759b9" kindref="member">fs_save_cgsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>save<sp/>real<sp/>cg<sp/>size<sp/>to<sp/>use<sp/>fs_bsize<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="350" refid="structfs_1a60205b64391864a0fdd1184ad7599c68" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="ufs_8h_1aec5bc03f68bf810247d604821ad95bb7" kindref="member">ufs_time_t</ref><sp/><ref refid="structfs_1a60205b64391864a0fdd1184ad7599c68" kindref="member">fs_mtime</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Last<sp/>mount<sp/>or<sp/>fsck<sp/>time.<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="351" refid="structfs_1a54d0164284e53108ca2996f60b55565b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a54d0164284e53108ca2996f60b55565b" kindref="member">fs_sujfree</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>SUJ<sp/>free<sp/>list<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="352" refid="structfs_1a505ae55360f35ac57519ef73a583c65c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a505ae55360f35ac57519ef73a583c65c" kindref="member">fs_sparecon32</ref>[23];<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>reserved<sp/>for<sp/>future<sp/>constants<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="353" refid="structfs_1a3036cb913215b8925934f2d87792e75b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a3036cb913215b8925934f2d87792e75b" kindref="member">fs_flags</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>see<sp/>FS_<sp/>flags<sp/>below<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="354" refid="structfs_1acdd52fe6ac532b73eb877c57b286dd93" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1acdd52fe6ac532b73eb877c57b286dd93" kindref="member">fs_contigsumsize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>size<sp/>of<sp/>cluster<sp/>summary<sp/>array<sp/>*/</highlight><highlight class="normal"><sp/></highlight></codeline> <codeline lineno="355" refid="structfs_1abc0a279ec4d6a3f7a70e7078c9def3d3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1abc0a279ec4d6a3f7a70e7078c9def3d3" kindref="member">fs_maxsymlinklen</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>max<sp/>length<sp/>of<sp/>an<sp/>internal<sp/>symlink<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="356" refid="structfs_1a8fd0d606db522d961af347195bb59909" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a8fd0d606db522d961af347195bb59909" kindref="member">fs_old_inodefmt</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>format<sp/>of<sp/>on-disk<sp/>inodes<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="357" refid="structfs_1a80705fcf0b5478639af84da1d4c24e72" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a250ac047bf3984b5dae755276a305d64" kindref="member">u_int64_t</ref><sp/><ref refid="structfs_1a80705fcf0b5478639af84da1d4c24e72" kindref="member">fs_maxfilesize</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>maximum<sp/>representable<sp/>file<sp/>size<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="358" refid="structfs_1aa771c09702d1e51ee526fb822e7230a5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1aa771c09702d1e51ee526fb822e7230a5" kindref="member">fs_qbmask</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>~fs_bmask<sp/>for<sp/>use<sp/>with<sp/>64-bit<sp/>size<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="359" refid="structfs_1ab48686a078d1a8410ec36696f0afeb05" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structfs_1ab48686a078d1a8410ec36696f0afeb05" kindref="member">fs_qfmask</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>~fs_fmask<sp/>for<sp/>use<sp/>with<sp/>64-bit<sp/>size<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="360" refid="structfs_1a6c2e8cf33c773a90113fcc7fe9a75c51" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1a6c2e8cf33c773a90113fcc7fe9a75c51" kindref="member">fs_state</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>validate<sp/>fs_clean<sp/>field<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="361" refid="structfs_1aff096e7b1228e1914b01a8b66e74b1b1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1aff096e7b1228e1914b01a8b66e74b1b1" kindref="member">fs_old_postblformat</ref>;<sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>format<sp/>of<sp/>positional<sp/>layout<sp/>tables<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="362" refid="structfs_1aef6eb7c95acad0463084fc855e91c73d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1aef6eb7c95acad0463084fc855e91c73d" kindref="member">fs_old_nrpos</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>rotational<sp/>positions<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="363" refid="structfs_1ae21d3f568b4f3eec3613927631ff9ccf" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1ae21d3f568b4f3eec3613927631ff9ccf" kindref="member">fs_spare5</ref>[2];<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>fs_postbloff<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="364"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>fs_rotbloff<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="365" refid="structfs_1aacc2f0aa6f3902f165c563ce5ba76373" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structfs_1aacc2f0aa6f3902f165c563ce5ba76373" kindref="member">fs_magic</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>magic<sp/>number<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="366"><highlight class="normal">};</highlight></codeline> <codeline lineno="367"><highlight class="normal"></highlight></codeline> <codeline lineno="368"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>Sanity<sp/>checking.<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="369"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>CTASSERT</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="370"><highlight class="normal">CTASSERT(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keyword">struct</highlight><highlight class="normal"><sp/><ref refid="structfs" kindref="compound">fs</ref>)<sp/>==<sp/>1376);</highlight></codeline> <codeline lineno="371"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="372"><highlight class="normal"></highlight></codeline> <codeline lineno="373"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="374"><highlight class="comment"><sp/>*<sp/>Filesystem<sp/>identification</highlight></codeline> <codeline lineno="375"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="376" refid="ufs_2ffs_2fs_8h_1ace25c7a73c514a8e575e1ba8c15c9a9e" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_UFS1_MAGIC<sp/><sp/><sp/>0x011954<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>UFS1<sp/>fast<sp/>filesystem<sp/>magic<sp/>number<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="377" refid="ufs_2ffs_2fs_8h_1a0b73b7456fc1dee932dc0c1056c613fc" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_UFS2_MAGIC<sp/><sp/><sp/>0x19540119<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>UFS2<sp/>fast<sp/>filesystem<sp/>magic<sp/>number<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="378" refid="ufs_2ffs_2fs_8h_1a3a790ea6d8778aff9200aaf3e0aead98" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_BAD_MAGIC<sp/><sp/><sp/><sp/>0x19960408<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>UFS<sp/>incomplete<sp/>newfs<sp/>magic<sp/>number<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="379" refid="ufs_2ffs_2fs_8h_1a44a8a0e97e596d49a1a323b5db0a7650" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_OKAY<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x7c269d38<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>superblock<sp/>checksum<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="380" refid="ufs_2ffs_2fs_8h_1acb239d9104407b43a7a21a797b344df8" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_42INODEFMT<sp/><sp/><sp/>-1<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>4.2BSD<sp/>inode<sp/>format<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="381" refid="ufs_2ffs_2fs_8h_1aec36ab3845dc8939b802549b97517678" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_44INODEFMT<sp/><sp/><sp/>2<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>4.4BSD<sp/>inode<sp/>format<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="382"><highlight class="normal"></highlight></codeline> <codeline lineno="383"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="384"><highlight class="comment"><sp/>*<sp/>Preference<sp/>for<sp/>optimization.</highlight></codeline> <codeline lineno="385"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="386" refid="ufs_2ffs_2fs_8h_1ae331c132b869580e7851c80f4611ea38" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_OPTTIME<sp/><sp/><sp/><sp/><sp/><sp/>0<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>minimize<sp/>allocation<sp/>time<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="387" refid="ufs_2ffs_2fs_8h_1abb1205b813dfa4f9e210648585dab67d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_OPTSPACE<sp/><sp/><sp/><sp/><sp/>1<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>minimize<sp/>disk<sp/>fragmentation<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="388"><highlight class="normal"></highlight></codeline> <codeline lineno="389"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="390"><highlight class="comment"><sp/>*<sp/>Filesystem<sp/>flags.</highlight></codeline> <codeline lineno="391"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="392"><highlight class="comment"><sp/>*<sp/>The<sp/>FS_UNCLEAN<sp/>flag<sp/>is<sp/>set<sp/>by<sp/>the<sp/>kernel<sp/>when<sp/>the<sp/>filesystem<sp/>was</highlight></codeline> <codeline lineno="393"><highlight class="comment"><sp/>*<sp/>mounted<sp/>with<sp/>fs_clean<sp/>set<sp/>to<sp/>zero.<sp/>The<sp/>FS_DOSOFTDEP<sp/>flag<sp/>indicates</highlight></codeline> <codeline lineno="394"><highlight class="comment"><sp/>*<sp/>that<sp/>the<sp/>filesystem<sp/>should<sp/>be<sp/>managed<sp/>by<sp/>the<sp/>soft<sp/>updates<sp/>code.</highlight></codeline> <codeline lineno="395"><highlight class="comment"><sp/>*<sp/>Note<sp/>that<sp/>the<sp/>FS_NEEDSFSCK<sp/>flag<sp/>is<sp/>set<sp/>and<sp/>cleared<sp/>only<sp/>by<sp/>the</highlight></codeline> <codeline lineno="396"><highlight class="comment"><sp/>*<sp/>fsck<sp/>utility.<sp/>It<sp/>is<sp/>set<sp/>when<sp/>background<sp/>fsck<sp/>finds<sp/>an<sp/>unexpected</highlight></codeline> <codeline lineno="397"><highlight class="comment"><sp/>*<sp/>inconsistency<sp/>which<sp/>requires<sp/>a<sp/>traditional<sp/>foreground<sp/>fsck<sp/>to<sp/>be</highlight></codeline> <codeline lineno="398"><highlight class="comment"><sp/>*<sp/>run.<sp/>Such<sp/>inconsistencies<sp/>should<sp/>only<sp/>be<sp/>found<sp/>after<sp/>an<sp/>uncorrectable</highlight></codeline> <codeline lineno="399"><highlight class="comment"><sp/>*<sp/>disk<sp/>error.<sp/>A<sp/>foreground<sp/>fsck<sp/>will<sp/>clear<sp/>the<sp/>FS_NEEDSFSCK<sp/>flag<sp/>when</highlight></codeline> <codeline lineno="400"><highlight class="comment"><sp/>*<sp/>it<sp/>has<sp/>successfully<sp/>cleaned<sp/>up<sp/>the<sp/>filesystem.<sp/>The<sp/>kernel<sp/>uses<sp/>this</highlight></codeline> <codeline lineno="401"><highlight class="comment"><sp/>*<sp/>flag<sp/>to<sp/>enforce<sp/>that<sp/>inconsistent<sp/>filesystems<sp/>be<sp/>mounted<sp/>read-only.</highlight></codeline> <codeline lineno="402"><highlight class="comment"><sp/>*<sp/>The<sp/>FS_INDEXDIRS<sp/>flag<sp/>when<sp/>set<sp/>indicates<sp/>that<sp/>the<sp/>kernel<sp/>maintains</highlight></codeline> <codeline lineno="403"><highlight class="comment"><sp/>*<sp/>on-disk<sp/>auxiliary<sp/>indexes<sp/>(such<sp/>as<sp/>B-trees)<sp/>for<sp/>speeding<sp/>directory</highlight></codeline> <codeline lineno="404"><highlight class="comment"><sp/>*<sp/>accesses.<sp/>Kernels<sp/>that<sp/>do<sp/>not<sp/>support<sp/>auxiliary<sp/>indices<sp/>clear<sp/>the</highlight></codeline> <codeline lineno="405"><highlight class="comment"><sp/>*<sp/>flag<sp/>to<sp/>indicate<sp/>that<sp/>the<sp/>indices<sp/>need<sp/>to<sp/>be<sp/>rebuilt<sp/>(by<sp/>fsck)<sp/>before</highlight></codeline> <codeline lineno="406"><highlight class="comment"><sp/>*<sp/>they<sp/>can<sp/>be<sp/>used.</highlight></codeline> <codeline lineno="407"><highlight class="comment"><sp/>*</highlight></codeline> <codeline lineno="408"><highlight class="comment"><sp/>*<sp/>FS_ACLS<sp/>indicates<sp/>that<sp/>POSIX.1e<sp/>ACLs<sp/>are<sp/>administratively<sp/>enabled</highlight></codeline> <codeline lineno="409"><highlight class="comment"><sp/>*<sp/>for<sp/>the<sp/>file<sp/>system,<sp/>so<sp/>they<sp/>should<sp/>be<sp/>loaded<sp/>from<sp/>extended<sp/>attributes,</highlight></codeline> <codeline lineno="410"><highlight class="comment"><sp/>*<sp/>observed<sp/>for<sp/>access<sp/>control<sp/>purposes,<sp/>and<sp/>be<sp/>administered<sp/>by<sp/>object</highlight></codeline> <codeline lineno="411"><highlight class="comment"><sp/>*<sp/>owners.<sp/><sp/>FS_NFS4ACLS<sp/>indicates<sp/>that<sp/>NFSv4<sp/>ACLs<sp/>are<sp/>administratively</highlight></codeline> <codeline lineno="412"><highlight class="comment"><sp/>*<sp/>enabled.<sp/><sp/>This<sp/>flag<sp/>is<sp/>mutually<sp/>exclusive<sp/>with<sp/>FS_ACLS.<sp/><sp/>FS_MULTILABEL</highlight></codeline> <codeline lineno="413"><highlight class="comment"><sp/>*<sp/>indicates<sp/>that<sp/>the<sp/>TrustedBSD<sp/>MAC<sp/>Framework<sp/>should<sp/>attempt<sp/>to<sp/>back<sp/>MAC</highlight></codeline> <codeline lineno="414"><highlight class="comment"><sp/>*<sp/>labels<sp/>into<sp/>extended<sp/>attributes<sp/>on<sp/>the<sp/>file<sp/>system<sp/>rather<sp/>than<sp/>maintain</highlight></codeline> <codeline lineno="415"><highlight class="comment"><sp/>*<sp/>a<sp/>single<sp/>mount<sp/>label<sp/>for<sp/>all<sp/>objects.</highlight></codeline> <codeline lineno="416"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="417" refid="ufs_2ffs_2fs_8h_1a6d8bc767f9c8365bef4d66b4c9efe0bd" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_UNCLEAN<sp/><sp/><sp/><sp/><sp/><sp/>0x0001<sp/><sp/></highlight><highlight class="comment">/*<sp/>filesystem<sp/>not<sp/>clean<sp/>at<sp/>mount<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="418" refid="ufs_2ffs_2fs_8h_1a4d3ebb952d8b6e07239c2bb0f0819847" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_DOSOFTDEP<sp/><sp/><sp/><sp/>0x0002<sp/><sp/></highlight><highlight class="comment">/*<sp/>filesystem<sp/>using<sp/>soft<sp/>dependencies<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="419" refid="ufs_2ffs_2fs_8h_1a495af838867548e70461e7dbda6bc325" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_NEEDSFSCK<sp/><sp/><sp/><sp/>0x0004<sp/><sp/></highlight><highlight class="comment">/*<sp/>filesystem<sp/>needs<sp/>sync<sp/>fsck<sp/>before<sp/>mount<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="420" refid="ufs_2ffs_2fs_8h_1a61d9ee509859575e0b8f3417c22d66d2" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_SUJ<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x0008<sp/><sp/></highlight><highlight class="comment">/*<sp/>Filesystem<sp/>using<sp/>softupdate<sp/>journal<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="421" refid="ufs_2ffs_2fs_8h_1ae61037919a220a5a6f77e3c860a0f556" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_ACLS<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x0010<sp/><sp/></highlight><highlight class="comment">/*<sp/>file<sp/>system<sp/>has<sp/>POSIX.1e<sp/>ACLs<sp/>enabled<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="422" refid="ufs_2ffs_2fs_8h_1a6ca57badba0a0a0bb1cba4d7186ed005" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_MULTILABEL<sp/><sp/><sp/>0x0020<sp/><sp/></highlight><highlight class="comment">/*<sp/>file<sp/>system<sp/>is<sp/>MAC<sp/>multi-label<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="423" refid="ufs_2ffs_2fs_8h_1aa06dce7dd9b81f4b727c7011d209f1bd" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_GJOURNAL<sp/><sp/><sp/><sp/><sp/>0x0040<sp/><sp/></highlight><highlight class="comment">/*<sp/>gjournaled<sp/>file<sp/>system<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="424" refid="ufs_2ffs_2fs_8h_1a982ce44156d077a994c2ec7faa4b89a9" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_FLAGS_UPDATED<sp/>0x0080<sp/></highlight><highlight class="comment">/*<sp/>flags<sp/>have<sp/>been<sp/>moved<sp/>to<sp/>new<sp/>location<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="425" refid="ufs_2ffs_2fs_8h_1a8e03c37e9f2b46f17c2d72ac54f9a9d5" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_NFS4ACLS<sp/><sp/><sp/><sp/><sp/>0x0100<sp/><sp/></highlight><highlight class="comment">/*<sp/>file<sp/>system<sp/>has<sp/>NFSv4<sp/>ACLs<sp/>enabled<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="426" refid="ufs_2ffs_2fs_8h_1a47d7b1f35a014650abc4cbc6abc5967e" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_INDEXDIRS<sp/><sp/><sp/><sp/>0x0200<sp/><sp/></highlight><highlight class="comment">/*<sp/>kernel<sp/>supports<sp/>indexed<sp/>directories<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="427" refid="ufs_2ffs_2fs_8h_1ac194d44f6d8ee87a5f468366a2ba321a" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FS_TRIM<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x0400<sp/><sp/></highlight><highlight class="comment">/*<sp/>issue<sp/>BIO_DELETE<sp/>for<sp/>deleted<sp/>blocks<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="428"><highlight class="normal"></highlight></codeline> <codeline lineno="429"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="430"><highlight class="comment"><sp/>*<sp/>Macros<sp/>to<sp/>access<sp/>bits<sp/>in<sp/>the<sp/>fs_active<sp/>array.</highlight></codeline> <codeline lineno="431"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="432" refid="ufs_2ffs_2fs_8h_1af5d1b5729eafd3c171c9dd5885549621" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ACTIVECGNUM(fs,<sp/>cg)<sp/><sp/><sp/><sp/><sp/>((fs)->fs_active[(cg)<sp/>/<sp/>(NBBY<sp/>*<sp/>sizeof(int))])</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="433" refid="ufs_2ffs_2fs_8h_1ad30e7295122b283f4e385651d2f24d83" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ACTIVECGOFF(cg)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(1<sp/><<<sp/>((cg)<sp/>%<sp/>(NBBY<sp/>*<sp/>sizeof(int))))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="434" refid="ufs_2ffs_2fs_8h_1ad84db69fcb3b77114c3be14364120622" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ACTIVESET(fs,<sp/>cg)<sp/><sp/><sp/><sp/><sp/><sp/><sp/>do<sp/>{<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="435"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>((fs)->fs_active)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="436"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ACTIVECGNUM((fs),<sp/>(cg))<sp/>|=<sp/>ACTIVECGOFF((cg));<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="437"><highlight class="preprocessor">}<sp/>while<sp/>(0)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="438" refid="ufs_2ffs_2fs_8h_1ae8adbc207667e22a3263c9a27bc65606" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ACTIVECLEAR(fs,<sp/>cg)<sp/><sp/><sp/><sp/><sp/>do<sp/>{<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="439"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>if<sp/>((fs)->fs_active)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="440"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ACTIVECGNUM((fs),<sp/>(cg))<sp/>&=<sp/>~ACTIVECGOFF((cg));<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="441"><highlight class="preprocessor">}<sp/>while<sp/>(0)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="442"><highlight class="normal"></highlight></codeline> <codeline lineno="443"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="444"><highlight class="comment"><sp/>*<sp/>The<sp/>size<sp/>of<sp/>a<sp/>cylinder<sp/>group<sp/>is<sp/>calculated<sp/>by<sp/>CGSIZE.<sp/>The<sp/>maximum<sp/>size</highlight></codeline> <codeline lineno="445"><highlight class="comment"><sp/>*<sp/>is<sp/>limited<sp/>by<sp/>the<sp/>fact<sp/>that<sp/>cylinder<sp/>groups<sp/>are<sp/>at<sp/>most<sp/>one<sp/>block.</highlight></codeline> <codeline lineno="446"><highlight class="comment"><sp/>*<sp/>Its<sp/>size<sp/>is<sp/>derived<sp/>from<sp/>the<sp/>size<sp/>of<sp/>the<sp/>maps<sp/>maintained<sp/>in<sp/>the</highlight></codeline> <codeline lineno="447"><highlight class="comment"><sp/>*<sp/>cylinder<sp/>group<sp/>and<sp/>the<sp/>(struct<sp/>cg)<sp/>size.</highlight></codeline> <codeline lineno="448"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="449" refid="ufs_2ffs_2fs_8h_1add70b683b5059fd3c82f852a6a6f15e8" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>CGSIZE(fs)<sp/>\</highlight></codeline> <codeline lineno="450"><highlight class="preprocessor"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>base<sp/>cg<sp/>*/</highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(sizeof(struct<sp/>cg)<sp/>+<sp/>sizeof(int32_t)<sp/>+<sp/>\</highlight></codeline> <codeline lineno="451"><highlight class="preprocessor"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>btotoff<sp/>*/</highlight><highlight class="preprocessor"><sp/><sp/><sp/>(fs)->fs_old_cpg<sp/>*<sp/>sizeof(int32_t)<sp/>+<sp/>\</highlight></codeline> <codeline lineno="452"><highlight class="preprocessor"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>old<sp/>boff<sp/>*/</highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/>(fs)->fs_old_cpg<sp/>*<sp/>sizeof(u_int16_t)<sp/>+<sp/>\</highlight></codeline> <codeline lineno="453"><highlight class="preprocessor"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>inode<sp/>map<sp/>*/</highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/>howmany((fs)->fs_ipg,<sp/>NBBY)<sp/>+<sp/>\</highlight></codeline> <codeline lineno="454"><highlight class="preprocessor"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>block<sp/>map<sp/>*/</highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/>howmany((fs)->fs_fpg,<sp/>NBBY)<sp/>+\</highlight></codeline> <codeline lineno="455"><highlight class="preprocessor"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>if<sp/>present<sp/>*/</highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/>((fs)->fs_contigsumsize<sp/><=<sp/>0<sp/>?<sp/>0<sp/>:<sp/>\</highlight></codeline> <codeline lineno="456"><highlight class="preprocessor"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cluster<sp/>sum<sp/>*/</highlight><highlight class="preprocessor"><sp/><sp/><sp/>(fs)->fs_contigsumsize<sp/>*<sp/>sizeof(int32_t)<sp/>+<sp/>\</highlight></codeline> <codeline lineno="457"><highlight class="preprocessor"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cluster<sp/>map<sp/>*/</highlight><highlight class="preprocessor"><sp/><sp/><sp/>howmany(fragstoblks(fs,<sp/>(fs)->fs_fpg),<sp/>NBBY)))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="458"><highlight class="normal"></highlight></codeline> <codeline lineno="459"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="460"><highlight class="comment"><sp/>*<sp/>The<sp/>minimal<sp/>number<sp/>of<sp/>cylinder<sp/>groups<sp/>that<sp/>should<sp/>be<sp/>created.</highlight></codeline> <codeline lineno="461"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="462" refid="ufs_2ffs_2fs_8h_1a797bf03d58cdfd1c381eb11aacff1a09" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>MINCYLGRPS<sp/><sp/><sp/><sp/><sp/><sp/>4</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="463"><highlight class="normal"></highlight></codeline> <codeline lineno="464"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="465"><highlight class="comment"><sp/>*<sp/>Convert<sp/>cylinder<sp/>group<sp/>to<sp/>base<sp/>address<sp/>of<sp/>its<sp/>global<sp/>summary<sp/>info.</highlight></codeline> <codeline lineno="466"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="467" refid="ufs_2ffs_2fs_8h_1a5f7b68c2daf5963c504dd3eb9f424e83" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>fs_cs(fs,<sp/>indx)<sp/>fs_csp[indx]</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="468"><highlight class="normal"></highlight></codeline> <codeline lineno="469"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="470"><highlight class="comment"><sp/>*<sp/>Cylinder<sp/>group<sp/>block<sp/>for<sp/>a<sp/>filesystem.</highlight></codeline> <codeline lineno="471"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="472" refid="ufs_2ffs_2fs_8h_1a543096929f4921023de02820c6b50436" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>CG_MAGIC<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0x090255</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="473" refid="structcg" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structcg" kindref="compound">cg</ref><sp/>{</highlight></codeline> <codeline lineno="474" refid="structcg_1a1549459c3334b515b7d603e7761d7c89" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structcg_1a1549459c3334b515b7d603e7761d7c89" kindref="member">cg_firstfield</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>historic<sp/>cyl<sp/>groups<sp/>linked<sp/>list<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="475" refid="structcg_1a6629382df74fc53d4cd75335ac356c4f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structcg_1a6629382df74fc53d4cd75335ac356c4f" kindref="member">cg_magic</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>magic<sp/>number<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="476" refid="structcg_1a1bdeaf16858c154be8aa5104a924751c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structcg_1a1bdeaf16858c154be8aa5104a924751c" kindref="member">cg_old_time</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>time<sp/>last<sp/>written<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="477" refid="structcg_1aceada36408389a91028335c34b8f1155" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1aceada36408389a91028335c34b8f1155" kindref="member">cg_cgx</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>we<sp/>are<sp/>the<sp/>cgx'th<sp/>cylinder<sp/>group<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="478" refid="structcg_1af44e6cc32447721638515ce1a8038eed" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a3542c6a0490e65fc4fc407273126e64f" kindref="member">int16_t</ref><sp/><sp/><ref refid="structcg_1af44e6cc32447721638515ce1a8038eed" kindref="member">cg_old_ncyl</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>cyl's<sp/>this<sp/>cg<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="479" refid="structcg_1ad40cea978c5330c511d7d4d2b2de7d76" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a3542c6a0490e65fc4fc407273126e64f" kindref="member">int16_t</ref><sp/><sp/><ref refid="structcg_1ad40cea978c5330c511d7d4d2b2de7d76" kindref="member">cg_old_niblk</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>inode<sp/>blocks<sp/>this<sp/>cg<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="480" refid="structcg_1a91889f3c3755c33d5358d36ee9fd4ead" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1a91889f3c3755c33d5358d36ee9fd4ead" kindref="member">cg_ndblk</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>data<sp/>blocks<sp/>this<sp/>cg<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="481" refid="structcg_1a352e2d3f82fbc0d04146d5b81a4c8883" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/><sp/><sp/></highlight><highlight class="normal"><ref refid="structcsum" kindref="compound">csum</ref><sp/><ref refid="structcg_1a352e2d3f82fbc0d04146d5b81a4c8883" kindref="member">cg_cs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cylinder<sp/>summary<sp/>information<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="482" refid="structcg_1aa52ea1ed3541365c0c8c5f88398b4ef3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1aa52ea1ed3541365c0c8c5f88398b4ef3" kindref="member">cg_rotor</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>position<sp/>of<sp/>last<sp/>used<sp/>block<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="483" refid="structcg_1af647c6284b3a503d74a86e18d21e7713" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1af647c6284b3a503d74a86e18d21e7713" kindref="member">cg_frotor</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>position<sp/>of<sp/>last<sp/>used<sp/>frag<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="484" refid="structcg_1a0b5e0ed212a5ca12d57fa73b6ade7e6d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1a0b5e0ed212a5ca12d57fa73b6ade7e6d" kindref="member">cg_irotor</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>position<sp/>of<sp/>last<sp/>used<sp/>inode<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="485" refid="structcg_1ae1db958010964e7b1f79d18073d1d1f1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1ae1db958010964e7b1f79d18073d1d1f1" kindref="member">cg_frsum</ref>[<ref refid="ufs_2ffs_2fs_8h_1a0a726df03725023405ee5dd1d3a897c5" kindref="member">MAXFRAG</ref>];<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>counts<sp/>of<sp/>available<sp/>frags<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="486" refid="structcg_1a2208c3571c5132d7a71c391fc01831ec" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structcg_1a2208c3571c5132d7a71c391fc01831ec" kindref="member">cg_old_btotoff</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(int32)<sp/>block<sp/>totals<sp/>per<sp/>cylinder<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="487" refid="structcg_1a5d2597d680958b4c819945ca8ceb1c51" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structcg_1a5d2597d680958b4c819945ca8ceb1c51" kindref="member">cg_old_boff</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u_int16)<sp/>free<sp/>block<sp/>positions<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="488" refid="structcg_1abef9dae6d7b2be4d8ebd5101bbf20fe9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1abef9dae6d7b2be4d8ebd5101bbf20fe9" kindref="member">cg_iusedoff</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u_int8)<sp/>used<sp/>inode<sp/>map<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="489" refid="structcg_1a55992e8fc119b63883dba8e95a71ca4b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1a55992e8fc119b63883dba8e95a71ca4b" kindref="member">cg_freeoff</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u_int8)<sp/>free<sp/>block<sp/>map<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="490" refid="structcg_1a031907005887ad84d5a2a2da5d9b845a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1a031907005887ad84d5a2a2da5d9b845a" kindref="member">cg_nextfreeoff</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u_int8)<sp/>next<sp/>available<sp/>space<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="491" refid="structcg_1a5f7ec2931318694963baba548c69dba6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1a5f7ec2931318694963baba548c69dba6" kindref="member">cg_clustersumoff</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u_int32)<sp/>counts<sp/>of<sp/>avail<sp/>clusters<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="492" refid="structcg_1a2fec2c1851d01640cdd1f7e79b8a6c27" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1a2fec2c1851d01640cdd1f7e79b8a6c27" kindref="member">cg_clusteroff</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>(u_int8)<sp/>free<sp/>cluster<sp/>map<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="493" refid="structcg_1aa39739c2163167bfa532ce47113257e3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1aa39739c2163167bfa532ce47113257e3" kindref="member">cg_nclusterblks</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>clusters<sp/>this<sp/>cg<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="494" refid="structcg_1afa149be56047f3105c9e0dd613f4d167" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1afa149be56047f3105c9e0dd613f4d167" kindref="member">cg_niblk</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>inode<sp/>blocks<sp/>this<sp/>cg<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="495" refid="structcg_1ae863f73fe3756c6a4480c6983264d96b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1ae863f73fe3756c6a4480c6983264d96b" kindref="member">cg_initediblk</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>last<sp/>initialized<sp/>inode<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="496" refid="structcg_1a53b8d892549fdbe29cf4fd1192f5a528" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1aba29fd78d95cce0ecb249c24b58d07da" kindref="member">u_int32_t</ref><sp/><ref refid="structcg_1a53b8d892549fdbe29cf4fd1192f5a528" kindref="member">cg_unrefs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>number<sp/>of<sp/>unreferenced<sp/>inodes<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="497" refid="structcg_1a7d115802a32162161a2fb5c0bf578429" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a6f6221103820f185abcc62b874665a93" kindref="member">int32_t</ref><sp/><sp/><ref refid="structcg_1a7d115802a32162161a2fb5c0bf578429" kindref="member">cg_sparecon32</ref>[2];<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>reserved<sp/>for<sp/>future<sp/>use<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="498" refid="structcg_1a40b8e4a904a59fc359f03c727c934846" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="ufs_8h_1aec5bc03f68bf810247d604821ad95bb7" kindref="member">ufs_time_t</ref><sp/><ref refid="structcg_1a40b8e4a904a59fc359f03c727c934846" kindref="member">cg_time</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>time<sp/>last<sp/>written<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="499" refid="structcg_1a6d53ca6360ffc18d638f244bd3a3a47d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><ref refid="structcg_1a6d53ca6360ffc18d638f244bd3a3a47d" kindref="member">cg_sparecon64</ref>[3];<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>reserved<sp/>for<sp/>future<sp/>use<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="500" refid="structcg_1ab07080046ac58389c390e6d3428036cd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1ac7c42f52639b9aca7da966a0783996d7" kindref="member">u_int8_t</ref><sp/><ref refid="structcg_1ab07080046ac58389c390e6d3428036cd" kindref="member">cg_space</ref>[1];<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>space<sp/>for<sp/>cylinder<sp/>group<sp/>maps<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="501"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>actually<sp/>longer<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="502"><highlight class="normal">};</highlight></codeline> <codeline lineno="503"><highlight class="normal"></highlight></codeline> <codeline lineno="504"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="505"><highlight class="comment"><sp/>*<sp/>Macros<sp/>for<sp/>access<sp/>to<sp/>cylinder<sp/>group<sp/>array<sp/>structures</highlight></codeline> <codeline lineno="506"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="507" refid="ufs_2ffs_2fs_8h_1ad863abad97449c80021eb3e264e31cf6" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cg_chkmagic(cgp)<sp/>((cgp)->cg_magic<sp/>==<sp/>CG_MAGIC)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="508" refid="ufs_2ffs_2fs_8h_1a1deb24b931a6b8fe6f5d0e76b8c41097" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cg_inosused(cgp)<sp/>\</highlight></codeline> <codeline lineno="509"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>((u_int8_t<sp/>*)((u_int8_t<sp/>*)(cgp)<sp/>+<sp/>(cgp)->cg_iusedoff))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="510" refid="ufs_2ffs_2fs_8h_1a00468f2d32403dba365e84ccb8f2dc5f" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cg_blksfree(cgp)<sp/>\</highlight></codeline> <codeline lineno="511"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>((u_int8_t<sp/>*)((u_int8_t<sp/>*)(cgp)<sp/>+<sp/>(cgp)->cg_freeoff))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="512" refid="ufs_2ffs_2fs_8h_1afdf6206c0f72fe914b885987a0dc76c0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cg_clustersfree(cgp)<sp/>\</highlight></codeline> <codeline lineno="513"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>((u_int8_t<sp/>*)((u_int8_t<sp/>*)(cgp)<sp/>+<sp/>(cgp)->cg_clusteroff))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="514" refid="ufs_2ffs_2fs_8h_1a640bf0194e9406d9780d9eb83f66bc68" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cg_clustersum(cgp)<sp/>\</highlight></codeline> <codeline lineno="515"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>((int32_t<sp/>*)((uintptr_t)(cgp)<sp/>+<sp/>(cgp)->cg_clustersumoff))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="516"><highlight class="normal"></highlight></codeline> <codeline lineno="517"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="518"><highlight class="comment"><sp/>*<sp/>Turn<sp/>filesystem<sp/>block<sp/>numbers<sp/>into<sp/>disk<sp/>block<sp/>addresses.</highlight></codeline> <codeline lineno="519"><highlight class="comment"><sp/>*<sp/>This<sp/>maps<sp/>filesystem<sp/>blocks<sp/>to<sp/>device<sp/>size<sp/>blocks.</highlight></codeline> <codeline lineno="520"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="521" refid="ufs_2ffs_2fs_8h_1ae26526d0ac7505aae7345f0288c17fe6" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>fsbtodb(fs,<sp/>b)<sp/><sp/>((daddr_t)(b)<sp/><<<sp/>(fs)->fs_fsbtodb)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="522" refid="ufs_2ffs_2fs_8h_1a7875100ca8ad379e53628cb7dec48ecd" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>dbtofsb(fs,<sp/>b)<sp/><sp/>((b)<sp/>>><sp/>(fs)->fs_fsbtodb)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="523"><highlight class="normal"></highlight></codeline> <codeline lineno="524"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="525"><highlight class="comment"><sp/>*<sp/>Cylinder<sp/>group<sp/>macros<sp/>to<sp/>locate<sp/>things<sp/>in<sp/>cylinder<sp/>groups.</highlight></codeline> <codeline lineno="526"><highlight class="comment"><sp/>*<sp/>They<sp/>calc<sp/>filesystem<sp/>addresses<sp/>of<sp/>cylinder<sp/>group<sp/>data<sp/>structures.</highlight></codeline> <codeline lineno="527"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="528" refid="ufs_2ffs_2fs_8h_1af7e946b674acc4ead5e3ae15317f52c0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cgbase(fs,<sp/>c)<sp/><sp/><sp/>(((ufs2_daddr_t)(fs)->fs_fpg)<sp/>*<sp/>(c))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="529" refid="ufs_2ffs_2fs_8h_1a83691a5846b97b4083c907e6c49de4fc" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cgdata(fs,<sp/>c)<sp/><sp/><sp/>(cgdmin(fs,<sp/>c)<sp/>+<sp/>(fs)->fs_metaspace)<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>data<sp/>zone<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="530" refid="ufs_2ffs_2fs_8h_1a80e3d3175ea2099883a57d6acd3682e0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cgmeta(fs,<sp/>c)<sp/><sp/><sp/>(cgdmin(fs,<sp/>c))<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>meta<sp/>data<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="531" refid="ufs_2ffs_2fs_8h_1a03cdc9c21f1412b107d85751f275c208" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cgdmin(fs,<sp/>c)<sp/><sp/><sp/>(cgstart(fs,<sp/>c)<sp/>+<sp/>(fs)->fs_dblkno)<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>1st<sp/>data<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="532" refid="ufs_2ffs_2fs_8h_1af2bea0d775018173b6e6f5141f09bdd0" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cgimin(fs,<sp/>c)<sp/><sp/><sp/>(cgstart(fs,<sp/>c)<sp/>+<sp/>(fs)->fs_iblkno)<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>inode<sp/>blk<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="533" refid="ufs_2ffs_2fs_8h_1a6ccbaf50dd709f99482cafcbc427d834" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cgsblock(fs,<sp/>c)<sp/>(cgstart(fs,<sp/>c)<sp/>+<sp/>(fs)->fs_sblkno)<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>super<sp/>blk<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="534" refid="ufs_2ffs_2fs_8h_1a5c527699eccebab4828fd122caea6cb7" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cgtod(fs,<sp/>c)<sp/><sp/><sp/><sp/>(cgstart(fs,<sp/>c)<sp/>+<sp/>(fs)->fs_cblkno)<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>cg<sp/>block<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="535" refid="ufs_2ffs_2fs_8h_1a1446925c904a61056fb611a539de03ca" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>cgstart(fs,<sp/>c)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="536"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((fs)->fs_magic<sp/>==<sp/>FS_UFS2_MAGIC<sp/>?<sp/>cgbase(fs,<sp/>c)<sp/>:<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="537"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(cgbase(fs,<sp/>c)<sp/>+<sp/>(fs)->fs_old_cgoffset<sp/>*<sp/>((c)<sp/>&<sp/>~((fs)->fs_old_cgmask))))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="538"><highlight class="normal"></highlight></codeline> <codeline lineno="539"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="540"><highlight class="comment"><sp/>*<sp/>Macros<sp/>for<sp/>handling<sp/>inode<sp/>numbers:</highlight></codeline> <codeline lineno="541"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>inode<sp/>number<sp/>to<sp/>filesystem<sp/>block<sp/>offset.</highlight></codeline> <codeline lineno="542"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>inode<sp/>number<sp/>to<sp/>cylinder<sp/>group<sp/>number.</highlight></codeline> <codeline lineno="543"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>inode<sp/>number<sp/>to<sp/>filesystem<sp/>block<sp/>address.</highlight></codeline> <codeline lineno="544"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="545" refid="ufs_2ffs_2fs_8h_1a22af882911b5ccb5c744257642089932" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ino_to_cg(fs,<sp/>x)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(((ino_t)(x))<sp/>/<sp/>(fs)->fs_ipg)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="546" refid="ufs_2ffs_2fs_8h_1aff52db23f4b31f920a657a75e0e5d58b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ino_to_fsba(fs,<sp/>x)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="547"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((ufs2_daddr_t)(cgimin(fs,<sp/>ino_to_cg(fs,<sp/>(ino_t)(x)))<sp/>+<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>\</highlight></codeline> <codeline lineno="548"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(blkstofrags((fs),<sp/>((((ino_t)(x))<sp/>%<sp/>(fs)->fs_ipg)<sp/>/<sp/>INOPB(fs))))))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="549" refid="ufs_2ffs_2fs_8h_1aa318a9ca261ab408a6df7949a593fb57" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>ino_to_fsbo(fs,<sp/>x)<sp/><sp/><sp/><sp/><sp/><sp/>(((ino_t)(x))<sp/>%<sp/>INOPB(fs))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="550"><highlight class="normal"></highlight></codeline> <codeline lineno="551"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="552"><highlight class="comment"><sp/>*<sp/>Give<sp/>cylinder<sp/>group<sp/>number<sp/>for<sp/>a<sp/>filesystem<sp/>block.</highlight></codeline> <codeline lineno="553"><highlight class="comment"><sp/>*<sp/>Give<sp/>cylinder<sp/>group<sp/>block<sp/>number<sp/>for<sp/>a<sp/>filesystem<sp/>block.</highlight></codeline> <codeline lineno="554"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="555" refid="ufs_2ffs_2fs_8h_1addb9672ece80e7c226115ecace858eec" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>dtog(fs,<sp/>d)<sp/><sp/><sp/><sp/><sp/>((d)<sp/>/<sp/>(fs)->fs_fpg)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="556" refid="ufs_2ffs_2fs_8h_1ad66c886093f91fbf139daaf137e0bd60" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>dtogd(fs,<sp/>d)<sp/><sp/><sp/><sp/>((d)<sp/>%<sp/>(fs)->fs_fpg)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="557"><highlight class="normal"></highlight></codeline> <codeline lineno="558"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="559"><highlight class="comment"><sp/>*<sp/>Extract<sp/>the<sp/>bits<sp/>for<sp/>a<sp/>block<sp/>from<sp/>a<sp/>map.</highlight></codeline> <codeline lineno="560"><highlight class="comment"><sp/>*<sp/>Compute<sp/>the<sp/>cylinder<sp/>and<sp/>rotational<sp/>position<sp/>of<sp/>a<sp/>cyl<sp/>block<sp/>addr.</highlight></codeline> <codeline lineno="561"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="562" refid="ufs_2ffs_2fs_8h_1ac11647795eb085ee43328d0c5bda47ae" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>blkmap(fs,<sp/>map,<sp/>loc)<sp/>\</highlight></codeline> <codeline lineno="563"><highlight class="preprocessor"><sp/><sp/><sp/><sp/>(((map)[(loc)<sp/>/<sp/>NBBY]<sp/>>><sp/>((loc)<sp/>%<sp/>NBBY))<sp/>&<sp/>(0xff<sp/>>><sp/>(NBBY<sp/>-<sp/>(fs)->fs_frag)))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="564"><highlight class="normal"></highlight></codeline> <codeline lineno="565"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="566"><highlight class="comment"><sp/>*<sp/>The<sp/>following<sp/>macros<sp/>optimize<sp/>certain<sp/>frequently<sp/>calculated</highlight></codeline> <codeline lineno="567"><highlight class="comment"><sp/>*<sp/>quantities<sp/>by<sp/>using<sp/>shifts<sp/>and<sp/>masks<sp/>in<sp/>place<sp/>of<sp/>divisions</highlight></codeline> <codeline lineno="568"><highlight class="comment"><sp/>*<sp/>modulos<sp/>and<sp/>multiplications.</highlight></codeline> <codeline lineno="569"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="570" refid="ufs_2ffs_2fs_8h_1acd9d1b3e1eed7fc3850f8a78636dd5a7" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>blkoff(fs,<sp/>loc)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>(loc<sp/>%<sp/>fs->fs_bsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="571"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((loc)<sp/>&<sp/>(fs)->fs_qbmask)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="572" refid="ufs_2ffs_2fs_8h_1af9974b7bff345fab3b3e629ac40d9b92" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>fragoff(fs,<sp/>loc)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>(loc<sp/>%<sp/>fs->fs_fsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="573"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((loc)<sp/>&<sp/>(fs)->fs_qfmask)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="574" refid="ufs_2ffs_2fs_8h_1a9f0783e610130a4e2414a8b5d970b6ea" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>lfragtosize(fs,<sp/>frag)<sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>((off_t)frag<sp/>*<sp/>fs->fs_fsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="575"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(((off_t)(frag))<sp/><<<sp/>(fs)->fs_fshift)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="576" refid="ufs_2ffs_2fs_8h_1a5b967dc8f042bb719c6e745e78824d7e" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>lblktosize(fs,<sp/>blk)<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>((off_t)blk<sp/>*<sp/>fs->fs_bsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="577"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(((off_t)(blk))<sp/><<<sp/>(fs)->fs_bshift)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="578"><highlight class="normal"></highlight><highlight class="comment">/*<sp/>Use<sp/>this<sp/>only<sp/>when<sp/>`blk'<sp/>is<sp/>known<sp/>to<sp/>be<sp/>small,<sp/>e.g.,<sp/><<sp/>NDADDR.<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="579" refid="ufs_2ffs_2fs_8h_1a1d55f50ebbb5fa90396f3576e071bc98" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>smalllblktosize(fs,<sp/>blk)<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>(blk<sp/>*<sp/>fs->fs_bsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="580"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((blk)<sp/><<<sp/>(fs)->fs_bshift)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="581" refid="ufs_2ffs_2fs_8h_1a1ea09415cf1bc5de0d0d4a7158a5c736" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>lblkno(fs,<sp/>loc)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>(loc<sp/>/<sp/>fs->fs_bsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="582"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((loc)<sp/>>><sp/>(fs)->fs_bshift)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="583" refid="ufs_2ffs_2fs_8h_1acfa519646d8a011297a5859930944c99" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>numfrags(fs,<sp/>loc)<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>(loc<sp/>/<sp/>fs->fs_fsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="584"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((loc)<sp/>>><sp/>(fs)->fs_fshift)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="585" refid="ufs_2ffs_2fs_8h_1aa89a88333cc6b36b00f042417af7ab28" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>blkroundup(fs,<sp/>size)<sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>roundup(size,<sp/>fs->fs_bsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="586"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(((size)<sp/>+<sp/>(fs)->fs_qbmask)<sp/>&<sp/>(fs)->fs_bmask)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="587" refid="ufs_2ffs_2fs_8h_1a1494995062a8a6dbbe60f8dc6a3e995d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>fragroundup(fs,<sp/>size)<sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>roundup(size,<sp/>fs->fs_fsize)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="588"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(((size)<sp/>+<sp/>(fs)->fs_qfmask)<sp/>&<sp/>(fs)->fs_fmask)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="589" refid="ufs_2ffs_2fs_8h_1af495910a3c363ed48f63e8ed71efc29f" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>fragstoblks(fs,<sp/>frags)<sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>(frags<sp/>/<sp/>fs->fs_frag)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="590"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((frags)<sp/>>><sp/>(fs)->fs_fragshift)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="591" refid="ufs_2ffs_2fs_8h_1a95d2f2b9e139c995142d775a63ed5f03" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>blkstofrags(fs,<sp/>blks)<sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>(blks<sp/>*<sp/>fs->fs_frag)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="592"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((blks)<sp/><<<sp/>(fs)->fs_fragshift)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="593" refid="ufs_2ffs_2fs_8h_1af1fecccf20b0223160bae2bd1e0b4fac" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>fragnum(fs,<sp/>fsb)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>(fsb<sp/>%<sp/>fs->fs_frag)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="594"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((fsb)<sp/>&<sp/>((fs)->fs_frag<sp/>-<sp/>1))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="595" refid="ufs_2ffs_2fs_8h_1a6eee27f474f8a078036aa7f53c397baf" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>blknum(fs,<sp/>fsb)<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>calculates<sp/>rounddown(fsb,<sp/>fs->fs_frag)<sp/>*/</highlight><highlight class="preprocessor"><sp/>\</highlight></codeline> <codeline lineno="596"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((fsb)<sp/>&~<sp/>((fs)->fs_frag<sp/>-<sp/>1))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="597"><highlight class="normal"></highlight></codeline> <codeline lineno="598"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="599"><highlight class="comment"><sp/>*<sp/>Determine<sp/>the<sp/>number<sp/>of<sp/>available<sp/>frags<sp/>given<sp/>a</highlight></codeline> <codeline lineno="600"><highlight class="comment"><sp/>*<sp/>percentage<sp/>to<sp/>hold<sp/>in<sp/>reserve.</highlight></codeline> <codeline lineno="601"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="602" refid="ufs_2ffs_2fs_8h_1a7f6459b64009021912845ee4ef17bcdd" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>freespace(fs,<sp/>percentreserved)<sp/>\</highlight></codeline> <codeline lineno="603"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(blkstofrags((fs),<sp/>(fs)->fs_cstotal.cs_nbfree)<sp/>+<sp/>\</highlight></codeline> <codeline lineno="604"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(fs)->fs_cstotal.cs_nffree<sp/>-<sp/>\</highlight></codeline> <codeline lineno="605"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(((off_t)((fs)->fs_dsize))<sp/>*<sp/>(percentreserved)<sp/>/<sp/>100))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="606"><highlight class="normal"></highlight></codeline> <codeline lineno="607"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="608"><highlight class="comment"><sp/>*<sp/>Determining<sp/>the<sp/>size<sp/>of<sp/>a<sp/>file<sp/>block<sp/>in<sp/>the<sp/>filesystem.</highlight></codeline> <codeline lineno="609"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="610" refid="ufs_2ffs_2fs_8h_1ac1f210a96207f2bb6fbcbc25d9d2d4e1" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>blksize(fs,<sp/>ip,<sp/>lbn)<sp/>\</highlight></codeline> <codeline lineno="611"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(((lbn)<sp/>>=<sp/>NDADDR<sp/>||<sp/>(ip)->i_size<sp/>>=<sp/>smalllblktosize(fs,<sp/>(lbn)<sp/>+<sp/>1))<sp/>\</highlight></codeline> <codeline lineno="612"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>?<sp/>(fs)->fs_bsize<sp/>\</highlight></codeline> <codeline lineno="613"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>:<sp/>(fragroundup(fs,<sp/>blkoff(fs,<sp/>(ip)->i_size))))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="614" refid="ufs_2ffs_2fs_8h_1ad35c4c33dc54a0b8db742e0b3b5f64aa" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>sblksize(fs,<sp/>size,<sp/>lbn)<sp/>\</highlight></codeline> <codeline lineno="615"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(((lbn)<sp/>>=<sp/>NDADDR<sp/>||<sp/>(size)<sp/>>=<sp/>((lbn)<sp/>+<sp/>1)<sp/><<<sp/>(fs)->fs_bshift)<sp/>\</highlight></codeline> <codeline lineno="616"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>?<sp/>(fs)->fs_bsize<sp/>\</highlight></codeline> <codeline lineno="617"><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>:<sp/>(fragroundup(fs,<sp/>blkoff(fs,<sp/>(size)))))</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="618"><highlight class="normal"></highlight></codeline> <codeline lineno="619"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="620"><highlight class="comment"><sp/>*<sp/>Number<sp/>of<sp/>indirects<sp/>in<sp/>a<sp/>filesystem<sp/>block.</highlight></codeline> <codeline lineno="621"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="622" refid="ufs_2ffs_2fs_8h_1a6d58397786421684bb8db78f01e13ae6" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>NINDIR(fs)<sp/><sp/><sp/><sp/><sp/><sp/>((fs)->fs_nindir)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="623"><highlight class="normal"></highlight></codeline> <codeline lineno="624"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="625"><highlight class="comment"><sp/>*<sp/>Indirect<sp/>lbns<sp/>are<sp/>aligned<sp/>on<sp/>NDADDR<sp/>addresses<sp/>where<sp/>single<sp/>indirects</highlight></codeline> <codeline lineno="626"><highlight class="comment"><sp/>*<sp/>are<sp/>the<sp/>negated<sp/>address<sp/>of<sp/>the<sp/>lowest<sp/>lbn<sp/>reachable,<sp/>double<sp/>indirects</highlight></codeline> <codeline lineno="627"><highlight class="comment"><sp/>*<sp/>are<sp/>this<sp/>lbn<sp/>-<sp/>1<sp/>and<sp/>triple<sp/>indirects<sp/>are<sp/>this<sp/>lbn<sp/>-<sp/>2.<sp/><sp/>This<sp/>yields</highlight></codeline> <codeline lineno="628"><highlight class="comment"><sp/>*<sp/>an<sp/>unusual<sp/>bit<sp/>order<sp/>to<sp/>determine<sp/>level.</highlight></codeline> <codeline lineno="629"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="630"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="631"><highlight class="normal">lbn_level(<ref refid="ufs_8h_1acfdbacc42c74f81152f66f8f81316513" kindref="member">ufs_lbn_t</ref><sp/>lbn)</highlight></codeline> <codeline lineno="632"><highlight class="normal">{</highlight></codeline> <codeline lineno="633"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(lbn<sp/>>=<sp/>0)</highlight></codeline> <codeline lineno="634"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>0;</highlight></codeline> <codeline lineno="635"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">switch</highlight><highlight class="normal"><sp/>(lbn<sp/>&<sp/>0x3)<sp/>{</highlight></codeline> <codeline lineno="636"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>0:</highlight></codeline> <codeline lineno="637"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(0);</highlight></codeline> <codeline lineno="638"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>1:</highlight></codeline> <codeline lineno="639"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="640"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>2:</highlight></codeline> <codeline lineno="641"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(2);</highlight></codeline> <codeline lineno="642"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">case</highlight><highlight class="normal"><sp/>3:</highlight></codeline> <codeline lineno="643"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(1);</highlight></codeline> <codeline lineno="644"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">default</highlight><highlight class="normal">:</highlight></codeline> <codeline lineno="645"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline> <codeline lineno="646"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline> <codeline lineno="647"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(-1);</highlight></codeline> <codeline lineno="648"><highlight class="normal">}</highlight></codeline> <codeline lineno="649"><highlight class="normal"></highlight></codeline> <codeline lineno="650"><highlight class="normal"></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/><ref refid="ufs_8h_1acfdbacc42c74f81152f66f8f81316513" kindref="member">ufs_lbn_t</ref></highlight></codeline> <codeline lineno="651"><highlight class="normal">lbn_offset(</highlight><highlight class="keyword">struct</highlight><highlight class="normal"><sp/><ref refid="structfs" kindref="compound">fs</ref><sp/>*<ref refid="structfs" kindref="compound">fs</ref>,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>level)</highlight></codeline> <codeline lineno="652"><highlight class="normal">{</highlight></codeline> <codeline lineno="653"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="ufs_8h_1acfdbacc42c74f81152f66f8f81316513" kindref="member">ufs_lbn_t</ref><sp/>res;</highlight></codeline> <codeline lineno="654"><highlight class="normal"></highlight></codeline> <codeline lineno="655"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(res<sp/>=<sp/>1;<sp/>level<sp/>><sp/>0;<sp/>level--)</highlight></codeline> <codeline lineno="656"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>res<sp/>*=<sp/><ref refid="ufs_2ffs_2fs_8h_1a6d58397786421684bb8db78f01e13ae6" kindref="member">NINDIR</ref>(<ref refid="structfs" kindref="compound">fs</ref>);</highlight></codeline> <codeline lineno="657"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(res);</highlight></codeline> <codeline lineno="658"><highlight class="normal">}</highlight></codeline> <codeline lineno="659"><highlight class="normal"></highlight></codeline> <codeline lineno="660"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="661"><highlight class="comment"><sp/>*<sp/>Number<sp/>of<sp/>inodes<sp/>in<sp/>a<sp/>secondary<sp/>storage<sp/>block/fragment.</highlight></codeline> <codeline lineno="662"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="663" refid="ufs_2ffs_2fs_8h_1a093aab4d88e8ac7dacc93d9cb6cc58ee" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>INOPB(fs)<sp/><sp/><sp/><sp/><sp/><sp/><sp/>((fs)->fs_inopb)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="664" refid="ufs_2ffs_2fs_8h_1a5939afd460c193768d22b459157fff03" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>INOPF(fs)<sp/><sp/><sp/><sp/><sp/><sp/><sp/>((fs)->fs_inopb<sp/>>><sp/>(fs)->fs_fragshift)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="665"><highlight class="normal"></highlight></codeline> <codeline lineno="666"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="667"><highlight class="comment"><sp/>*<sp/>Softdep<sp/>journal<sp/>record<sp/>format.</highlight></codeline> <codeline lineno="668"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="669"><highlight class="normal"></highlight></codeline> <codeline lineno="670" refid="ufs_2ffs_2fs_8h_1a134d634023dc6c806ebd0ac3302387c6" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>JOP_ADDREF<sp/><sp/><sp/><sp/><sp/><sp/>1<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Add<sp/>a<sp/>reference<sp/>to<sp/>an<sp/>inode.<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="671" refid="ufs_2ffs_2fs_8h_1a690b2696b6fb9002fc9b8eba3020d652" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>JOP_REMREF<sp/><sp/><sp/><sp/><sp/><sp/>2<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Remove<sp/>a<sp/>reference<sp/>from<sp/>an<sp/>inode.<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="672" refid="ufs_2ffs_2fs_8h_1a7c7eb2831fd7d0973e30650b4727675b" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>JOP_NEWBLK<sp/><sp/><sp/><sp/><sp/><sp/>3<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Allocate<sp/>a<sp/>block.<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="673" refid="ufs_2ffs_2fs_8h_1a9d5817e0238c71f6e4adf39f9e9271d7" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>JOP_FREEBLK<sp/><sp/><sp/><sp/><sp/>4<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Free<sp/>a<sp/>block<sp/>or<sp/>a<sp/>tree<sp/>of<sp/>blocks.<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="674" refid="ufs_2ffs_2fs_8h_1ac75aa27fa6823a9333348a5f2b9264aa" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>JOP_MVREF<sp/><sp/><sp/><sp/><sp/><sp/><sp/>5<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Move<sp/>a<sp/>reference<sp/>from<sp/>one<sp/>off<sp/>to<sp/>another.<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="675" refid="ufs_2ffs_2fs_8h_1a99f5802b336acd498d6887f60942e94d" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>JOP_TRUNC<sp/><sp/><sp/><sp/><sp/><sp/><sp/>6<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Partial<sp/>truncation<sp/>record.<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="676" refid="ufs_2ffs_2fs_8h_1a4e0d73f00c3077e2f469d7bae5f033e7" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>JOP_SYNC<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>7<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>fsync()<sp/>complete<sp/>record.<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="677"><highlight class="normal"></highlight></codeline> <codeline lineno="678" refid="ufs_2ffs_2fs_8h_1a4905331616d422822b20d4a8feebb8ac" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>JREC_SIZE<sp/><sp/><sp/><sp/><sp/><sp/><sp/>32<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Record<sp/>and<sp/>segment<sp/>header<sp/>size.<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="679"><highlight class="normal"></highlight></codeline> <codeline lineno="680" refid="ufs_2ffs_2fs_8h_1a57fecb337d45cced110e07e4453667ba" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SUJ_MIN<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(4<sp/>*<sp/>1024<sp/>*<sp/>1024)<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Minimum<sp/>journal<sp/>size<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="681" refid="ufs_2ffs_2fs_8h_1a91e540c7a8059e7ed242e6b393185134" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SUJ_MAX<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(32<sp/>*<sp/>1024<sp/>*<sp/>1024)<sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Maximum<sp/>journal<sp/>size<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="682" refid="ufs_2ffs_2fs_8h_1a37c8e3e7ddf943e18f40826f0d4bf6b5" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>SUJ_FILE<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>".sujournal"<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Journal<sp/>file<sp/>name<sp/>*/</highlight><highlight class="preprocessor"></highlight><highlight class="normal"></highlight></codeline> <codeline lineno="683"><highlight class="normal"></highlight></codeline> <codeline lineno="684"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="685"><highlight class="comment"><sp/>*<sp/>Size<sp/>of<sp/>the<sp/>segment<sp/>record<sp/>header.<sp/><sp/>There<sp/>is<sp/>at<sp/>most<sp/>one<sp/>for<sp/>each<sp/>disk</highlight></codeline> <codeline lineno="686"><highlight class="comment"><sp/>*<sp/>block<sp/>in<sp/>the<sp/>journal.<sp/><sp/>The<sp/>segment<sp/>header<sp/>is<sp/>followed<sp/>by<sp/>an<sp/>array<sp/>of</highlight></codeline> <codeline lineno="687"><highlight class="comment"><sp/>*<sp/>records.<sp/><sp/>fsck<sp/>depends<sp/>on<sp/>the<sp/>first<sp/>element<sp/>in<sp/>each<sp/>record<sp/>being<sp/>'op'</highlight></codeline> <codeline lineno="688"><highlight class="comment"><sp/>*<sp/>and<sp/>the<sp/>second<sp/>being<sp/>'ino'.<sp/><sp/>Segments<sp/>may<sp/>span<sp/>multiple<sp/>disk<sp/>blocks<sp/>but</highlight></codeline> <codeline lineno="689"><highlight class="comment"><sp/>*<sp/>the<sp/>header<sp/>is<sp/>present<sp/>on<sp/>each.</highlight></codeline> <codeline lineno="690"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="691" refid="structjsegrec" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjsegrec" kindref="compound">jsegrec</ref><sp/>{</highlight></codeline> <codeline lineno="692" refid="structjsegrec_1a198b9e44f9efb4b83a5fa65db4ff53d3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a747748dd98cf1e2e89eb8b1fa37113df" kindref="member">uint64_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjsegrec_1a198b9e44f9efb4b83a5fa65db4ff53d3" kindref="member">jsr_seq</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Our<sp/>sequence<sp/>number<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="693" refid="structjsegrec_1a93710448b9cb973d2e09ca82c204c082" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a747748dd98cf1e2e89eb8b1fa37113df" kindref="member">uint64_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjsegrec_1a93710448b9cb973d2e09ca82c204c082" kindref="member">jsr_oldest</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Oldest<sp/>valid<sp/>sequence<sp/>number<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="694" refid="structjsegrec_1a3f09bcd6ccfd591b362a781c15e58c19" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjsegrec_1a3f09bcd6ccfd591b362a781c15e58c19" kindref="member">jsr_cnt</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Count<sp/>of<sp/>valid<sp/>records<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="695" refid="structjsegrec_1a96eca30447796db9cf1e61e3edfa736b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjsegrec_1a96eca30447796db9cf1e61e3edfa736b" kindref="member">jsr_blocks</ref>;<sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Count<sp/>of<sp/>device<sp/>bsize<sp/>blocks.<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="696" refid="structjsegrec_1a0409c1b36d194690929c1b81d2d98d8b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjsegrec_1a0409c1b36d194690929c1b81d2d98d8b" kindref="member">jsr_crc</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>32bit<sp/>crc<sp/>of<sp/>the<sp/>valid<sp/>space<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="697" refid="structjsegrec_1a23ce2acd0dc9d357a5d5c45072ac57a5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="ufs_8h_1aec5bc03f68bf810247d604821ad95bb7" kindref="member">ufs_time_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjsegrec_1a23ce2acd0dc9d357a5d5c45072ac57a5" kindref="member">jsr_time</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>timestamp<sp/>for<sp/>mount<sp/>instance<sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="698"><highlight class="normal">};</highlight></codeline> <codeline lineno="699"><highlight class="normal"></highlight></codeline> <codeline lineno="700"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="701"><highlight class="comment"><sp/>*<sp/>Reference<sp/>record.<sp/><sp/>Records<sp/>a<sp/>single<sp/>link<sp/>count<sp/>modification.</highlight></codeline> <codeline lineno="702"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="703" refid="structjrefrec" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjrefrec" kindref="compound">jrefrec</ref><sp/>{</highlight></codeline> <codeline lineno="704" refid="structjrefrec_1ad9c1d6d19e0529443ffcd9520df382c8" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjrefrec_1ad9c1d6d19e0529443ffcd9520df382c8" kindref="member">jr_op</ref>;</highlight></codeline> <codeline lineno="705" refid="structjrefrec_1afbe139367c273c54c5b790c395385061" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjrefrec_1afbe139367c273c54c5b790c395385061" kindref="member">jr_ino</ref>;</highlight></codeline> <codeline lineno="706" refid="structjrefrec_1afca2073ad3ca483ae3b7bd4558d01c68" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjrefrec_1afca2073ad3ca483ae3b7bd4558d01c68" kindref="member">jr_parent</ref>;</highlight></codeline> <codeline lineno="707" refid="structjrefrec_1a69d1f31dca46cdf7944aa3be87fb5a82" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjrefrec_1a69d1f31dca46cdf7944aa3be87fb5a82" kindref="member">jr_nlink</ref>;</highlight></codeline> <codeline lineno="708" refid="structjrefrec_1a1242006807e29a0c31872311698f115a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjrefrec_1a1242006807e29a0c31872311698f115a" kindref="member">jr_mode</ref>;</highlight></codeline> <codeline lineno="709" refid="structjrefrec_1a2c060bb7bc920e9f63e1b5ec1bd41406" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjrefrec_1a2c060bb7bc920e9f63e1b5ec1bd41406" kindref="member">jr_diroff</ref>;</highlight></codeline> <codeline lineno="710" refid="structjrefrec_1a6b0d2a77c1f4207db50cf88c13a50b3e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a747748dd98cf1e2e89eb8b1fa37113df" kindref="member">uint64_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjrefrec_1a6b0d2a77c1f4207db50cf88c13a50b3e" kindref="member">jr_unused</ref>;</highlight></codeline> <codeline lineno="711"><highlight class="normal">};</highlight></codeline> <codeline lineno="712"><highlight class="normal"></highlight></codeline> <codeline lineno="713"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="714"><highlight class="comment"><sp/>*<sp/>Move<sp/>record.<sp/><sp/>Records<sp/>a<sp/>reference<sp/>moving<sp/>within<sp/>a<sp/>directory<sp/>block.<sp/><sp/>The</highlight></codeline> <codeline lineno="715"><highlight class="comment"><sp/>*<sp/>nlink<sp/>is<sp/>unchanged<sp/>but<sp/>we<sp/>must<sp/>search<sp/>both<sp/>locations.</highlight></codeline> <codeline lineno="716"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="717" refid="structjmvrec" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjmvrec" kindref="compound">jmvrec</ref><sp/>{</highlight></codeline> <codeline lineno="718" refid="structjmvrec_1a363ae8708e7609f9e0f194237582d09f" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjmvrec_1a363ae8708e7609f9e0f194237582d09f" kindref="member">jm_op</ref>;</highlight></codeline> <codeline lineno="719" refid="structjmvrec_1a35f86d3845ed80222885d4ed6918e205" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjmvrec_1a35f86d3845ed80222885d4ed6918e205" kindref="member">jm_ino</ref>;</highlight></codeline> <codeline lineno="720" refid="structjmvrec_1ae422e0440c4fdb322972e30c4b57ac83" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjmvrec_1ae422e0440c4fdb322972e30c4b57ac83" kindref="member">jm_parent</ref>;</highlight></codeline> <codeline lineno="721" refid="structjmvrec_1a778a515848c751d9177b0811a801461d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjmvrec_1a778a515848c751d9177b0811a801461d" kindref="member">jm_unused</ref>;</highlight></codeline> <codeline lineno="722" refid="structjmvrec_1a12037114ac756c27ec7e161974e2be16" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjmvrec_1a12037114ac756c27ec7e161974e2be16" kindref="member">jm_oldoff</ref>;</highlight></codeline> <codeline lineno="723" refid="structjmvrec_1a5ca871291a05ade9c0faf6381dd0ab09" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjmvrec_1a5ca871291a05ade9c0faf6381dd0ab09" kindref="member">jm_newoff</ref>;</highlight></codeline> <codeline lineno="724"><highlight class="normal">};</highlight></codeline> <codeline lineno="725"><highlight class="normal"></highlight></codeline> <codeline lineno="726"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="727"><highlight class="comment"><sp/>*<sp/>Block<sp/>record.<sp/><sp/>A<sp/>set<sp/>of<sp/>frags<sp/>or<sp/>tree<sp/>of<sp/>blocks<sp/>starting<sp/>at<sp/>an<sp/>indirect<sp/>are</highlight></codeline> <codeline lineno="728"><highlight class="comment"><sp/>*<sp/>freed<sp/>or<sp/>a<sp/>set<sp/>of<sp/>frags<sp/>are<sp/>allocated.</highlight></codeline> <codeline lineno="729"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="730" refid="structjblkrec" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjblkrec" kindref="compound">jblkrec</ref><sp/>{</highlight></codeline> <codeline lineno="731" refid="structjblkrec_1a41e3aed5863269fe86822b2eccd22906" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjblkrec_1a41e3aed5863269fe86822b2eccd22906" kindref="member">jb_op</ref>;</highlight></codeline> <codeline lineno="732" refid="structjblkrec_1a2ac2f02b6a0100caf563f1b25fe7a4c2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjblkrec_1a2ac2f02b6a0100caf563f1b25fe7a4c2" kindref="member">jb_ino</ref>;</highlight></codeline> <codeline lineno="733" refid="structjblkrec_1a453d7ed85a430c2c3f649b46451b21ae" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="ufs_8h_1ad1d47f60518d845f7e798fa0f3458753" kindref="member">ufs2_daddr_t</ref><sp/><sp/><sp/><sp/><ref refid="structjblkrec_1a453d7ed85a430c2c3f649b46451b21ae" kindref="member">jb_blkno</ref>;</highlight></codeline> <codeline lineno="734" refid="structjblkrec_1a53a989bf94c9673bf8cc7d633235c55b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="ufs_8h_1acfdbacc42c74f81152f66f8f81316513" kindref="member">ufs_lbn_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjblkrec_1a53a989bf94c9673bf8cc7d633235c55b" kindref="member">jb_lbn</ref>;</highlight></codeline> <codeline lineno="735" refid="structjblkrec_1aac97a200e4ef35a5397c12442e04696c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjblkrec_1aac97a200e4ef35a5397c12442e04696c" kindref="member">jb_frags</ref>;</highlight></codeline> <codeline lineno="736" refid="structjblkrec_1a3b7d6f9767994ef1e9c100121e0f581e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjblkrec_1a3b7d6f9767994ef1e9c100121e0f581e" kindref="member">jb_oldfrags</ref>;</highlight></codeline> <codeline lineno="737" refid="structjblkrec_1a1b033d8a5dd4b5d9551b0ca8b584fde7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjblkrec_1a1b033d8a5dd4b5d9551b0ca8b584fde7" kindref="member">jb_unused</ref>;</highlight></codeline> <codeline lineno="738"><highlight class="normal">};</highlight></codeline> <codeline lineno="739"><highlight class="normal"></highlight></codeline> <codeline lineno="740"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="741"><highlight class="comment"><sp/>*<sp/>Truncation<sp/>record.<sp/><sp/>Records<sp/>a<sp/>partial<sp/>truncation<sp/>so<sp/>that<sp/>it<sp/>may<sp/>be</highlight></codeline> <codeline lineno="742"><highlight class="comment"><sp/>*<sp/>completed<sp/>at<sp/>check<sp/>time.<sp/><sp/>Also<sp/>used<sp/>for<sp/>sync<sp/>records.</highlight></codeline> <codeline lineno="743"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="744" refid="structjtrncrec" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjtrncrec" kindref="compound">jtrncrec</ref><sp/>{</highlight></codeline> <codeline lineno="745" refid="structjtrncrec_1a0214a2b7a68b722eb13ab337e046288e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjtrncrec_1a0214a2b7a68b722eb13ab337e046288e" kindref="member">jt_op</ref>;</highlight></codeline> <codeline lineno="746" refid="structjtrncrec_1a7af65ef59a97f8cb9dc18c8dc8b5cfe6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjtrncrec_1a7af65ef59a97f8cb9dc18c8dc8b5cfe6" kindref="member">jt_ino</ref>;</highlight></codeline> <codeline lineno="747" refid="structjtrncrec_1af4fab278a8b152a877634a828007e39b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a96411d49619f50e635418ee57651b95d" kindref="member">int64_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjtrncrec_1af4fab278a8b152a877634a828007e39b" kindref="member">jt_size</ref>;</highlight></codeline> <codeline lineno="748" refid="structjtrncrec_1a3b83cbbec259498771f542221cb3805a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjtrncrec_1a3b83cbbec259498771f542221cb3805a" kindref="member">jt_extsize</ref>;</highlight></codeline> <codeline lineno="749" refid="structjtrncrec_1acb303ba5718d17cb15bfcbe2c4eb0ea9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="structjtrncrec_1acb303ba5718d17cb15bfcbe2c4eb0ea9" kindref="member">jt_pad</ref>[3];</highlight></codeline> <codeline lineno="750"><highlight class="normal">};</highlight></codeline> <codeline lineno="751"><highlight class="normal"></highlight></codeline> <codeline lineno="752" refid="unionjrec" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">union<sp/></highlight><highlight class="normal"><ref refid="unionjrec" kindref="compound">jrec</ref><sp/>{</highlight></codeline> <codeline lineno="753" refid="unionjrec_1a40d605d9d09cc571a962597339bc0f95" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjsegrec" kindref="compound">jsegrec</ref><sp/><sp/><ref refid="unionjrec_1a40d605d9d09cc571a962597339bc0f95" kindref="member">rec_jsegrec</ref>;</highlight></codeline> <codeline lineno="754" refid="unionjrec_1a1d52e1b5425be5182c03d46f97a0c2e1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjrefrec" kindref="compound">jrefrec</ref><sp/><sp/><ref refid="unionjrec_1a1d52e1b5425be5182c03d46f97a0c2e1" kindref="member">rec_jrefrec</ref>;</highlight></codeline> <codeline lineno="755" refid="unionjrec_1a271af649dc0e887bba8d54e75d4bb2e4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjmvrec" kindref="compound">jmvrec</ref><sp/><sp/><sp/><ref refid="unionjrec_1a271af649dc0e887bba8d54e75d4bb2e4" kindref="member">rec_jmvrec</ref>;</highlight></codeline> <codeline lineno="756" refid="unionjrec_1a39310a4de1f1230cd25ed6d748b9e1ec" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjblkrec" kindref="compound">jblkrec</ref><sp/><sp/><ref refid="unionjrec_1a39310a4de1f1230cd25ed6d748b9e1ec" kindref="member">rec_jblkrec</ref>;</highlight></codeline> <codeline lineno="757" refid="unionjrec_1a6a20b64e3b9ae832c62c7778ac984d47" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structjtrncrec" kindref="compound">jtrncrec</ref><sp/><ref refid="unionjrec_1a6a20b64e3b9ae832c62c7778ac984d47" kindref="member">rec_jtrncrec</ref>;</highlight></codeline> <codeline lineno="758"><highlight class="normal">};</highlight></codeline> <codeline lineno="759"><highlight class="normal"></highlight></codeline> <codeline lineno="760"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>CTASSERT</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="761"><highlight class="normal">CTASSERT(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keyword">struct</highlight><highlight class="normal"><sp/><ref refid="structjsegrec" kindref="compound">jsegrec</ref>)<sp/>==<sp/><ref refid="ufs_2ffs_2fs_8h_1a4905331616d422822b20d4a8feebb8ac" kindref="member">JREC_SIZE</ref>);</highlight></codeline> <codeline lineno="762"><highlight class="normal">CTASSERT(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keyword">struct</highlight><highlight class="normal"><sp/><ref refid="structjrefrec" kindref="compound">jrefrec</ref>)<sp/>==<sp/><ref refid="ufs_2ffs_2fs_8h_1a4905331616d422822b20d4a8feebb8ac" kindref="member">JREC_SIZE</ref>);</highlight></codeline> <codeline lineno="763"><highlight class="normal">CTASSERT(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keyword">struct</highlight><highlight class="normal"><sp/><ref refid="structjmvrec" kindref="compound">jmvrec</ref>)<sp/>==<sp/><ref refid="ufs_2ffs_2fs_8h_1a4905331616d422822b20d4a8feebb8ac" kindref="member">JREC_SIZE</ref>);</highlight></codeline> <codeline lineno="764"><highlight class="normal">CTASSERT(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keyword">struct</highlight><highlight class="normal"><sp/><ref refid="structjblkrec" kindref="compound">jblkrec</ref>)<sp/>==<sp/><ref refid="ufs_2ffs_2fs_8h_1a4905331616d422822b20d4a8feebb8ac" kindref="member">JREC_SIZE</ref>);</highlight></codeline> <codeline lineno="765"><highlight class="normal">CTASSERT(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keyword">struct</highlight><highlight class="normal"><sp/><ref refid="structjtrncrec" kindref="compound">jtrncrec</ref>)<sp/>==<sp/><ref refid="ufs_2ffs_2fs_8h_1a4905331616d422822b20d4a8feebb8ac" kindref="member">JREC_SIZE</ref>);</highlight></codeline> <codeline lineno="766"><highlight class="normal">CTASSERT(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keyword">union</highlight><highlight class="normal"><sp/><ref refid="unionjrec" kindref="compound">jrec</ref>)<sp/>==<sp/><ref refid="ufs_2ffs_2fs_8h_1a4905331616d422822b20d4a8feebb8ac" kindref="member">JREC_SIZE</ref>);</highlight></codeline> <codeline lineno="767"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="768"><highlight class="normal"></highlight></codeline> <codeline lineno="769"><highlight class="normal"></highlight><highlight class="keyword">extern</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="ufs_2ffs_2fs_8h_1a9de91045e6b0e9956ab6648124ac3dcc" kindref="member">inside</ref>[],<sp/><ref refid="ufs_2ffs_2fs_8h_1a34ec76b74d405e5b8d84f03da131e31b" kindref="member">around</ref>[];</highlight></codeline> <codeline lineno="770"><highlight class="normal"></highlight><highlight class="keyword">extern</highlight><highlight class="normal"><sp/><ref refid="include_2sys_2types_8h_1ae2b02ed168fc99cff3851603910b1fb6" kindref="member">u_char</ref><sp/>*<ref refid="ufs_2ffs_2fs_8h_1a2b6976f7b2ef1386046f64697328599c" kindref="member">fragtbl</ref>[];</highlight></codeline> <codeline lineno="771"><highlight class="normal"></highlight></codeline> <codeline lineno="772"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline> <codeline lineno="773"><highlight class="comment"><sp/>*<sp/>IOCTLs<sp/>used<sp/>for<sp/>filesystem<sp/>write<sp/>suspension.</highlight></codeline> <codeline lineno="774"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="775" refid="ufs_2ffs_2fs_8h_1a52c0d0571a2cba9f05c05e33cc141936" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>UFSSUSPEND<sp/><sp/><sp/><sp/><sp/><sp/>_IOW('U',<sp/>1,<sp/>fsid_t)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="776" refid="ufs_2ffs_2fs_8h_1ae33287b99e13a8ad88976a730658c7fe" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>UFSRESUME<sp/><sp/><sp/><sp/><sp/><sp/><sp/>_IO('U',<sp/>2)</highlight><highlight class="normal"></highlight></codeline> <codeline lineno="777"><highlight class="normal"></highlight></codeline> <codeline lineno="778"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight></codeline> </programlisting> <location file="C:/Dev/git/UbixOS/sys/include/ufs/ffs/fs.h"/> </compounddef> </doxygen>