nouel
驱动牛犊
驱动牛犊
  • 注册日期2003-02-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:969回复:5

请大牛们帮我解答一个问题好吗?急!

楼主#
更多 发布于:2003-02-27 17:14



         我目前在编写一个字符设备的驱动程序
         我想申请一段用户空间的内存页面
         但是,使用get_free_page()和kmalloc()
         返回的页面地址都是>0XC0000000的,  
         __PAGE_OFFSET=0XC0000000
         也就是申请了内核空间的内存页面
         有什么办法能够申请到用户空间的内存页面?
         还是根本就没办法?

         另外,get_free_page的所有参数我都试过了
         为什么还是一样都>0xc0000000
         包括GFP_DMA也是如此
          

[编辑 -  2/27/03 by  nouel]
X_ray
驱动中牛
驱动中牛
  • 注册日期2003-02-03
  • 最后登录2004-07-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-28 00:35
表达有问题。是不是想要指定绝对物理地址的内存?用PHY..MEM..ALLOCATE
nouel
驱动牛犊
驱动牛犊
  • 注册日期2003-02-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-28 09:03




          不是,我是想在内核空间分配一个用户空间的内存页面
          但是分配的结果老是分配到内核空间
          内核空间的内存页面,用户是无法访问的呀
yuri69
驱动小牛
驱动小牛
  • 注册日期2002-07-12
  • 最后登录2005-12-31
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-28 10:41
我觉得你是不是可以这样:

    在用户模式分配好内存,通过 deviceIoControl 传给驱动程序,然后在驱动程序中锁定内存。用完后再释放。

  
我不会停止对你的思念,就像呼吸一样,我不去特意的想,但是,只能屏息,而不可能停止
X_ray
驱动中牛
驱动中牛
  • 注册日期2003-02-03
  • 最后登录2004-07-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-28 12:11
你的做法会导致系统不稳定,当然系统不会给你手段.
nouel
驱动牛犊
驱动牛犊
  • 注册日期2003-02-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-28 12:26




           我把缓存地址当作ioctl的第三个参数传递
           这样可以否?
游客

返回顶部