作者rtes (unbutu)
看板LinuxDev
標題[問題] Linux 實體記憶體
時間Tue Apr 16 01:30:04 2013
小弟有個問題想請教
假設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
1F:→ alongalone:我覺得你可能要重看mmap是用來幹嘛得.... 04/16 12:44
2F:→ alongalone:mmap應該就是用來達成你要的功能才對 04/16 12:45
3F:→ alongalone:不好意思我好像看反了.你好像是要反過來做? 04/16 13:25
5F:→ rtes:我查到的文獻說明虛擬空間切成兩半分 一部分是行程 04/16 13:28
6F:→ rtes:另一部分是Kernel 我想把一般的記憶體映射到kernel那部分 04/16 13:30
7F:→ rtes:還是說映射沒有分映射到哪 可是這樣又為何有mmap 和ioremap 04/16 13:31
8F:→ rtes:先去閱讀您提供的資料 謝謝 04/16 13:33
9F:→ alongalone:ioremap是把phyical轉成virtual address. 04/16 23:54
10F:→ alongalone:可是你用alloca()的方式一定是取得virtual; 沒啥衝突 04/16 23:55