C语言中结构体定义时初始化有关问题

C语言中结构体定义时初始化问题原先的定义:static struct _rec_spin_lock {spinlock_tspl_lockunsigned l

C语言中结构体定义时初始化问题
原先的定义:
static struct _rec_spin_lock {
    spinlock_t  spl_lock;
    unsigned long flags;
} rec_spin_lock = {SPIN_LOCK_UNLOCKED,0};

由于内核版本的变动,SPIN_LOCK_UNLOCKED不再被定义,用新的DEFINE_SPINLOCK(x) 取代。
DEFINE_SPINLOCK(x) 的定义如下:
#define DEFINE_SPINLOCK(x)   spinlock_t x = __SPIN_LOCK_UNLOCKED(x)

请问,这种情况下,如何在定义时初始化这个结构体的值呢?
static struct _rec_spin_lock {
    spinlock_t  spl_lock;
    unsigned long flags;
} rec_spin_lock = {DEFINE_SPINLOCK,0};
这样肯定报错。
c struct
[解决办法]


static struct _rec_spin_lock {
    spinlock_t  spl_lock;
    unsigned long flags;
} rec_spin_lock = {__SPIN_LOCK_UNLOCKED(0),0};