阅读:1038回复:5
请大牛们帮我解答一个问题好吗?急!我目前在编写一个字符设备的驱动程序 我想申请一段用户空间的内存页面 但是,使用get_free_page()和kmalloc() 返回的页面地址都是>0XC0000000的, __PAGE_OFFSET=0XC0000000 也就是申请了内核空间的内存页面 有什么办法能够申请到用户空间的内存页面? 还是根本就没办法? 另外,get_free_page的所有参数我都试过了 为什么还是一样都>0xc0000000 包括GFP_DMA也是如此 [编辑 - 2/27/03 by nouel] |
|
沙发#
发布于:2003-02-28 00:35
表达有问题。是不是想要指定绝对物理地址的内存?用PHY..MEM..ALLOCATE
|
|
板凳#
发布于:2003-02-28 09:03
不是,我是想在内核空间分配一个用户空间的内存页面 但是分配的结果老是分配到内核空间 内核空间的内存页面,用户是无法访问的呀 |
|
地板#
发布于:2003-02-28 10:41
我觉得你是不是可以这样:
在用户模式分配好内存,通过 deviceIoControl 传给驱动程序,然后在驱动程序中锁定内存。用完后再释放。 |
|
|
地下室#
发布于:2003-02-28 12:11
你的做法会导致系统不稳定,当然系统不会给你手段.
|
|
5楼#
发布于:2003-02-28 12:26
我把缓存地址当作ioctl的第三个参数传递 这样可以否? |
|