ppuserinit.c

来自「simple MIPS EJTAG u-boot loader」· C语言 代码 · 共 80 行

C
80
字号
/*****************************************************************************//* *      ppuserinit.c  -- Parport access via Linux PPUSER device (init routines). * *      Copyright (C) 1998-1999  Thomas Sailer (sailer@ife.ee.ethz.ch) * *      This program is free software; you can redistribute it and/or modify *      it under the terms of the GNU General Public License as published by *      the Free Software Foundation; either version 2 of the License, or *      (at your option) any later version. * *      This program is distributed in the hope that it will be useful, *      but WITHOUT ANY WARRANTY; without even the implied warranty of *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *      GNU General Public License for more details. * *      You should have received a copy of the GNU General Public License *      along with this program; if not, write to the Free Software *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * *  Please note that the GPL allows you to use the driver, NOT the radio. *  In order to use the radio, you need a license from the communications *  authority of your country. * *//*****************************************************************************/#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <sys/ioctl.h>#include <errno.h>#include <string.h>#include <stdlib.h>#include "parport.h"#include "ppuser.h"/* ---------------------------------------------------------------------- */extern int pp_user_fd;extern const struct parport_ops parport_user_ops;extern void parport_user_exit(void);/* ---------------------------------------------------------------------- */int parport_init_ppuser(const char *path){	unsigned char d;	if ((pp_user_fd = open(path, O_RDWR | O_NONBLOCK)) == -1) {		lprintf(0, "Cannot open ppuser device %s (error %s)\n", path,			strerror(errno));		return -1;	}	if (ioctl(pp_user_fd, PPCLAIM, 0)) {		lprintf(0, "Cannot claim ppuser device %s (error %s)\n", path,			strerror(errno));		close(pp_user_fd);		pp_user_fd = -1;		return -1;	}	if (atexit(parport_user_exit)) {		lprintf(0, "Cannot install atexit handler (error %s)\n", strerror(errno));		ioctl(pp_user_fd, PPRELEASE, 0);		close(pp_user_fd);		pp_user_fd = -1;		return -1;	}	d = 0x30;  /* set PS/2 mode */	ioctl(pp_user_fd, PPWECONTROL, &d);	parport_ops = parport_user_ops;	return 0;}

⌨️ 快捷键说明

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