易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux内核设备模型(4)

译者:郭少悲
2009/12/02
原文:linux/Documentation/driver-model/class.txt
设备类
介绍
~~~~
一个设备类描述了一类的设备,例如语音设备或者网络设备。下面是已定义的设备类:
<Insert List of Device Classes Here>
每个设备类定义了一套语法和设备遵循的编程接口。设备驱动就是为特定总线上的
特定设备而完成的这套编程接口实现。
对于一个设备驻足在哪个总线上,设备类是不可知的。
编程接口
~~~~~~~~
设备类的数据结构如下:
typedef int (*devclass_add)(struct device *);
typedef void (*devclass_remove)(struct device *);
struct device_class {
    char            * name;
    rwlock_t        lock;
    u32            devnum;
    struct list_head    node;
    struct list_head    drivers;
    struct list_head    intf_list;
    struct driver_dir_entry    dir;
    struct driver_dir_entry    device_dir;
    struct driver_dir_entry    driver_dir;
    devclass_add        add_device;
    devclass_remove        remove_device;
};
一个典型的设备类类似如下定义:
struct device_class input_devclass = {
        .name        = "input",
        .add_device    = input_add_device,
    .remove_device    = input_remove_device,
};
每个设备类数据结构放在一个头文件里导出,因此它能够被驱动,扩展程序和接口
使用。
内核里设备类的注册和注销函数接口如下所示:
int devclass_register(struct device_class * cls);
void devclass_unregister(struct device_class * cls);
设备
~~~~
当设备绑定到驱动上,它就会被添加


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

linux动态链接库的创建与使用

使用linux动态链接库:
     在Unix上存在两种库:动态库(.so)和静态库(.a),采用动态库(共享对象)技术可以方便程序间共享,节省程序占有空间,增加程序的可扩展性和灵活性。
    操作动态库的函数在dlfcn.h文件中定义,所以要在使用动态库时include <dlfcn.h>
 &n ......

Linux必会基础命令

  1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。 2. ls 查看目录或者文件的属*,列举出任一目录下面的文件 eg: ls /usr/man ls -l a.d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示 ......

关于Linux的alsa音频问题解决

      到今日,在android平台上调试声音的方面终于有了进展,原来是需要改一个配置文件,目前只是解决了问题,具体原因以后再分析。硬件平台是6410+WM9714,软件平台是ANDROID。现在由于android系统启动时,加载音频服务不成功,处于一个死循环中,老停在登陆界面。此时打印的Logcat信息如下:
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号