⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ll

📁 LINUX 下的intel 810 TO TV的源代码,结合芯片CHRONTEL使用
💻
字号:
static int tv_ioctl(struct inode *inode, struct file *file,		    unsigned int cmd, unsigned long arg){	unsigned int minor = MINOR(inode->i_rdev);	int status;	int retval = 0;#ifdef LP_DEBUG	printk(KERN_DEBUG "lp%d ioctl, cmd: 0x%x, arg: 0x%lx\n", minor, cmd, arg);#endif	if (minor >= LP_NO)		return -ENODEV;	if ((LP_F(minor) & LP_EXIST) == 0)		return -ENODEV;	switch ( cmd ) {		struct timeval par_timeout;		long to_jiffies;		case LPTIME:			LP_TIME(minor) = arg * HZ/100;			break;		case LPCHAR:			LP_CHAR(minor) = arg;			break;		case LPABORT:			if (arg)				LP_F(minor) |= LP_ABORT;			else				LP_F(minor) &= ~LP_ABORT;			break;		case LPABORTOPEN:			if (arg)				LP_F(minor) |= LP_ABORTOPEN;			else				LP_F(minor) &= ~LP_ABORTOPEN;			break;		case LPCAREFUL:			if (arg)				LP_F(minor) |= LP_CAREFUL;			else				LP_F(minor) &= ~LP_CAREFUL;			break;		case LPWAIT:			LP_WAIT(minor) = arg;			break;		case LPSETIRQ: 			return -EINVAL;			break;		case LPGETIRQ:			if (copy_to_user((int *) arg, &LP_IRQ(minor),					sizeof(int)))				return -EFAULT;			break;		case LPGETSTATUS:			lp_claim_parport_or_block (&lp_table[minor]);			status = r_str(minor);			lp_release_parport (&lp_table[minor]);			if (copy_to_user((int *) arg, &status, sizeof(int)))				return -EFAULT;			break;		case LPRESET:			lp_reset(minor);			break;#ifdef LP_STATS		case LPGETSTATS:			if (copy_to_user((int *) arg, &LP_STAT(minor),					sizeof(struct lp_stats)))				return -EFAULT;			if (capable(CAP_SYS_ADMIN))				memset(&LP_STAT(minor), 0,						sizeof(struct lp_stats));			break;#endif 		case LPGETFLAGS: 			status = LP_F(minor);			if (copy_to_user((int *) arg, &status, sizeof(int)))				return -EFAULT;			break;		case LPSETTIMEOUT:			if (copy_from_user (&par_timeout,					    (struct timeval *) arg,					    sizeof (struct timeval))) {				return -EFAULT;			}			/* Convert to jiffies, place in lp_table */			if ((par_timeout.tv_sec < 0) ||			    (par_timeout.tv_usec < 0)) {				return -EINVAL;			}			to_jiffies = ROUND_UP(par_timeout.tv_usec, 1000000/HZ);			to_jiffies += par_timeout.tv_sec * (long) HZ;			if (to_jiffies <= 0) {				return -EINVAL;			}			lp_table[minor].timeout = to_jiffies;			break;		default:			retval = -EINVAL;	}	return retval;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -