linux/drivers/block/aoe/aoechr.c

/* Copyright (c) 2012 Coraid, Inc.  See COPYING for GPL terms. */
/*
 * aoechr.c
 * AoE character device driver
 */

#include <linux/hdreg.h>
#include <linux/blkdev.h>
#include <linux/completion.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/mutex.h>
#include <linux/skbuff.h>
#include <linux/export.h>
#include "aoe.h"

enum {};

struct aoe_chardev {};

enum {};

struct ErrMsg {};

static DEFINE_MUTEX(aoechr_mutex);

/* A ring buffer of error messages, to be read through
 * "/dev/etherd/err".  When no messages are present,
 * readers will block waiting for messages to appear.
 */
static struct ErrMsg emsgs[NMSG];
static int emsgs_head_idx, emsgs_tail_idx;
static struct completion emsgs_comp;
static spinlock_t emsgs_lock;
static int nblocked_emsgs_readers;

static struct aoe_chardev chardevs[] =;

static char *aoe_devnode(const struct device *dev, umode_t *mode)
{}

static const struct class aoe_class =;

static int
discover(void)
{}

static int
interfaces(const char __user *str, size_t size)
{}

static int
revalidate(const char __user *str, size_t size)
{}

void
aoechr_error(char *msg)
{}

static ssize_t
aoechr_write(struct file *filp, const char __user *buf, size_t cnt, loff_t *offp)
{}

static int
aoechr_open(struct inode *inode, struct file *filp)
{}

static int
aoechr_rel(struct inode *inode, struct file *filp)
{}

static ssize_t
aoechr_read(struct file *filp, char __user *buf, size_t cnt, loff_t *off)
{}

static const struct file_operations aoe_fops =;

int __init
aoechr_init(void)
{}

void
aoechr_exit(void)
{}