linux/fs/fat/misc.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 *  linux/fs/fat/misc.c
 *
 *  Written 1992,1993 by Werner Almesberger
 *  22/11/2000 - Fixed fat_date_unix2dos for dates earlier than 01/01/1980
 *		 and date_dos2unix for date==0 by Igor Zhbanov([email protected])
 */

#include "fat.h"
#include <linux/iversion.h>

/*
 * fat_fs_error reports a file system problem that might indicate fa data
 * corruption/inconsistency. Depending on 'errors' mount option the
 * panic() is called, or error message is printed FAT and nothing is done,
 * or filesystem is remounted read-only (default behavior).
 * In case the file system is remounted read-only, it can be made writable
 * again by remounting it.
 */
void __fat_fs_error(struct super_block *sb, int report, const char *fmt, ...)
{}
EXPORT_SYMBOL_GPL();

/**
 * _fat_msg() - Print a preformatted FAT message based on a superblock.
 * @sb: A pointer to a &struct super_block
 * @level: A Kernel printk level constant
 * @fmt: The printf-style format string to print.
 *
 * Everything that is not fat_fs_error() should be fat_msg().
 *
 * fat_msg() wraps _fat_msg() for printk indexing.
 */
void _fat_msg(struct super_block *sb, const char *level, const char *fmt, ...)
{}

/* Flushes the number of free clusters on FAT32 */
/* XXX: Need to write one per FSINFO block.  Currently only writes 1 */
int fat_clusters_flush(struct super_block *sb)
{}

/*
 * fat_chain_add() adds a new cluster to the chain of clusters represented
 * by inode.
 */
int fat_chain_add(struct inode *inode, int new_dclus, int nr_cluster)
{}

/*
 * The epoch of FAT timestamp is 1980.
 *     :  bits :     value
 * date:  0 -  4: day	(1 -  31)
 * date:  5 -  8: month	(1 -  12)
 * date:  9 - 15: year	(0 - 127) from 1980
 * time:  0 -  4: sec	(0 -  29) 2sec counts
 * time:  5 - 10: min	(0 -  59)
 * time: 11 - 15: hour	(0 -  23)
 */
#define SECS_PER_MIN
#define SECS_PER_HOUR
#define SECS_PER_DAY
/* days between 1.1.70 and 1.1.80 (2 leap days) */
#define DAYS_DELTA
/* 120 (2100 - 1980) isn't leap year */
#define YEAR_2100
#define IS_LEAP_YEAR(y)

/* Linear day numbers of the respective 1sts in non-leap years. */
static long days_in_year[] =;

static inline int fat_tz_offset(const struct msdos_sb_info *sbi)
{}

/* Convert a FAT time/date pair to a UNIX date (seconds since 1 1 70). */
void fat_time_fat2unix(struct msdos_sb_info *sbi, struct timespec64 *ts,
		       __le16 __time, __le16 __date, u8 time_cs)
{}

/* Export fat_time_fat2unix() for the fat_test KUnit tests. */
EXPORT_SYMBOL_GPL();

/* Convert linear UNIX date to a FAT time/date pair. */
void fat_time_unix2fat(struct msdos_sb_info *sbi, struct timespec64 *ts,
		       __le16 *time, __le16 *date, u8 *time_cs)
{}
EXPORT_SYMBOL_GPL();

static inline struct timespec64 fat_timespec64_trunc_2secs(struct timespec64 ts)
{}

/*
 * truncate atime to 24 hour granularity (00:00:00 in local timezone)
 */
struct timespec64 fat_truncate_atime(const struct msdos_sb_info *sbi,
				     const struct timespec64 *ts)
{}

/*
 * truncate mtime to 2 second granularity
 */
struct timespec64 fat_truncate_mtime(const struct msdos_sb_info *sbi,
				     const struct timespec64 *ts)
{}

/*
 * truncate the various times with appropriate granularity:
 *   all times in root node are always 0
 */
int fat_truncate_time(struct inode *inode, struct timespec64 *now, int flags)
{}
EXPORT_SYMBOL_GPL();

int fat_update_time(struct inode *inode, int flags)
{}
EXPORT_SYMBOL_GPL();

int fat_sync_bhs(struct buffer_head **bhs, int nr_bhs)
{}