Xorg 源码解析 (config)
根据主目录下meson.build的定义,将逐步解析xorg内的各种功能。
-
subdir(‘include’)
这个文件下包含许多头文件,待其他组件使用到时再来查看。 -
subdir(‘config’)
由此目录下的meson.build得知,主要由config.c,以及其他的一些.c文件(当某些options使能后将使用),同时将配置10-quirks.conf文件的安装规则
config.c中的函数:
使用的关键结构体:- OdevAttributes
OdevAttributes 结构体用于存储设备驱动程序的属性,例如设备路径、系统设备路径、DRI 风格的总线 ID、设备文件描述符、设备主设备号和设备次设备号、设备驱动程序名称等。 - 提到的InputInfo结构体
InputInfo 结构体定义了一个名为 inputInfo 的全局变量。
inputInfo.pointer 是一个核心指针,用于引用虚拟核心指针设备,它可能是 “虚拟核心指针”、“VCP”、“核心指针” 或 “输入信息指针” 中的任何一个。
inputInfo.keyboard 是核心键盘设备,它与 inputInfo.pointer 类似。
inputInfo.devices 是一个包含所有设备的链表,包括 VCP 和 VCK。
inputInfo.off_devices 是一个未初始化的设备列表,它们已被禁用。
inputInfo.numDevices 是一个表示设备总数的全局变量。
inputInfo.all_devices 是一个虚拟设备,用于 XIAllDevices 静默捕获。这个设备不是 inputInfo.devices 列表的一部分,并且在大多数情况下未设置,except for the deviceid。它存在的原因是,静默捕获需要一个有效的设备引用。
inputInfo.all_master_devices 是一个虚拟设备,用于 XIAllMasterDevices 静默捕获。这个设备不是 inputInfo.devices 列表的一部分,并且在大多数情况下未设置,except for the deviceid。它存在的原因是,静默捕获需要一个有效的设备引用。
Q&A:
- Q:meson.build中的dbus,udev,hal,以及openbsd分别是什么
A:- dbus(D-Bus)是一种消息总线系统,用于在Linux和其他Unix-like操作系统上使应用程序能够相互通信。
- udev是一个Linux内核设备管理系统,用于动态创建和删除设备节点。
- hal(Hardware Abstraction Layer)是一个在Linux和其他Unix-like操作系统上运行的抽象硬件层。它提供统一的接口来访问硬件,而无需考虑底层设备的具体实现细节。
- OpenBSD是一个类Unix操作系统,它专注于安全性和代码可审计性。在meson.build中,可能涉及到OpenBSD的特定配置和组件库的使用。
- OdevAttributes