#include <linux/slab.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
#include <linux/miscdevice.h>
#include "fsl-mc-private.h"
struct uapi_priv_data { … };
struct fsl_mc_cmd_desc { … };
#define FSL_MC_CHECK_MODULE_ID …
#define FSL_MC_CAP_NET_ADMIN_NEEDED …
enum fsl_mc_cmd_index { … };
static struct fsl_mc_cmd_desc fsl_mc_accepted_cmds[] = …;
#define FSL_MC_NUM_ACCEPTED_CMDS …
#define FSL_MC_MAX_MODULE_ID …
static int fsl_mc_command_check(struct fsl_mc_device *mc_dev,
struct fsl_mc_command *mc_cmd)
{ … }
static int fsl_mc_uapi_send_command(struct fsl_mc_device *mc_dev, unsigned long arg,
struct fsl_mc_io *mc_io)
{ … }
static int fsl_mc_uapi_dev_open(struct inode *inode, struct file *filep)
{ … }
static int fsl_mc_uapi_dev_release(struct inode *inode, struct file *filep)
{ … }
static long fsl_mc_uapi_dev_ioctl(struct file *file,
unsigned int cmd,
unsigned long arg)
{ … }
static const struct file_operations fsl_mc_uapi_dev_fops = …;
int fsl_mc_uapi_create_device_file(struct fsl_mc_bus *mc_bus)
{ … }
void fsl_mc_uapi_remove_device_file(struct fsl_mc_bus *mc_bus)
{ … }