一. rwlock_t
一直都以这种方式初始化读写锁
rwlock_t my_rwlock = RW_LOCK_UNLOCKED
但是在内核 2.6.30 上不行了 ....
error: ‘RW_LOCK_UNLOCKED’ undeclared (first use in this function)
error: (Each undeclared identifier is reported only once
error: for each function it appears in.)
貌似是高版本内核不支持这种初始化方式了
需要:
rwlock_t mylock;
rwlock_init(&mylock);
或者直接定义并初始化:
DEFINE_RWLOCK(x)
二. semaphore
另外,高版本内核信号量的初始化方式也发生了变化
原来的初始化 DECLARE_MUTEX(receive_sem);
会出现:
warning: data definition has no type or storage class
warning: type defaults to ‘int’ in declaration of ‘DECLARE_MUTEX’
warning: parameter names (without types) in function d