본문 바로가기

Linux/Device Driver

MOD_INC_USE_COUNT, MOD_DEC_USE_COUNT (모듈 사용 횟수 관리)

디바이스 드라이버 모듈을 사용하는 사태에서 제거를 해버리면 커다란 문제가 발생하기 때문에
커널은 디바이스 드라이버 횟수를 감시하고 사용하지 않을 때만 제거 할 수 있게 한다.

MOD_INC_USE_COUNT : 모듈 사용 횟수 증가
MOD_DEC_USE_COUNT : 모듈 사용 횟수 감소
MOD_IN_USE : 모듈 사용 횟수가 0 이 아니면 참 값을 반환

int xxx_open(struct inode* inode, struct file* filp)
{
    if(MOD_IN_USE) return -EBUSY;
    MOD_INC_USE_COUNT;
    return 0;
}

int xxx_release(struct inode* inode, struct file* filp)
{
    MOD_DEC_USE_COUNT;
    return 0;
}