| [ LinuxFreeBSD ] in KIDS 글 쓴 이(By): bullard (불라드) 날 짜 (Date): 2000년 6월 6일 화요일 오후 10시 32분 39초 제 목(Title): [Q] spinlock.h 커널 코드를 짜고 있습니다. Lock을 써야 할 것 같아서, <asm/spinlock.h> 파일을 살펴 보고 있습니다. 그런데, 다음과 같은 도저히 이해할 수 없는 코드가 있더군요. #define spin_lock_init(lock) do { } while(0) #define spin_lock(lock) (void)(lock) /* Not "unused variable". */ #define spin_trylock(lock) (1) #define spin_unlock_wait(lock) do { } while(0) #define spin_unlock(lock) do { } while(0) #define spin_lock_irq(lock) cli() #define spin_unlock_irq(lock) sti() #define spin_lock_irqsave(lock, flags) \ do { save_flags(flags); cli(); } while (0) #define spin_unlock_irqrestore(lock, flags) \ restore_flags(flags) 위에서 lock 파라미터는 spinlock_t 타입의 lock 변수에 대한 포인터입니다. 이게 도대체 뭘 의미하는 것인지요? 참고로 커널 버젼은 2.2.14 입니다. 감사합니다. |