004_linux驱动之_class_create创建一个设备类

(一)解析:class_create函数和class_destroy函数

创建一个类         和        删除一个类。

(二)class_create函数原型

struct class *class_create(struct module *owner, const char *name);

1. 查看函数注释:

/ * *

创建一个struct类结构

* @owner:指向“拥有”这个struct类的模块的指针

* @name:指向该类名称的字符串的指针。

*

*这是用来创建一个结构类指针,然后可以使用

*调用class_device_create()。

*

*注意,这里创建的指针将在完成时被销毁

*调用class_destroy()。

* /

2. 使用示例:


从使用示例中和解析中我们看出,使用class_create函数第一个变量为.owner,第二个变量为这个类的名字

.owner为什么使用THIS_MODULE呢,这个我们看到003_linux驱动之_file_operations函数 里面我们使用举例里面我们的.owner是THIS_MODULE

这个可以不用管它,先这样设置。

3. 说白了,这个函数就是创建一个类,还需在这个类下面创建设备,不然的话这个类没什么用

(三)从上面的注解中我们可知道,要删除这个类我们需要调用class_destroy这个函数

函数原型:void class_destroy(struct class *cls);

我们看一下class_destroy函数的注解

/ * *

* class_destroy -销毁一个struct类结构

* @cls:指向将要被销毁的struct类的指针

*

*注意,要销毁的指针必须是通过调用创建的

* class_create()。

* /

使用示例:

(四)在这个类下面创建一个设备

原文地址:https://www.cnblogs.com/luxiaoguogege/p/9690213.html

时间: 2024-08-14 21:37:10

004_linux驱动之_class_create创建一个设备类的相关文章

创建一个羊类,使用static实现数羊,记录一共创建了几只羊

public class Test { public static void main(String[] args) { // TODO Auto-generated method stub //创建一个羊类,使用static实现数羊,记录一共创建了几只羊. Sheep.getCount(); Sheep s1=new Sheep("喜羊羊"); Sheep.getCount(); Sheep s2=new Sheep("懒羊羊"); Sheep.getCount(

创建一个三角形类并且通过成员函数计算三角形的周长和面积《1》

首先定义一个三角形类 class Triangle//三角形类 { public: double getA(void);//得到a的值 double getB(void);//得到b的值 double getC(void);//得到c的值 void setA(double x);//设置a的值 void setB(double y);//设置b的值 void setC(double z);//设置c的值 bool isTriangle(void);//取三边的值 double Perimeter

创建一个三角形类并且使用成员函数计算三角形的周长和面积《2》

首先创建一个三角形类 class Triangle//三角形类 { public: void Setabc(double x, double y, double z);//置三边的值,注意要能成三角形 void Getabc(double *x, double *y, double *z);//取三边的值 double Perimeter(void);//计算三角形的周长 double Area(void);//计算并返回三角形的面积 private: double a, b, c; //三边为

创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。要求:为类添加属性

//在.h文件里 {     NSInteger _numerator;     //分子     NSInteger _denominator;   //分母     }   //属性 @property (nonatomic) NSInteger numerator; @property (nonatomic) NSInteger denominator; //初始化   - (id)initwithNumerator:(NSInteger)numerator denominator:(NS

在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在"D:\java"文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 myPackage 包中创建一个YMD类,该类具有计算今年的年份.可以输出一个带有年月日的字符串的功能.设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名.年龄.出生日期.程序使用YMD的方法来计算年龄. 主要考包的运用 用到java.util.Calendar

创建一个银行类

# -*- conding:utf-8 -*- ''' 类: 创建一个银行类 属性: 一个属于银行的类属性 用来存储所有银行的开户信息,包含卡号.密码.用户名.余额 (外界不能随意访问和修改.开户时要进行卡号验证,查看卡号是否已经存在) 每个对象拥有 卡号,密码,用户名,余额 (外界不能随意访问和修改.) 方法:银行类拥有 查看本银行的开户总数 查看所有用户的个人信息(包含卡号,密码,用户名,余额) 每个对象拥有 实例化对象的时候传入相关参数 初始化对象及类属性 取钱(需要卡号和密码验证) 通过

创建一个圆类Circle的对象,分别设置圆的半径计算并分别显示圆半径、圆面积、圆周长。

编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型): // 存放圆的半径: ②两个构造方法 Circle( ) // 将半径设为0 Circle(double r ) //创建Circle对象时将半径初始化为r ③ 三个成员方法 double getArea( ) //计算圆的面积 double getPerimeter( ) //计算圆的周长 void show( ) //将圆的半径.周长.面积输出到屏幕 编写应用程序,创建类的对象,分别设置圆的半径计算并分别显

[安卓]创建一个视图类

跟其他任何设计良好的类一样,我们自己定义的视图类也封装了系列功能接口,有效地使用CPU和内存等等.要成为一个设计优良的类,我们的视图类还需要具有: 遵从安卓标准: 通过安卓XML布局提供定制的风格属性: 发送可达事件: 与广泛的安卓平台兼容. 安卓框架提供一系列基本类型和XML标签来帮助开发者创建满足以上要求的视图类.下面将详细介绍. 1.子类化视图类: 安卓中所有的视图类都派生于view类.我们的视图类可以直接派生于view类,也可以派生于高层类,譬如Button类.为了让Android De

【BigData】Java基础_创建一个订单类

需求描述 定义一个类,描述订单信息订单id订单所属用户(用户对象)订单所包含的商品(不定数量个商品对象)订单总金额订单应付金额:    总金额500~1000,打折85折    总金额1000~1500,打折80折    总金额1500~2000,打折70折    总金额超过2000,打折65折         在此基础上,还要看用户的vip等级    用户vip等级为:一般会员,则折上折:95    用户vip等级为:中级会员,则折上折:90    用户vip等级为:高级会员,则折上折:80