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 처리된 데이터 갯수;
}
{
if(!(데이터 처리가 가능하나?))
{
if(!(filp->f_flags & O_NONBLOCK))
{
// 블록 모드가 열렸다면 프로세스를 재운다.
}
}
// 사용자 공간에 데이터를 가져온다.
// copy_from_user, get_user
// 하드웨어에서 데이터를 가져온다
// inb(), outb(), readb(), writeb()를 이용
// 또는 버퍼를 읽는다.
return 처리된 데이터 갯수;
}