#include <linux/moduleparam.h>
#include <linux/export.h>
#include <linux/debugfs.h>
#include <linux/fs.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <linux/stat.h>
#include <linux/fault-inject.h>
#include <linux/time.h>
#include <linux/mmc/card.h>
#include <linux/mmc/host.h>
#include <linux/mmc/mmc.h>
#include <linux/mmc/sd.h>
#include "core.h"
#include "card.h"
#include "host.h"
#include "mmc_ops.h"
#ifdef CONFIG_FAIL_MMC_REQUEST
static DECLARE_FAULT_ATTR(fail_default_attr);
static char *fail_request;
module_param(fail_request, charp, 0);
MODULE_PARM_DESC(…) …;
#endif
static int mmc_ios_show(struct seq_file *s, void *data)
{ … }
DEFINE_SHOW_ATTRIBUTE(…);
static int mmc_clock_opt_get(void *data, u64 *val)
{ … }
static int mmc_clock_opt_set(void *data, u64 val)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
static int mmc_err_state_get(void *data, u64 *val)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
static int mmc_err_stats_show(struct seq_file *file, void *data)
{ … }
static int mmc_err_stats_open(struct inode *inode, struct file *file)
{ … }
static ssize_t mmc_err_stats_write(struct file *filp, const char __user *ubuf,
size_t cnt, loff_t *ppos)
{ … }
static const struct file_operations mmc_err_stats_fops = …;
static int mmc_caps_get(void *data, u64 *val)
{ … }
static int mmc_caps_set(void *data, u64 val)
{ … }
static int mmc_caps2_set(void *data, u64 val)
{ … }
DEFINE_DEBUGFS_ATTRIBUTE(…);
DEFINE_DEBUGFS_ATTRIBUTE(…);
void mmc_add_host_debugfs(struct mmc_host *host)
{ … }
void mmc_remove_host_debugfs(struct mmc_host *host)
{ … }
void mmc_add_card_debugfs(struct mmc_card *card)
{ … }
void mmc_remove_card_debugfs(struct mmc_card *card)
{ … }