Lines Matching +full:block +full:- +full:number
3 /*-
4 * SPDX-License-Identifier: BSD-4-Clause
36 /*-
72 * Layout of the mount control block for a MSDOSFS filesystem.
89 u_long pm_FATsecs; /* actual number of FAT sectors */
90 u_long pm_fatblk; /* block # of first FAT */
91 u_long pm_rootdirblk; /* block # (cluster # for FAT32) of root directory number */
93 u_long pm_firstcluster; /* block number of first cluster */
94 u_long pm_maxcluster; /* maximum cluster number */
95 u_long pm_freeclustercount; /* number of free clusters */
96 u_long pm_cnshift; /* shift file offset right this amount to get a cluster number */
98 u_long pm_bnshift; /* shift file offset right this amount to get a block number */
105 u_long pm_fsinfo; /* fsinfo block number */
110 int pm_rootdirfree; /* number of free slots in FAT12/16 root directory */
111 u_int *pm_inusemap; /* ptr to bitmap of in-use clusters */
113 void *pm_u2w; /* Local->Unicode iconv handle */
114 void *pm_w2u; /* Unicode->Local iconv handle */
115 void *pm_u2d; /* Unicode->DOS iconv handle */
116 void *pm_d2u; /* DOS->Local iconv handle */
125 * A 64-bit file number and the 32-bit file number to which it is mapped,
126 * in a red-black tree node.
135 #define FATOFS(pmp, cn) ((cn) * (pmp)->pm_fatmult / (pmp)->pm_fatdiv)
137 #define VFSTOMSDOSFS(mp) ((struct msdosfsmount *)mp->mnt_data)
139 /* Number of bits in one pm_inusemap item: */
157 * Convert pointer to buffer -> pointer to direntry
160 ((struct direntry *)(((bp)->b_data) \
161 + ((dirofs) & (pmp)->pm_crbomask)))
164 * Convert block number to cluster number
167 ((bn) >> ((pmp)->pm_cnshift - (pmp)->pm_bnshift))
170 * Convert cluster number to block number
173 ((cn) << ((pmp)->pm_cnshift - (pmp)->pm_bnshift))
176 * Convert file offset to cluster number
179 ((off) >> (pmp)->pm_cnshift)
185 (((size) + (pmp)->pm_bpcluster - 1) >> (pmp)->pm_cnshift)
188 * Convert file offset to block number
194 * Convert cluster number to file offset
197 ((cn) << (pmp)->pm_cnshift)
200 * Convert block number to file offset
203 ((bn) << (pmp)->pm_bnshift)
205 * Map a cluster number into a filesystem relative block number.
208 (de_cn2bn((pmp), (cn)-CLUST_FIRST) + (pmp)->pm_firstcluster)
211 * Calculate block number for directory entry in root dir, offset dirofs
214 (de_blk((pmp), (dirofs)) + (pmp)->pm_rootdirblk)
217 * Calculate block number for directory entry at cluster dirclu, offset
226 * Increment the number of used entries in a fixed size FAT12/16 root
230 if ((dep)->de_StartCluster == MSDOSFSROOT) \
231 (dep)->de_pmp->pm_rootdirfree--;
234 * Decrement the number of used entries in a fixed size FAT12/16 root
238 if ((dep)->de_StartCluster == MSDOSFSROOT) \
239 (dep)->de_pmp->pm_rootdirfree++;
242 lockmgr(&(pmp)->pm_fatlock, LK_EXCLUSIVE, NULL)
244 lockmgr(&(pmp)->pm_fatlock, LK_RELEASE, NULL)
246 lockmgr_assert(&(pmp)->pm_fatlock, KA_XLOCKED)
261 int unused1; /* unused, was version number */
262 uint16_t unused2[128]; /* no longer used, was Local->Unicode table */
281 #define MSDOSFSMNT_RONLY 0x80000000 /* mounted read-only */