看板 LinuxDev 關於我們 聯絡資訊
小弟有個問題想請教 假設Linux的user層有一支程式Task A想透過共享記憶體溝通 首先申請一塊free memory,接著就會將此free memory透過系統提供之mmap映射 到Task A的虛擬空間。 另外如果想利用驅動程式存取memory map io Register,通常會透過ioremap將Register的 實體空間映射到kernel的虛擬空間。 我想請教的問題是有沒有函式可以讓一般的記憶體(類似剛才提到的free memory)映射到 kernel層的虛擬空間。 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.244.206
alongalone:我覺得你可能要重看mmap是用來幹嘛得.... 04/16 12:44
alongalone:mmap應該就是用來達成你要的功能才對 04/16 12:45
alongalone:不好意思我好像看反了.你好像是要反過來做? 04/16 13:25
alongalone:http://tinyurl.com/d2ob3h9 不知道算不算你要的 04/16 13:26
rtes:我查到的文獻說明虛擬空間切成兩半分 一部分是行程 04/16 13:28
rtes:另一部分是Kernel 我想把一般的記憶體映射到kernel那部分 04/16 13:30
rtes:還是說映射沒有分映射到哪 可是這樣又為何有mmap 和ioremap 04/16 13:31
rtes:先去閱讀您提供的資料 謝謝 04/16 13:33
alongalone:ioremap是把phyical轉成virtual address. 04/16 23:54
alongalone:可是你用alloca()的方式一定是取得virtual; 沒啥衝突 04/16 23:55