linux-kernel - 从缓冲区创建结构散点列表数组
问题描述
我正在尝试从虚拟内核地址指向的缓冲区构建一个“struct scatterlist”类型的数组(我知道缓冲区的字节大小,但它可能很大)。理想情况下,我希望拥有像 init_sg_array_from_buf 这样的功能:
void my_function(void *buffer, int buffer_length)
{
struct scatterlist *sg;
int sg_count;
sg_count = init_sg_array_from_buf(buffer, buffer_length, sg);
}
scatterlist api中的哪个函数有类似的功能?目前我看到的唯一可能性是手动确定缓冲区跨越的页面数量。Windows 有一个名为“ADDRESS_AND_SIZE_TO_SPAN_PAGES”的内核宏,但我什至没能在 linux 内核中找到类似的东西。
解决方案
推荐阅读
- javascript - D3:如何只加载一半的数据
- laravel - Eloquent 的 Model::query() 是什么意思?
- html - 如何在角材料表中按行分组垫单选按钮
- python - Python在线抓取数据,但csv文件未显示正确的数据格式
- javafx - Java FX - 使用其他组合框/选择框控制一个组合框/选择框
- c - 如何在 Windows 的旧版过滤器驱动程序中阻止文件和文件夹的创建
- android - 用于集成测试的 Dagger 注入
- python-3.x - Python unittest:TestCase 类中的模拟函数
- javascript - JavaScript 无法从对象中获取元素
- unit-testing - 创建模拟函数