添附里是友善的button,led的驱动源码和thmono老兄的测试代码。
这是button控制led测试代码中的一部分,想问一下,这里的read跟驱动是怎么联系在一起的,
if (ret == 0)
{
printf("Timeout.\n");
}
else if (FD_ISSET(buttons_fd, &rds))
{
int ret = read(buttons_fd, key_value, sizeof key_value)
if (ret != sizeof key_value)
{
if (errno != EAGAIN)
perror("read buttons\n");
continue;
下面是button驱动的一部分,代码中min(sizeof(key_values)是什么意思啊?找了一天也没整明白。
static int s3c24xx_BUTTONS_read(struct file *filp, char __user *buff,
size_t count, loff_t *offp)
{
unsigned long err;
if (!ev_press) {
if (filp->f_flags & O_NONBLOCK)
return -EAGAIN;
else
wait_event_interruptible(button_waitq, ev_press);
}
ev_press = 0;
err = copy_to_user(buff, (const void *)key_values, min(sizeof(key_values), count));
return err ? -EFAULT : min(sizeof(key_values), count);
}
有明白的请指导一下,谢谢