主题 : Linux device底层和上层写数据长度获取问题 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 6147
精华: 0
发帖: 91
金钱: 640 两
威望: 241 点
综合积分: 182 分
注册时间: 2009-05-21
最后登录: 2011-06-23
楼主  发表于: 2010-04-29 15:26

 Linux device底层和上层写数据长度获取问题

我现在使用mmap从上层传东西至下层,现在已经测试通过,目前还存在一个问题,就是上层写buffer的偏移,需要传递给下层,有什么好的方法吗?我目前直接ioctl把上层的偏移长度传给下层了,这是上层主动传递的,哪么我现在想底层主动,由底层来获取这个长度,听说mmap时,结构体中有一个成员变量,表示偏移,可以从这个变量得知上层的偏移长度吗?(需要做同步)

            还有一个就是上层也需要取得往spi发数的累加长度,这个直接调用就好了,但是这两个长度(一个是上层的偏移长度,一个是spi发数长度)在底层的中断函数中都要进行访问,会产生并发访问,当然,如果获取上层的长度由底层来主动,就不存在并发的可能了,用mutex,在中断函数中也容易出现问题,想请教下,这种情况下该如何防止并发访问?