diff options
| author | David Woodhouse <David.Woodhouse@intel.com> | 2008-07-11 14:36:25 +0100 | 
|---|---|---|
| committer | David Woodhouse <David.Woodhouse@intel.com> | 2008-07-11 14:36:25 +0100 | 
| commit | a8931ef380c92d121ae74ecfb03b2d63f72eea6f (patch) | |
| tree | 980fb6b019e11e6cb1ece55b7faff184721a8053 /arch/sparc/kernel/led.c | |
| parent | 90574d0a4d4b73308ae54a2a57a4f3f1fa98e984 (diff) | |
| parent | e5a5816f7875207cb0a0a7032e39a4686c5e10a4 (diff) | |
| download | olio-linux-3.10-a8931ef380c92d121ae74ecfb03b2d63f72eea6f.tar.xz olio-linux-3.10-a8931ef380c92d121ae74ecfb03b2d63f72eea6f.zip  | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'arch/sparc/kernel/led.c')
| -rw-r--r-- | arch/sparc/kernel/led.c | 34 | 
1 files changed, 21 insertions, 13 deletions
diff --git a/arch/sparc/kernel/led.c b/arch/sparc/kernel/led.c index 59e9344e7a0..adaaed4ea2f 100644 --- a/arch/sparc/kernel/led.c +++ b/arch/sparc/kernel/led.c @@ -2,6 +2,7 @@  #include <linux/module.h>  #include <linux/init.h>  #include <linux/proc_fs.h> +#include <linux/seq_file.h>  #include <linux/string.h>  #include <linux/jiffies.h>  #include <linux/timer.h> @@ -45,21 +46,22 @@ static void led_blink(unsigned long timeout)  	add_timer(&led_blink_timer);  } -static int led_read_proc(char *buf, char **start, off_t offset, int count, -			 int *eof, void *data) +static int led_proc_show(struct seq_file *m, void *v)  { -	int len = 0; -  	if (get_auxio() & AUXIO_LED) -		len = sprintf(buf, "on\n"); +		seq_puts(m, "on\n");  	else -		len = sprintf(buf, "off\n"); +		seq_puts(m, "off\n"); +	return 0; +} -	return len; +static int led_proc_open(struct inode *inode, struct file *file) +{ +	return single_open(file, led_proc_show, NULL);  } -static int led_write_proc(struct file *file, const char __user *buffer, -			  unsigned long count, void *data) +static ssize_t led_proc_write(struct file *file, const char __user *buffer, +			      size_t count, loff_t *ppos)  {  	char *buf = NULL; @@ -103,6 +105,15 @@ static int led_write_proc(struct file *file, const char __user *buffer,  	return count;  } +static const struct file_operations led_proc_fops = { +	.owner		= THIS_MODULE, +	.open		= led_proc_open, +	.read		= seq_read, +	.llseek		= seq_lseek, +	.release	= single_release, +	.write		= led_proc_write, +}; +  static struct proc_dir_entry *led;  #define LED_VERSION	"0.1" @@ -112,12 +123,9 @@ static int __init led_init(void)  	init_timer(&led_blink_timer);  	led_blink_timer.function = led_blink; -	led = create_proc_entry("led", 0, NULL); +	led = proc_create("led", 0, NULL, &led_proc_fops);  	if (!led)  		return -ENOMEM; - -	led->read_proc = led_read_proc; /* reader function */ -	led->write_proc = led_write_proc; /* writer function */  	led->owner = THIS_MODULE;  	printk(KERN_INFO  |