字符设备驱动内部实现

news/2025/1/18 5:08:03/

只要文件存在,就会有唯一对应的inode号,且相应的会存在一个struct inode结构体.,在应用层通过open()打开一个设备文件,会对应产生一个inode号,通过inode号可以找到文件的inode结构体,inode结构体

 

struct inode {
    umode_t            i_mode;
    unsigned short        i_opflags;
    kuid_t            i_uid;
    kgid_t            i_gid;
    unsigned int        i_flags;

    dev_t            i_rdev;
    loff_t            i_size;
}


字符设备驱动对象结构体cdev

struct cdev {

    struct kobject kobj;

    struct module *owner;

    const struct file_operations *ops;

    struct list_head list;

    dev_t dev;

    unsigned int count;

}

在驱动对象结构体中找到操作方法结构体指针,在驱动程序中定义一个操作方法结构体变量并初始化,实现具体的打开关闭,读写等功能

struct file_operations fops={

    .open=mycdev_open,

    .unlocked_ioctl=mycdev_ioctl,

    .release=mycdev_close,

};

open函数回调到驱动中的open操作方法的路线:

open()--->sys_open()--->struct inode结构体--->struct cdev结构体--->struct file_operations结构体--->mycdev_open


http://www.ppmy.cn/news/405831.html

相关文章

【linux网络配置】多个网卡一起使用,一个网卡连内网,一个网卡连外网

一、问题背景 因为有一个工作站在内网中,但是没有办法联网(校园网账户有限)。 虽然工作站没有联网,但是我仍然可以通过局域网远程控制工作站,使其访问校园网验证页面实现上网。 当给工作站安装软件或依赖项时&#…

Python Virtualenv:隔离和管理Python项目的利器

引言: 为什么要用虚拟环境 我看到很多python的初学者同学,使用最新版的pycharm,新建一个工程时候默认就是venu虚拟环境。 然后在使用cmd里面pip安装第三方包的时候,在工程里面死活导入不成功,搞的开始怀疑人生。(你给…

百度飞浆行人多目标跟踪笔记

开源地址: PaddleDetection/configs/mot at release/2.3 PaddlePaddle/PaddleDetection GitHub 百度飞浆集成了多目标跟踪的多种算法,地址: PaddleDetection/configs/mot at release/2.3 PaddlePaddle/PaddleDetection GitHub deepsor…

调用百度AI实现人像分割(上)

百度AI申请应用,获取 APP_ID API_KEY SECRET_KEY。 开始扣图: # -*- coding:utf-8 -*- import cv2 import base64 import numpy as np import os from aip import AipBodyAnalysis import time import randomAPP_ID 25365416 API_KEY pS5cVzzw2i…

百度IM内测:提供内测版下载地址

秘密研发历时一年,无耻的百度终于承认其在开发IM,于今日开始内测。 内测版下载地址:http://down2.beareyes.com.cn/temp/BaiduHi_1.0_Beta1.exe 。此地址非网易地址。网易地址提供的下载貌似是病毒,我在那儿下了,不到…

百度人像分割API

配置API的视频教程在这里。建议看视频,视频里的很详细。 视频教程 百度Ai平台链接 这是最后的代码 代码和教程的代码一样 import requests import base64import cv2 import numpy as np import base64from PIL import Image人像分割file_path F:/630/images/test/…

计算机考研408真题百度云,2021计算机408考研计算机网络百度云+408历年真题

原标题:2021计算机408考研计算机网络百度云+408历年真题 2021计算机408考研天勤王道计算机网络百度云 2021计算机408考研天勤王道计算机网络百度云 2021计算机408考研天勤王道百度云 材料链接: https://shimo.im/docs/PCrHwQqK6tyKVWTw/ 祝咱们考研顺畅! 更多材料见大众号:…

腾讯 vs 百度

有幸在这两家公司都工作过一段时间,对这两家互联网巨头做了个对比,供大家参考 1 文化 百度提倡“简单,可依赖”,我的理解是做出来的产品要靠谱,要有很好的用户体验。以搜索起家的百度,对产品质量相当看中&…