【linux软件基础知识】- struct gendisk

news/2024/12/23 6:01:42/

在Linux内核中,struct gendisk代表通用块设备。 它是用于管理和表示块设备的基本数据结构,例如硬盘驱动器、固态驱动器和其他存储设备。

struct gendisk 包含各种字段和指针,提供与块设备相关的信息和操作。 struct gendisk 结构的一些重要字段和成员包括:

struct request_queue *queue:指向与块设备关联的请求队列的指针。 请求队列管理设备的 I/O 请求。

fmode_t exclusive_holder:指定块设备的独占持有者。 它用于防止对设备的并发访问。

struct block_device_operations *fops:指向包含块设备操作(例如读、写、打开和释放)的结构的指针。

struct block_device *private_data:指向与块设备关联的私有数据。

struct device *dev:指向表示块设备的设备结构。

struct backing_dev_info *backing_dev_info:指向备份设备信息。 它包含有关设备的特性和功能的信息。

int Major:与块设备关联的主设备号。

int first_minor:与块设备关联的第一个次要编号。

int Minors:为块设备保留的次要编号的数量。

int flags:指示块设备的各种属性和功能的标志。

struct gendisk 通常由块设备驱动程序在初始化块设备时注册。 它作为一个抽象层,为块设备提供通用接口和操作,允许内核以一致的方式与它们交互。

通过 struct gendisk,内核可以管理 I/O 操作、处理请求以及在块设备上执行各种其他操作。 不同的块设备驱动程序使用 struct gendisk 及其关联的结构和函数为各自的设备实现特定的功能和行为。


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

相关文章

python绘图(pandas)

matplotlib绘图 import pandas as pd abs_path rF:\Python\learn\python附件\pythonCsv\data.csv df pd.read_csv(abs_path, encodinggbk) # apply根据多列生成新的一个列的操作,用apply df[new_score] df.apply(lambda x : x.数学 x.语文, axis1)# 最后几行 …

Android双向认证配置过程

1(可以绕过)准备过程 为了让这个教程可以一直复用,打算直接写一个双向认证的APP作为素材。 工具: ●protecle(签名文件转换) ●keytool(java自己就有) ●openssl(apache里…

SpringBoot+Vue+Element-UI实现学生综合成绩测评系统

前言介绍 学生成绩是高校人才培养计划的重要组成部分,是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。而学生所在学院多采用半手工管理学生成绩的方式,所以有必要开发学生综合成绩测评系…

OpenVINO安装教程 Docker版

从 Docker 映像安装IntelDistribution OpenVINO™ 工具套件 本指南介绍了如何使用预构建的 Docker 镜像/手动创建镜像来安装 OpenVINO™ Runtime。 Docker Base 映像支持的主机操作系统: Linux操作系统 Windows (WSL2) macOS(仅限 CPU exectuion) 您可以使用预…

用龙梦迷你电脑福珑2.0做web服务器

用龙梦迷你电脑福珑2.0上做web服务器是可行的。已将一个网站源码放到该电脑,在局域网里可以访问网站网页。另外通过在同一局域网内的一台windows10电脑上安装花生壳软件,也可以在外网访问该内网服务器网站网页。该电脑的操作系统属于LAMP。在该电脑上安装…

MaxKB宝塔Docker安装并配置域名访问

准备 Linux系统 bt面板 默认环境LNMP随便装 服务器环境配置最好是4G, 占用硬盘存储大概1G 对于一些海外AI产品的对接需要使用香港或者海外的服务器 安装 在宝塔面板中打开SSH或者你本地使用SSH工具去链接服务器 运行docker命令 前提是放开服务器的8080端口 doc…

centos7下用logrotate给tomcat的catalina.out做日志分割

1、新建日志切割脚本 vi /etc/logrotate.d/tomcat /usr/local/tomcat/logs/catalina.out {copytruncatedailyrotate 365#compressmissingokdateext } 注:compress是开启压缩,这里注释掉了。rotate 365是保留日志365天。copytruncate是拷贝后再切割&am…

Java项目硅谷课堂后端报错处理

Java项目硅谷课堂后端报错处理总结 前言service_vod报错import javax.servlet.http.HttpServletResponse;找不到java.lang.IllegalStateException gateway报错Failed to configure a DataSourceUnsatisfiedDependencyException: Error creating bean with name gatewayConfigur…