Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af064cdd authored by Al Viro's avatar Al Viro
Browse files

dgrp procfs fixes, part 5: per-node files



this "hooks" scheme is pointless - just make file_operations non-static
and consolidate initialiazation bits.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 08f3d07d
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -49,20 +49,20 @@ extern struct dgrp_poll_data dgrp_poll_data;
extern void dgrp_poll_handler(unsigned long arg);
extern void dgrp_poll_handler(unsigned long arg);


/* from dgrp_mon_ops.c */
/* from dgrp_mon_ops.c */
extern void dgrp_register_mon_hook(struct proc_dir_entry *de);
extern const struct file_operations dgrp_mon_ops;


/* from dgrp_tty.c */
/* from dgrp_tty.c */
extern int dgrp_tty_init(struct nd_struct *nd);
extern int dgrp_tty_init(struct nd_struct *nd);
extern void dgrp_tty_uninit(struct nd_struct *nd);
extern void dgrp_tty_uninit(struct nd_struct *nd);


/* from dgrp_ports_ops.c */
/* from dgrp_ports_ops.c */
extern void dgrp_register_ports_hook(struct proc_dir_entry *de);
extern const struct file_operations dgrp_ports_ops;


/* from dgrp_net_ops.c */
/* from dgrp_net_ops.c */
extern void dgrp_register_net_hook(struct proc_dir_entry *de);
extern const struct file_operations dgrp_net_ops;


/* from dgrp_dpa_ops.c */
/* from dgrp_dpa_ops.c */
extern void dgrp_register_dpa_hook(struct proc_dir_entry *de);
extern const struct file_operations dgrp_dpa_ops;
extern void dgrp_dpa_data(struct nd_struct *, int, u8 *, int);
extern void dgrp_dpa_data(struct nd_struct *, int, u8 *, int);


/* from dgrp_sysfs.c */
/* from dgrp_sysfs.c */
+1 −18
Original line number Original line Diff line number Diff line
@@ -52,7 +52,7 @@ static long dgrp_dpa_ioctl(struct file *file, unsigned int cmd,
			   unsigned long arg);
			   unsigned long arg);
static unsigned int dgrp_dpa_select(struct file *, struct poll_table_struct *);
static unsigned int dgrp_dpa_select(struct file *, struct poll_table_struct *);


static const struct file_operations dpa_ops = {
const struct file_operations dgrp_dpa_ops = {
	.owner   =  THIS_MODULE,
	.owner   =  THIS_MODULE,
	.read    =  dgrp_dpa_read,
	.read    =  dgrp_dpa_read,
	.poll    =  dgrp_dpa_select,
	.poll    =  dgrp_dpa_select,
@@ -61,12 +61,6 @@ static const struct file_operations dpa_ops = {
	.release =  dgrp_dpa_release,
	.release =  dgrp_dpa_release,
};
};


static struct inode_operations dpa_inode_ops = {
	.permission = dgrp_inode_permission
};



struct digi_node {
struct digi_node {
	uint	nd_state;		/* Node state: 1 = up, 0 = down. */
	uint	nd_state;		/* Node state: 1 = up, 0 = down. */
	uint	nd_chan_count;		/* Number of channels found */
	uint	nd_chan_count;		/* Number of channels found */
@@ -111,17 +105,6 @@ struct digi_debug {
#define DIGI_SETDEBUG      (('d'<<8) | 247)	/* set debug info */
#define DIGI_SETDEBUG      (('d'<<8) | 247)	/* set debug info */




void dgrp_register_dpa_hook(struct proc_dir_entry *de)
{
	struct nd_struct *node = de->data;

	de->proc_iops = &dpa_inode_ops;
	de->proc_fops = &dpa_ops;

	node->nd_dpa_de = de;
	spin_lock_init(&node->nd_dpa_lock);
}

/*
/*
 * dgrp_dpa_open -- open the DPA device for a particular PortServer
 * dgrp_dpa_open -- open the DPA device for a particular PortServer
 */
 */
+1 −15
Original line number Original line Diff line number Diff line
@@ -49,7 +49,7 @@ static ssize_t dgrp_mon_read(struct file *, char __user *, size_t, loff_t *);
static long dgrp_mon_ioctl(struct file *file, unsigned int cmd,
static long dgrp_mon_ioctl(struct file *file, unsigned int cmd,
			   unsigned long arg);
			   unsigned long arg);


static const struct file_operations mon_ops = {
const struct file_operations dgrp_mon_ops = {
	.owner   = THIS_MODULE,
	.owner   = THIS_MODULE,
	.read    = dgrp_mon_read,
	.read    = dgrp_mon_read,
	.unlocked_ioctl = dgrp_mon_ioctl,
	.unlocked_ioctl = dgrp_mon_ioctl,
@@ -57,20 +57,6 @@ static const struct file_operations mon_ops = {
	.release = dgrp_mon_release,
	.release = dgrp_mon_release,
};
};


static struct inode_operations mon_inode_ops = {
	.permission = dgrp_inode_permission
};

void dgrp_register_mon_hook(struct proc_dir_entry *de)
{
	struct nd_struct *node = de->data;

	de->proc_iops = &mon_inode_ops;
	de->proc_fops = &mon_ops;
	node->nd_mon_de = de;
	sema_init(&node->nd_mon_semaphore, 1);
}

/**
/**
 * dgrp_mon_open() -- open /proc/dgrp/ports device for a PortServer
 * dgrp_mon_open() -- open /proc/dgrp/ports device for a PortServer
 * @inode: struct inode *
 * @inode: struct inode *
+1 −18
Original line number Original line Diff line number Diff line
@@ -72,7 +72,7 @@ static long dgrp_net_ioctl(struct file *file, unsigned int cmd,
static unsigned int dgrp_net_select(struct file *file,
static unsigned int dgrp_net_select(struct file *file,
				    struct poll_table_struct *table);
				    struct poll_table_struct *table);


static const struct file_operations net_ops = {
const struct file_operations dgrp_net_ops = {
	.owner   =  THIS_MODULE,
	.owner   =  THIS_MODULE,
	.read    =  dgrp_net_read,
	.read    =  dgrp_net_read,
	.write   =  dgrp_net_write,
	.write   =  dgrp_net_write,
@@ -82,23 +82,6 @@ static const struct file_operations net_ops = {
	.release =  dgrp_net_release,
	.release =  dgrp_net_release,
};
};


static struct inode_operations net_inode_ops = {
	.permission = dgrp_inode_permission
};

void dgrp_register_net_hook(struct proc_dir_entry *de)
{
	struct nd_struct *node = de->data;

	de->proc_iops = &net_inode_ops;
	de->proc_fops = &net_ops;
	node->nd_net_de = de;
	sema_init(&node->nd_net_semaphore, 1);
	node->nd_state = NS_CLOSED;
	dgrp_create_node_class_sysfs_files(node);
}


/**
/**
 * dgrp_dump() -- prints memory for debugging purposes.
 * dgrp_dump() -- prints memory for debugging purposes.
 * @mem: Memory location which should be printed to the console
 * @mem: Memory location which should be printed to the console
+1 −15
Original line number Original line Diff line number Diff line
@@ -47,7 +47,7 @@
/* File operation declarations */
/* File operation declarations */
static int dgrp_ports_open(struct inode *, struct file *);
static int dgrp_ports_open(struct inode *, struct file *);


static const struct file_operations ports_ops = {
const struct file_operations dgrp_ports_ops = {
	.owner   = THIS_MODULE,
	.owner   = THIS_MODULE,
	.open    = dgrp_ports_open,
	.open    = dgrp_ports_open,
	.read    = seq_read,
	.read    = seq_read,
@@ -55,20 +55,6 @@ static const struct file_operations ports_ops = {
	.release = seq_release
	.release = seq_release
};
};


static struct inode_operations ports_inode_ops = {
	.permission = dgrp_inode_permission
};


void dgrp_register_ports_hook(struct proc_dir_entry *de)
{
	struct nd_struct *node = de->data;

	de->proc_iops = &ports_inode_ops;
	de->proc_fops = &ports_ops;
	node->nd_ports_de = de;
}

static void *dgrp_ports_seq_start(struct seq_file *seq, loff_t *pos)
static void *dgrp_ports_seq_start(struct seq_file *seq, loff_t *pos)
{
{
	if (*pos == 0)
	if (*pos == 0)
Loading