(第2课第1.1.7节)myuvc(1th)
来源:互联网 发布:知乎推广技巧 编辑:程序博客网 时间:2024/05/16 04:31
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/videodev2.h>
#include <linux/vmalloc.h>
#include <linux/wait.h>
#include <asm/atomic.h>
#include <asm/unaligned.h>
#include <media/v4l2-common.h>
static int myuvc_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
static int cnt = 0;
printk("myuvc_probe : cnt = %d\n", cnt++);
return 0;
}
static void myuvc_disconnect(struct usb_interface *intf)
{
static int cnt = 0;
printk("myuvc_disconnect : cnt = %d\n", cnt++);
}
static struct usb_device_id myuvc_ids[] = {
/* Generic USB Video Class */
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) }, /* VideoControl Interface */
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 2, 0) }, /* VideoStreaming Interface */
{}
};
/* 1. 分配usb_driver */
/* 2. 设置 */
static struct usb_driver myuvc_driver = {
.name = "myuvc",
.probe = myuvc_probe,
.disconnect = myuvc_disconnect,
.id_table = myuvc_ids,
};
static int myuvc_init(void)
{
/* 3. 注册 */
usb_register(&myuvc_driver);
return 0;
}
static void myuvc_exit(void)
{
usb_deregister(&myuvc_driver);
}
module_init(myuvc_init);
module_exit(myuvc_exit);
MODULE_LICENSE("GPL");
#include <linux/list.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/videodev2.h>
#include <linux/vmalloc.h>
#include <linux/wait.h>
#include <asm/atomic.h>
#include <asm/unaligned.h>
#include <media/v4l2-common.h>
static int myuvc_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
static int cnt = 0;
printk("myuvc_probe : cnt = %d\n", cnt++);
return 0;
}
static void myuvc_disconnect(struct usb_interface *intf)
{
static int cnt = 0;
printk("myuvc_disconnect : cnt = %d\n", cnt++);
}
static struct usb_device_id myuvc_ids[] = {
/* Generic USB Video Class */
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) }, /* VideoControl Interface */
{ USB_INTERFACE_INFO(USB_CLASS_VIDEO, 2, 0) }, /* VideoStreaming Interface */
{}
};
/* 1. 分配usb_driver */
/* 2. 设置 */
static struct usb_driver myuvc_driver = {
.name = "myuvc",
.probe = myuvc_probe,
.disconnect = myuvc_disconnect,
.id_table = myuvc_ids,
};
static int myuvc_init(void)
{
/* 3. 注册 */
usb_register(&myuvc_driver);
return 0;
}
static void myuvc_exit(void)
{
usb_deregister(&myuvc_driver);
}
module_init(myuvc_init);
module_exit(myuvc_exit);
MODULE_LICENSE("GPL");
1 0
- (第2课第1.1.7节)myuvc(1th)
- (第2课第1.1.7节)myuvc(2th)
- (第2课第1.1.7节)myuvc(3th)
- (第2课第1.1.7节)myuvc(4th)
- (第2课第1.1.7节)myuvc(5th)
- Primer C 4th(第7章习题)
- Primer C 4th(第2章习题)
- C++ Primer 5th edition 第1章问题记录
- \第2课第1.1.4节文档和图片
- 第1章第2节练习题7 递减输出
- 第2章第1节 栈
- 第14th广东省赛总结
- 微软2014实习生招聘在线测试第2题——K-th string
- VTK User’s Guide -11th edition 第02章-VTK安装(2)
- VTK User’s Guide -11th edition 第03章-VTK系统概述(2)
- VTK User’s Guide -11th edition 第02章-VTK安装(1)
- VTK User’s Guide -11th edition 第03章-VTK系统概述(1)
- 第1章第2节练习题6 反向输出
- java对象序列化
- Nginx和PHP-FPM通信使用unix socket及tcp socket配置
- linux 下 nodejs 二进制安装
- App Store 审核指南(中文版)
- 一个快速获得数据库连接字符串的方法UDL
- (第2课第1.1.7节)myuvc(1th)
- 顺序表A和B的合并与排序
- iOS开发之UITableView添加数据源的两种方式
- 结对编程小感悟
- (第2课第1.1.7节)myuvc(2th)
- 树_二叉排序树
- 记录——《C Primer Plus (第五版)》第七章编程练习第十一题
- TFTP简单文件传送协议
- Ofbiz使用原生Sql