簡體   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