Linux/Device Driver

write() 함수의 구현

aucd29 2013. 9. 26. 16:38
ssize_t xxx_write(struct file *filp, const char *buf, size_t count, loff_t *f_pos)
{
    if(!(데이터 처리가 가능하나?))
    {
        if(!(filp->f_flags & O_NONBLOCK))
        {
            // 블록 모드가 열렸다면 프로세스를 재운다.
        }
    }

    // 사용자 공간에 데이터를 가져온다.
    // copy_from_user, get_user

    // 하드웨어에서 데이터를 가져온다
    // inb(), outb(), readb(), writeb()를 이용
    // 또는 버퍼를 읽는다.

    return 처리된 데이터 갯수;
}