Linux驱动中completion接口…
来源:互联网 发布:吉首大学网络管理系统 编辑:程序博客网 时间:2024/06/01 07:52
DECLARE_COMPLETION(my_completion);
struct compltion my_completion;
struct completion {
#define COMPLETION_INITIALIZER(work) \
#define DECLARE_COMPLETION(work) \
static inline void init_completion(struct completion *x)
{
}
#include <linux/module.h>
#include <linux/init.h>
#include<linux/sched.h>
#include <linux/kernel.h>
#include<linux/fs.h>
#include<linux/types.h>
#include <linux/completion.h>
MODULE_LICENSE("Dual BSD/GPL");
static int complete_major = 253;//指定主设备号
DECLARE_COMPLETION(comp);
ssize_t complete_read (struct file *filp, char __user *buf,size_t count, loff_t *pos)
{
}
ssize_t complete_write (struct file *filp, const char __user*buf, size_t count,
{
}
struct file_operations complete_fops = {
};
int complete_init(void)
{
}
void complete_cleanup(void)
{
}
module_init(complete_init);
module_exit(complete_cleanup);
obj-m := complete.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
rm -f *.ko *.o *.mod.c
在linux终端中执行以下命令,编译生成模块,并进行动态加载。
#make
#mknod completion c 253 0
#insmod complete.ko
再打开三个终端,一个用于读进程:
#cat completion
一个用于写进程:
#echo >completion
另一个查看系统日志:
#tail -f /var/log/messages
#include <linux/module.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/types.h>
#include <linux/completion.h>
MODULE_LICENSE("Dual BSD/GPL");
#undef KERN_DEBUG
#define KERN_DEBUG "<1>"
static int complete_major=253;
static int reader_count = 0;
DECLARE_COMPLETION(comp);
ssize_t complete_read (struct file *filp,char __user *buf,size_tcount,loff_t *pos)
{
}
ssize_t complete_write(struct file *filp,const char __user*buf,size_t count,loff_t *pos)
{
}
struct file_operations complete_fops={
};
int complete_init(void)
{
}
void complete_exit(void)
{
}
module_init(complete_init);
module_exit(complete_exit);
这里测试步骤和上述一样,只不过需要多打开几个终端来执行多个进程同时读操作。
- Linux驱动中completion接口…
- Linux驱动中completion接口…
- Linux驱动中completion接口浅析
- Linux驱动中completion接口浅析
- Linux驱动中completion接口浅析(wait_for_complete例子,很好)
- Linux驱动中completion接口浅析(wait_for_complete例子,很好)
- Linux驱动中completion接口浅析(wait_for_complete例子,很好)
- Android内核驱动(linux内核驱动)中使用Completion
- linux completion接口
- linux completion接口
- linux设备驱动中的completion(kernel-4.7)
- linux中completion结构解释
- linux中同步例子(完成量completion…
- linux中同步例子(完成量completion…
- Linux 驱动中GPIO接口解析
- linux驱动中实现上层select接口
- linux中同步例子(完成量completion)
- linux中同步例子(完成量completion)
- IO端口和IO内存 (转载)
- Linux内核驱动模块
- Linux内核驱动模块
- linux中同步例子(完成量completion…
- linux中同步例子(完成量completion…
- Linux驱动中completion接口…
- Linux驱动中completion接口…
- 顺序和屏障 收藏
- 顺序和屏障 收藏
- LINUX内核调试相关--oops信息的…
- LINUX内核调试相关--oops信息的…
- linux内核的oops信息
- linux内核的oops信息
- 内核编译