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

📄 tags

📁 linux device driver examples
💻
字号:
!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/!_TAG_PROGRAM_AUTHOR	Darren Hiebert	/dhiebert@users.sourceforge.net/!_TAG_PROGRAM_NAME	Exuberant Ctags	//!_TAG_PROGRAM_URL	http://ctags.sourceforge.net	/official site/!_TAG_PROGRAM_VERSION	5.5.4	//DEBFLAGS	Makefile	/^  DEBFLAGS = -O -g -DSCULL_DEBUG # "-O" is needed to expand inlines$/;"	mDEBFLAGS	Makefile	/^  DEBFLAGS = -O2$/;"	mLDDINC	Makefile	/^	$(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)\/..\/include modules$/;"	mLIMIT	pipe.c	285;"	d	file:M	Makefile	/^	$(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)\/..\/include modules$/;"	mNUM	scull.h	101;"	dPDEBUG	scull.h	27;"	dPDEBUG	scull.h	31;"	dPDEBUG	scull.h	34;"	dPDEBUG	scull.h	37;"	dPDEBUGG	scull.h	40;"	dPDEBUGG	scull.h	41;"	dPWD	Makefile	/^PWD       := $(shell pwd)$/;"	mSCULL_IOCGQSET	scull.h	158;"	dSCULL_IOCGQUANTUM	scull.h	157;"	dSCULL_IOCHQSET	scull.h	164;"	dSCULL_IOCHQUANTUM	scull.h	163;"	dSCULL_IOCQQSET	scull.h	160;"	dSCULL_IOCQQUANTUM	scull.h	159;"	dSCULL_IOCRESET	scull.h	143;"	dSCULL_IOCSQSET	scull.h	154;"	dSCULL_IOCSQUANTUM	scull.h	153;"	dSCULL_IOCTQSET	scull.h	156;"	dSCULL_IOCTQUANTUM	scull.h	155;"	dSCULL_IOCXQSET	scull.h	162;"	dSCULL_IOCXQUANTUM	scull.h	161;"	dSCULL_IOC_MAGIC	scull.h	140;"	dSCULL_IOC_MAXNR	scull.h	175;"	dSCULL_MAJOR	scull.h	44;"	dSCULL_NR_DEVS	scull.h	48;"	dSCULL_N_ADEVS	access.c	337;"	d	file:SCULL_P_BUFFER	scull.h	76;"	dSCULL_P_IOCQSIZE	scull.h	172;"	dSCULL_P_IOCTSIZE	scull.h	171;"	dSCULL_P_NR_DEVS	scull.h	52;"	dSCULL_QSET	scull.h	69;"	dSCULL_QUANTUM	scull.h	65;"	dTYPE	scull.h	100;"	d_SCULL_H_	scull.h	19;"	daccess_key	scull.h	/^	unsigned int access_key;  \/* used by sculluid and scullpriv *\/$/;"	m	struct:scull_devasync_queue	pipe.c	/^        struct fasync_struct *async_queue; \/* asynchronous readers *\/$/;"	m	struct:scull_pipe	file:buffer	pipe.c	/^        char *buffer, *end;                \/* begin of buf, end of buf *\/$/;"	m	struct:scull_pipe	file:buffersize	pipe.c	/^        int buffersize;                    \/* used in pointer arithmetic *\/$/;"	m	struct:scull_pipe	file:cdev	pipe.c	/^        struct cdev cdev;                  \/* Char device structure *\/$/;"	m	struct:scull_pipe	file:cdev	scull.h	/^	struct cdev cdev;	  \/* Char device structure		*\/$/;"	m	struct:scull_devcreate_files	scull.init	/^function create_files () {$/;"	fdata	scull.h	/^	struct scull_qset *data;  \/* Pointer to first quantum set *\/$/;"	m	struct:scull_devdata	scull.h	/^	void **data;$/;"	m	struct:scull_qsetdevice	access.c	/^	struct scull_dev device;$/;"	m	struct:scull_listitem	file:device_specific_post_load	scull.init	/^function device_specific_post_load () {$/;"	fdevice_specific_pre_unload	scull.init	/^function device_specific_pre_unload () {$/;"	fend	pipe.c	/^        char *buffer, *end;                \/* begin of buf, end of buf *\/$/;"	m	struct:scull_pipe	file:fops	access.c	/^	struct file_operations *fops;$/;"	m	struct:scull_adev_info	file:inq	pipe.c	/^        wait_queue_head_t inq, outq;       \/* read and write queues *\/$/;"	m	struct:scull_pipe	file:key	access.c	/^	dev_t key;$/;"	m	struct:scull_listitem	file:list	access.c	/^	struct list_head list;$/;"	m	struct:scull_listitem	file:load_device	scull.init	/^function load_device () {$/;"	fm	Makefile	/^obj-m	:= scull.o$/;"	mname	access.c	/^	char *name;$/;"	m	struct:scull_adev_info	file:next	scull.h	/^	struct scull_qset *next;$/;"	m	struct:scull_qsetnreaders	pipe.c	/^        int nreaders, nwriters;            \/* number of openings for r\/w *\/$/;"	m	struct:scull_pipe	file:nwriters	pipe.c	/^        int nreaders, nwriters;            \/* number of openings for r\/w *\/$/;"	m	struct:scull_pipe	file:objs	Makefile	/^scull-objs := main.o pipe.o access.o$/;"	moutq	pipe.c	/^        wait_queue_head_t inq, outq;       \/* read and write queues *\/$/;"	m	struct:scull_pipe	file:qset	scull.h	/^	int qset;                 \/* the current array size *\/$/;"	m	struct:scull_devquantum	scull.h	/^	int quantum;              \/* the current quantum size *\/$/;"	m	struct:scull_devremove_files	scull.init	/^function remove_files () {$/;"	frp	pipe.c	/^        char *rp, *wp;                     \/* where to read, where to write *\/$/;"	m	struct:scull_pipe	file:scull_a_firstdev	access.c	/^static dev_t scull_a_firstdev;  \/* Where our range begins *\/$/;"	v	file:scull_access_cleanup	access.c	/^void scull_access_cleanup(void)$/;"	fscull_access_devs	access.c	/^} scull_access_devs[] = {$/;"	v	file:scull_access_init	access.c	/^int scull_access_init(dev_t firstdev)$/;"	fscull_access_setup	access.c	/^static void scull_access_setup (dev_t devno, struct scull_adev_info *devinfo)$/;"	f	file:scull_adev_info	access.c	/^static struct scull_adev_info {$/;"	s	file:scull_c_device	access.c	/^static struct scull_dev scull_c_device;   $/;"	v	file:scull_c_lock	access.c	/^static spinlock_t scull_c_lock = SPIN_LOCK_UNLOCKED;$/;"	v	file:scull_c_lookfor_device	access.c	/^static struct scull_dev *scull_c_lookfor_device(dev_t key)$/;"	f	file:scull_c_open	access.c	/^static int scull_c_open(struct inode *inode, struct file *filp)$/;"	f	file:scull_c_release	access.c	/^static int scull_c_release(struct inode *inode, struct file *filp)$/;"	f	file:scull_cleanup_module	main.c	/^module_exit(scull_cleanup_module);$/;"	vscull_cleanup_module	main.c	/^void scull_cleanup_module(void)$/;"	fscull_create_proc	main.c	/^static void scull_create_proc(void)$/;"	f	file:scull_dev	scull.h	/^struct scull_dev {$/;"	sscull_devices	main.c	/^struct scull_dev *scull_devices;	\/* allocated in scull_init_module *\/$/;"	vscull_follow	main.c	/^struct scull_qset *scull_follow(struct scull_dev *dev, int n)$/;"	fscull_fops	main.c	/^struct file_operations scull_fops = {$/;"	vscull_getwritespace	pipe.c	/^static int scull_getwritespace(struct scull_pipe *dev, struct file *filp)$/;"	f	file:scull_init_module	main.c	/^int scull_init_module(void)$/;"	fscull_init_module	main.c	/^module_init(scull_init_module);$/;"	vscull_ioctl	main.c	/^int scull_ioctl(struct inode *inode, struct file *filp,$/;"	fscull_listitem	access.c	/^struct scull_listitem {$/;"	s	file:scull_llseek	main.c	/^loff_t scull_llseek(struct file *filp, loff_t off, int whence)$/;"	fscull_major	main.c	/^int scull_major =   SCULL_MAJOR;$/;"	vscull_minor	main.c	/^int scull_minor =   0;$/;"	vscull_nr_devs	main.c	/^int scull_nr_devs = SCULL_NR_DEVS;	\/* number of bare scull devices *\/$/;"	vscull_open	main.c	/^int scull_open(struct inode *inode, struct file *filp)$/;"	fscull_p_buffer	pipe.c	/^int scull_p_buffer =  SCULL_P_BUFFER;	\/* buffer size *\/$/;"	vscull_p_cleanup	pipe.c	/^void scull_p_cleanup(void)$/;"	fscull_p_devices	pipe.c	/^static struct scull_pipe *scull_p_devices;$/;"	v	file:scull_p_devno	pipe.c	/^dev_t scull_p_devno;			\/* Our first device number *\/$/;"	vscull_p_fasync	pipe.c	/^static int scull_p_fasync(int fd, struct file *filp, int mode)$/;"	f	file:scull_p_init	pipe.c	/^int scull_p_init(dev_t firstdev)$/;"	fscull_p_nr_devs	pipe.c	/^static int scull_p_nr_devs = SCULL_P_NR_DEVS;	\/* number of pipe devices *\/$/;"	v	file:scull_p_open	pipe.c	/^static int scull_p_open(struct inode *inode, struct file *filp)$/;"	f	file:scull_p_poll	pipe.c	/^static unsigned int scull_p_poll(struct file *filp, poll_table *wait)$/;"	f	file:scull_p_read	pipe.c	/^static ssize_t scull_p_read (struct file *filp, char __user *buf, size_t count,$/;"	f	file:scull_p_release	pipe.c	/^static int scull_p_release(struct inode *inode, struct file *filp)$/;"	f	file:scull_p_setup_cdev	pipe.c	/^static void scull_p_setup_cdev(struct scull_pipe *dev, int index)$/;"	f	file:scull_p_write	pipe.c	/^static ssize_t scull_p_write(struct file *filp, const char __user *buf, size_t count,$/;"	f	file:scull_pipe	pipe.c	/^struct scull_pipe {$/;"	s	file:scull_pipe_fops	pipe.c	/^struct file_operations scull_pipe_fops = {$/;"	vscull_priv_fops	access.c	/^struct file_operations scull_priv_fops = {$/;"	vscull_proc_open	main.c	/^static int scull_proc_open(struct inode *inode, struct file *file)$/;"	f	file:scull_proc_ops	main.c	/^static struct file_operations scull_proc_ops = {$/;"	v	file:scull_qset	main.c	/^int scull_qset =    SCULL_QSET;$/;"	vscull_qset	scull.h	/^struct scull_qset {$/;"	sscull_quantum	main.c	/^int scull_quantum = SCULL_QUANTUM;$/;"	vscull_read	main.c	/^ssize_t scull_read(struct file *filp, char __user *buf, size_t count,$/;"	fscull_read_p_mem	pipe.c	/^static int scull_read_p_mem(char *buf, char **start, off_t offset, int count,$/;"	f	file:scull_read_procmem	main.c	/^int scull_read_procmem(char *buf, char **start, off_t offset,$/;"	fscull_release	main.c	/^int scull_release(struct inode *inode, struct file *filp)$/;"	fscull_remove_proc	main.c	/^static void scull_remove_proc(void)$/;"	f	file:scull_s_available	access.c	/^static atomic_t scull_s_available = ATOMIC_INIT(1);$/;"	v	file:scull_s_device	access.c	/^static struct scull_dev scull_s_device;$/;"	v	file:scull_s_open	access.c	/^static int scull_s_open(struct inode *inode, struct file *filp)$/;"	f	file:scull_s_release	access.c	/^static int scull_s_release(struct inode *inode, struct file *filp)$/;"	f	file:scull_seq_next	main.c	/^static void *scull_seq_next(struct seq_file *s, void *v, loff_t *pos)$/;"	f	file:scull_seq_ops	main.c	/^static struct seq_operations scull_seq_ops = {$/;"	v	file:scull_seq_show	main.c	/^static int scull_seq_show(struct seq_file *s, void *v)$/;"	f	file:scull_seq_start	main.c	/^static void *scull_seq_start(struct seq_file *s, loff_t *pos)$/;"	f	file:scull_seq_stop	main.c	/^static void scull_seq_stop(struct seq_file *s, void *v)$/;"	f	file:scull_setup_cdev	main.c	/^static void scull_setup_cdev(struct scull_dev *dev, int index)$/;"	f	file:scull_sngl_fops	access.c	/^struct file_operations scull_sngl_fops = {$/;"	vscull_trim	main.c	/^int scull_trim(struct scull_dev *dev)$/;"	fscull_u_count	access.c	/^static int scull_u_count;	\/* initialized to 0 by default *\/$/;"	v	file:scull_u_device	access.c	/^static struct scull_dev scull_u_device;$/;"	v	file:scull_u_lock	access.c	/^static spinlock_t scull_u_lock = SPIN_LOCK_UNLOCKED;$/;"	v	file:scull_u_open	access.c	/^static int scull_u_open(struct inode *inode, struct file *filp)$/;"	f	file:scull_u_owner	access.c	/^static uid_t scull_u_owner;	\/* initialized to 0 by default *\/$/;"	v	file:scull_u_release	access.c	/^static int scull_u_release(struct inode *inode, struct file *filp)$/;"	f	file:scull_user_fops	access.c	/^struct file_operations scull_user_fops = {$/;"	vscull_w_available	access.c	/^static inline int scull_w_available(void)$/;"	f	file:scull_w_count	access.c	/^static int scull_w_count;	\/* initialized to 0 by default *\/$/;"	v	file:scull_w_device	access.c	/^static struct scull_dev scull_w_device;$/;"	v	file:scull_w_lock	access.c	/^static spinlock_t scull_w_lock = SPIN_LOCK_UNLOCKED;$/;"	v	file:scull_w_open	access.c	/^static int scull_w_open(struct inode *inode, struct file *filp)$/;"	f	file:scull_w_owner	access.c	/^static uid_t scull_w_owner;	\/* initialized to 0 by default *\/$/;"	v	file:scull_w_release	access.c	/^static int scull_w_release(struct inode *inode, struct file *filp)$/;"	f	file:scull_write	main.c	/^ssize_t scull_write(struct file *filp, const char __user *buf, size_t count,$/;"	fscull_wusr_fops	access.c	/^struct file_operations scull_wusr_fops = {$/;"	vsculldev	access.c	/^	struct scull_dev *sculldev;$/;"	m	struct:scull_adev_info	file:scullp_proc_offset	pipe.c	/^static void scullp_proc_offset(char *buf, char **start, off_t *offset, int *len)$/;"	f	file:sem	pipe.c	/^        struct semaphore sem;              \/* mutual exclusion semaphore *\/$/;"	m	struct:scull_pipe	file:sem	scull.h	/^	struct semaphore sem;     \/* mutual exclusion semaphore     *\/$/;"	m	struct:scull_devsize	scull.h	/^	unsigned long size;       \/* amount of data stored here *\/$/;"	m	struct:scull_devspacefree	pipe.c	/^static int spacefree(struct scull_pipe *dev)$/;"	f	file:unload_device	scull.init	/^function unload_device () {$/;"	fwp	pipe.c	/^        char *rp, *wp;                     \/* where to read, where to write *\/$/;"	m	struct:scull_pipe	file:

⌨️ 快捷键说明

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