关于自旋锁
spinlock_t mr_lock = SPIN_LOCK_UNLOCKED; //leo
unsigned long flags;
spin_lock_irqsave(&mr_lock, flags);
g_dwTransactionIdToCancel = CancelData.TransactionId;
spin_unlock_irqrestore(&mr_lock, flags);
我的程序头文件也加上了#include <linux/spinlock.h>
为什么编译的时候提示说error: `spinlock_t' undeclared (first use in this function)
是什么回事啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
在程序开头加入:
#define _XOPEN_SOURCE 500
确定你的内核版本
uname -a
确定你使用的是LinuxThreads还是NPTL线程模型
getconf GNU_LIBPTHREAD_VERSION
如果是nptl,看你的/usr/include/pthread.h里面有没有定义pthread_spin_lock,或者是用
nm /usr/lib/libpthread.a | grep pthread_spin
pthread_spin_lock和pthread_spin_unlock应当是你要的.
至于
复制代码
这纯粹是在恶搞,ring3级的代码怎么能直接访问ring0级的数据.
${OBJS}:%.o:%.c
gcc ${CFLAGS} -D_GNU_SOURCE -c -g $<
我这样加了,还是不行,郁闷
我也遇到过,应该是pthread的版本问题。估计你的系统是RH9,编译时加上-D_GNU_SOURCE
应该是属于软件开发
请问你是在内核开发还是软件开发