#include <linux/time.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include <linux/buffer_head.h>
#include <linux/blk_types.h>
#include "exfat_raw.h"
#include "exfat_fs.h"
void __exfat_fs_error(struct super_block *sb, int report, const char *fmt, ...)
{ … }
#define SECS_PER_MIN …
#define TIMEZONE_SEC(x) …
static void exfat_adjust_tz(struct timespec64 *ts, u8 tz_off)
{ … }
static inline int exfat_tz_offset(struct exfat_sb_info *sbi)
{ … }
void exfat_get_entry_time(struct exfat_sb_info *sbi, struct timespec64 *ts,
u8 tz, __le16 time, __le16 date, u8 time_cs)
{ … }
void exfat_set_entry_time(struct exfat_sb_info *sbi, struct timespec64 *ts,
u8 *tz, __le16 *time, __le16 *date, u8 *time_cs)
{ … }
void exfat_truncate_atime(struct timespec64 *ts)
{ … }
void exfat_truncate_inode_atime(struct inode *inode)
{ … }
u16 exfat_calc_chksum16(void *data, int len, u16 chksum, int type)
{ … }
u32 exfat_calc_chksum32(void *data, int len, u32 chksum, int type)
{ … }
void exfat_update_bh(struct buffer_head *bh, int sync)
{ … }
int exfat_update_bhs(struct buffer_head **bhs, int nr_bhs, int sync)
{ … }
void exfat_chain_set(struct exfat_chain *ec, unsigned int dir,
unsigned int size, unsigned char flags)
{ … }
void exfat_chain_dup(struct exfat_chain *dup, struct exfat_chain *ec)
{ … }