繁体   English   中英

如何在Linux中对齐kmalloc()地址

[英]How to align a kmalloc() address in linux

我对内核空间有一个要求,其中我必须用64K对齐地址对设备寄存器进行编程。 目前,我正在使用kmalloc()分配内存,但不确定如何对齐此64K。 Linux是否提供这样做的API? 我需要编写自己的代码来执行相同操作吗?

尝试以下方法:

首先调用kmem_cache_create(...)函数为您的结构创建一个缓存池,该缓存池应如下所示对齐64K:

    buff_64k_cachep = kmem_cache_create("buff_64k_cache",
                                     sizeof(struct test_struct),
                                     1<<16, /* 64k alignment */
                                     flags,
                                     );

然后调用kmem_cache_alloc(...)和kmem_cache_free(...)分配和释放所需的缓冲区。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM