⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seq.c

📁 Linux设备驱动的经典教材, 该电子书是第三版,并附有全部配套代码.
💻 C
字号:
/* * Simple demonstration of the seq_file interface. * * $Id: seq.c,v 1.3 2004/09/26 07:02:43 gregkh Exp $ */#include <linux/init.h>#include <linux/module.h>#include <linux/proc_fs.h>#include <linux/fs.h>#include <linux/seq_file.h>#include <linux/slab.h>MODULE_AUTHOR("Jonathan Corbet");MODULE_LICENSE("Dual BSD/GPL");/* * The sequence iterator functions.  The position as seen by the * filesystem is just the count that we return. */static void *ct_seq_start(struct seq_file *s, loff_t *pos){	loff_t *spos = kmalloc(sizeof(loff_t), GFP_KERNEL);	if (!spos)		return NULL;	*spos = *pos;	return spos;}static void *ct_seq_next(struct seq_file *s, void *v, loff_t *pos){	loff_t *spos = (loff_t *) v;	*pos = ++(*spos);	return spos;}static void ct_seq_stop(struct seq_file *s, void *v){	kfree (v);}/* * The show function. */static int ct_seq_show(struct seq_file *s, void *v){	loff_t *spos = (loff_t *) v;	seq_printf(s, "%Ld\n", *spos);	return 0;}/* * Tie them all together into a set of seq_operations. */static struct seq_operations ct_seq_ops = {	.start = ct_seq_start,	.next  = ct_seq_next,	.stop  = ct_seq_stop,	.show  = ct_seq_show};/* * Time to set up the file operations for our /proc file.  In this case, * all we need is an open function which sets up the sequence ops. */static int ct_open(struct inode *inode, struct file *file){	return seq_open(file, &ct_seq_ops);};/* * The file operations structure contains our open function along with * set of the canned seq_ ops. */static struct file_operations ct_file_ops = {	.owner   = THIS_MODULE,	.open    = ct_open,	.read    = seq_read,	.llseek  = seq_lseek,	.release = seq_release};		/* * Module setup and teardown. */static int ct_init(void){	struct proc_dir_entry *entry;	entry = create_proc_entry("sequence", 0, NULL);	if (entry)		entry->proc_fops = &ct_file_ops;	return 0;}static void ct_exit(void){	remove_proc_entry("sequence", NULL);}module_init(ct_init);module_exit(ct_exit);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -