ReactOS 0.4.16-dev-297-gc569aee
|
#include "vfatlib.h"
#include <debug.h>
Go to the source code of this file.
Macros | |
#define | NDEBUG |
Functions | |
void | get_fat (FAT_ENTRY *entry, void *fat, uint32_t cluster, DOS_FS *fs) |
void | read_fat (DOS_FS *fs) |
void | set_fat (DOS_FS *fs, uint32_t cluster, int32_t new) |
int | bad_cluster (DOS_FS *fs, uint32_t cluster) |
uint32_t | next_cluster (DOS_FS *fs, uint32_t cluster) |
off_t | cluster_start (DOS_FS *fs, uint32_t cluster) |
void | set_owner (DOS_FS *fs, uint32_t cluster, DOS_FILE *owner) |
DOS_FILE * | get_owner (DOS_FS *fs, uint32_t cluster) |
void | fix_bad (DOS_FS *fs) |
void | reclaim_free (DOS_FS *fs) |
static void | tag_free (DOS_FS *fs, DOS_FILE *owner, uint32_t *num_refs, uint32_t start_cluster) |
void | reclaim_file (DOS_FS *fs) |
uint32_t | update_free (DOS_FS *fs) |
Definition at line 258 of file fat.c.
Referenced by check_file(), and test_file().
Definition at line 289 of file fat.c.
Referenced by alloc_rootdir_entry(), find_volume_de(), fix_bad(), scan_dir(), and test_file().
Definition at line 322 of file fat.c.
Referenced by VfatChkdsk().
Fetch the FAT entry for a specified cluster.
[out] | entry | Cluster to which cluster of interest is linked |
[in] | fat | FAT table for the partition |
[in] | cluster | Cluster of interest |
[in] | fs | Information from the FAT boot sectors (bits per FAT entry) |
Definition at line 41 of file fat.c.
Referenced by alloc_rootdir_entry(), bad_cluster(), check_file(), fix_bad(), next_cluster(), read_fat(), reclaim_file(), reclaim_free(), set_fat(), tag_free(), undelete(), and update_free().
Definition at line 314 of file fat.c.
Referenced by fix_bad(), reclaim_file(), reclaim_free(), tag_free(), and update_free().
Get the cluster to which the specified cluster is linked. If the linked cluster is marked bad, abort.
[in] | fs | Information about the filesystem |
[in] | cluster | Cluster to follow |
Definition at line 276 of file fat.c.
Referenced by alloc_rootdir_entry(), check_file(), drop_file(), find_volume_de(), reclaim_file(), scan_dir(), tag_free(), test_file(), and truncate_file().
Build a bookkeeping structure from the partition's FAT table. If the partition has multiple FATs and they don't agree, try to pick a winner, and queue a command to overwrite the loser. One error that is fixed here is a cluster that links to something out of range.
[in,out] | fs | Information about the filesystem |
Definition at line 81 of file fat.c.
Referenced by VfatChkdsk().
Recover orphan chains to files, handling any cycles or cross-links.
[in,out] | fs | Information about the filesystem |
Definition at line 426 of file fat.c.
Referenced by VfatChkdsk().
Definition at line 340 of file fat.c.
Referenced by VfatChkdsk().
Update the FAT entry for a specified cluster (i.e., change the cluster it links to). Queue a command to write out this change.
[in,out] | fs | Information about the filesystem |
[in] | cluster | Cluster to change |
[in] | new | Cluster to link to Special values: 0 == free cluster -1 == end-of-chain -2 == bad cluster |
Definition at line 189 of file fat.c.
Referenced by alloc_rootdir_entry(), check_file(), fix_bad(), read_fat(), reclaim_file(), reclaim_free(), tag_free(), test_file(), truncate_file(), and undelete().
Update internal bookkeeping to show that the specified cluster belongs to the specified dentry.
[in,out] | fs | Information about the filesystem |
[in] | cluster | Cluster being assigned |
[in] | owner | Information on dentry that owns this cluster (may be NULL) |
Definition at line 303 of file fat.c.
Referenced by alloc_rootdir_entry(), check_file(), drop_file(), tag_free(), and test_file().
|
static |
Assign the specified owner to all orphan chains (except cycles). Break cross-links between orphan chains.
[in,out] | fs | Information about the filesystem |
[in] | owner | dentry to be assigned ownership of orphans |
[in,out] | num_refs | For each orphan cluster [index], how many clusters link to it. |
[in] | start_cluster | Where to start scanning for orphans |
Definition at line 378 of file fat.c.
Referenced by reclaim_file().
Definition at line 531 of file fat.c.
Referenced by VfatChkdsk().