lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ECB3782BB8F03341905DD923270296115D5AC2@mhqms01.moxa.com>
Date:	Mon, 25 Apr 2011 10:35:52 +0800
From:	Jimmy Chen (陳永達) <jimmy.chen@...a.com>
To:	Jimmy Chen (陳永達) <jimmy.chen@...a.com>,
	<linux-kernel@...r.kernel.org>
Cc:	<gregkh@...e.de>
Subject: RE: [PATCH 2/2] misc: add real function open/read/write/ioctl/close for moxa_serial_io driver

From: Jimmy Chen <jimmy.chen@...a.com>

Add real function and GPL license.

Signed-off-by: Jimmy Chen <jimmy.chen@...a.com>
---
diff --git a/drivers/misc/moxa_serial_io.c b/drivers/misc/moxa_serial_io.c
index df454c8..e69de29 100644
--- a/drivers/misc/moxa_serial_io.c
+++ b/drivers/misc/moxa_serial_io.c
@@ -1,609 +0,0 @@
-/*
- * 		    GNU GENERAL PUBLIC LICENSE
- * 		       Version 2, June 1991
- * 
- *  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- *                        59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *  Everyone is permitted to copy and distribute verbatim copies
- *  of this license document, but changing it is not allowed.
- * 
- * 			    Preamble
- * 
- *   The licenses for most software are designed to take away your
- * freedom to share and change it.  By contrast, the GNU General Public
- * License is intended to guarantee your freedom to share and change free
- * software--to make sure the software is free for all its users.  This
- * General Public License applies to most of the Free Software
- * Foundation's software and to any other program whose authors commit to
- * using it.  (Some other Free Software Foundation software is covered by
- * the GNU Library General Public License instead.)  You can apply it to
- * your programs, too.
- * 
- *   When we speak of free software, we are referring to freedom, not
- * price.  Our General Public Licenses are designed to make sure that you
- * have the freedom to distribute copies of free software (and charge for
- * this service if you wish), that you receive source code or can get it
- * if you want it, that you can change the software or use pieces of it
- * in new free programs; and that you know you can do these things.
- * 
- *   To protect your rights, we need to make restrictions that forbid
- * anyone to deny you these rights or to ask you to surrender the rights.
- * These restrictions translate to certain responsibilities for you if you
- * distribute copies of the software, or if you modify it.
- * 
- *   For example, if you distribute copies of such a program, whether
- * gratis or for a fee, you must give the recipients all the rights that
- * you have.  You must make sure that they, too, receive or can get the
- * source code.  And you must show them these terms so they know their
- * rights.
- * 
- *   We protect your rights with two steps: (1) copyright the software, and
- * (2) offer you this license which gives you legal permission to copy,
- * distribute and/or modify the software.
- * 
- *   Also, for each author's protection and ours, we want to make certain
- * that everyone understands that there is no warranty for this free
- * software.  If the software is modified by someone else and passed on, we
- * want its recipients to know that what they have is not the original, so
- * that any problems introduced by others will not reflect on the original
- * authors' reputations.
- * 
- *   Finally, any free program is threatened constantly by software
- * patents.  We wish to avoid the danger that redistributors of a free
- * program will individually obtain patent licenses, in effect making the
- * program proprietary.  To prevent this, we have made it clear that any
- * patent must be licensed for everyone's free use or not licensed at all.
- * 
- *   The precise terms and conditions for copying, distribution and
- * modification follow.
- * 

- * 		    GNU GENERAL PUBLIC LICENSE
- *    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- * 
- *   0. This License applies to any program or other work which contains
- * a notice placed by the copyright holder saying it may be distributed
- * under the terms of this General Public License.  The "Program", below,
- * refers to any such program or work, and a "work based on the Program"
- * means either the Program or any derivative work under copyright law:
- * that is to say, a work containing the Program or a portion of it,
- * either verbatim or with modifications and/or translated into another
- * language.  (Hereinafter, translation is included without limitation in
- * the term "modification".)  Each licensee is addressed as "you".
- * 
- * Activities other than copying, distribution and modification are not
- * covered by this License; they are outside its scope.  The act of
- * running the Program is not restricted, and the output from the Program
- * is covered only if its contents constitute a work based on the
- * Program (independent of having been made by running the Program).
- * Whether that is true depends on what the Program does.
- * 
- *   1. You may copy and distribute verbatim copies of the Program's
- * source code as you receive it, in any medium, provided that you
- * conspicuously and appropriately publish on each copy an appropriate
- * copyright notice and disclaimer of warranty; keep intact all the
- * notices that refer to this License and to the absence of any warranty;
- * and give any other recipients of the Program a copy of this License
- * along with the Program.
- * 
- * You may charge a fee for the physical act of transferring a copy, and
- * you may at your option offer warranty protection in exchange for a fee.
- * 
- *   2. You may modify your copy or copies of the Program or any portion
- * of it, thus forming a work based on the Program, and copy and
- * distribute such modifications or work under the terms of Section 1
- * above, provided that you also meet all of these conditions:
- * 
- *     a) You must cause the modified files to carry prominent notices
- *     stating that you changed the files and the date of any change.
- * 
- *     b) You must cause any work that you distribute or publish, that in
- *     whole or in part contains or is derived from the Program or any
- *     part thereof, to be licensed as a whole at no charge to all third
- *     parties under the terms of this License.
- * 
- *     c) If the modified program normally reads commands interactively
- *     when run, you must cause it, when started running for such
- *     interactive use in the most ordinary way, to print or display an
- *     announcement including an appropriate copyright notice and a
- *     notice that there is no warranty (or else, saying that you provide
- *     a warranty) and that users may redistribute the program under
- *     these conditions, and telling the user how to view a copy of this
- *     License.  (Exception: if the Program itself is interactive but
- *     does not normally print such an announcement, your work based on
- *     the Program is not required to print an announcement.)
- * 

- * These requirements apply to the modified work as a whole.  If
- * identifiable sections of that work are not derived from the Program,
- * and can be reasonably considered independent and separate works in
- * themselves, then this License, and its terms, do not apply to those
- * sections when you distribute them as separate works.  But when you
- * distribute the same sections as part of a whole which is a work based
- * on the Program, the distribution of the whole must be on the terms of
- * this License, whose permissions for other licensees extend to the
- * entire whole, and thus to each and every part regardless of who wrote it.
- * 
- * Thus, it is not the intent of this section to claim rights or contest
- * your rights to work written entirely by you; rather, the intent is to
- * exercise the right to control the distribution of derivative or
- * collective works based on the Program.
- * 
- * In addition, mere aggregation of another work not based on the Program
- * with the Program (or with a work based on the Program) on a volume of
- * a storage or distribution medium does not bring the other work under
- * the scope of this License.
- * 
- *   3. You may copy and distribute the Program (or a work based on it,
- * under Section 2) in object code or executable form under the terms of
- * Sections 1 and 2 above provided that you also do one of the following:
- * 
- *     a) Accompany it with the complete corresponding machine-readable
- *     source code, which must be distributed under the terms of Sections
- *     1 and 2 above on a medium customarily used for software interchange; or,
- * 
- *     b) Accompany it with a written offer, valid for at least three
- *     years, to give any third party, for a charge no more than your
- *     cost of physically performing source distribution, a complete
- *     machine-readable copy of the corresponding source code, to be
- *     distributed under the terms of Sections 1 and 2 above on a medium
- *     customarily used for software interchange; or,
- * 
- *     c) Accompany it with the information you received as to the offer
- *     to distribute corresponding source code.  (This alternative is
- *     allowed only for noncommercial distribution and only if you
- *     received the program in object code or executable form with such
- *     an offer, in accord with Subsection b above.)
- * 
- * The source code for a work means the preferred form of the work for
- * making modifications to it.  For an executable work, complete source
- * code means all the source code for all modules it contains, plus any
- * associated interface definition files, plus the scripts used to
- * control compilation and installation of the executable.  However, as a
- * special exception, the source code distributed need not include
- * anything that is normally distributed (in either source or binary
- * form) with the major components (compiler, kernel, and so on) of the
- * operating system on which the executable runs, unless that component
- * itself accompanies the executable.
- * 
- * If distribution of executable or object code is made by offering
- * access to copy from a designated place, then offering equivalent
- * access to copy the source code from the same place counts as
- * distribution of the source code, even though third parties are not
- * compelled to copy the source along with the object code.
- * 

- *   4. You may not copy, modify, sublicense, or distribute the Program
- * except as expressly provided under this License.  Any attempt
- * otherwise to copy, modify, sublicense or distribute the Program is
- * void, and will automatically terminate your rights under this License.
- * However, parties who have received copies, or rights, from you under
- * this License will not have their licenses terminated so long as such
- * parties remain in full compliance.
- * 
- *   5. You are not required to accept this License, since you have not
- * signed it.  However, nothing else grants you permission to modify or
- * distribute the Program or its derivative works.  These actions are
- * prohibited by law if you do not accept this License.  Therefore, by
- * modifying or distributing the Program (or any work based on the
- * Program), you indicate your acceptance of this License to do so, and
- * all its terms and conditions for copying, distributing or modifying
- * the Program or works based on it.
- * 
- *   6. Each time you redistribute the Program (or any work based on the
- * Program), the recipient automatically receives a license from the
- * original licensor to copy, distribute or modify the Program subject to
- * these terms and conditions.  You may not impose any further
- * restrictions on the recipients' exercise of the rights granted herein.
- * You are not responsible for enforcing compliance by third parties to
- * this License.
- * 
- *   7. If, as a consequence of a court judgment or allegation of patent
- * infringement or for any other reason (not limited to patent issues),
- * conditions are imposed on you (whether by court order, agreement or
- * otherwise) that contradict the conditions of this License, they do not
- * excuse you from the conditions of this License.  If you cannot
- * distribute so as to satisfy simultaneously your obligations under this
- * License and any other pertinent obligations, then as a consequence you
- * may not distribute the Program at all.  For example, if a patent
- * license would not permit royalty-free redistribution of the Program by
- * all those who receive copies directly or indirectly through you, then
- * the only way you could satisfy both it and this License would be to
- * refrain entirely from distribution of the Program.
- * 
- * If any portion of this section is held invalid or unenforceable under
- * any particular circumstance, the balance of the section is intended to
- * apply and the section as a whole is intended to apply in other
- * circumstances.
- * 
- * It is not the purpose of this section to induce you to infringe any
- * patents or other property right claims or to contest validity of any
- * such claims; this section has the sole purpose of protecting the
- * integrity of the free software distribution system, which is
- * implemented by public license practices.  Many people have made
- * generous contributions to the wide range of software distributed
- * through that system in reliance on consistent application of that
- * system; it is up to the author/donor to decide if he or she is willing
- * to distribute software through any other system and a licensee cannot
- * impose that choice.
- * 
- * This section is intended to make thoroughly clear what is believed to
- * be a consequence of the rest of this License.
- * 

- *   8. If the distribution and/or use of the Program is restricted in
- * certain countries either by patents or by copyrighted interfaces, the
- * original copyright holder who places the Program under this License
- * may add an explicit geographical distribution limitation excluding
- * those countries, so that distribution is permitted only in or among
- * countries not thus excluded.  In such case, this License incorporates
- * the limitation as if written in the body of this License.
- * 
- *   9. The Free Software Foundation may publish revised and/or new versions
- * of the General Public License from time to time.  Such new versions will
- * be similar in spirit to the present version, but may differ in detail to
- * address new problems or concerns.
- * 
- * Each version is given a distinguishing version number.  If the Program
- * specifies a version number of this License which applies to it and "any
- * later version", you have the option of following the terms and conditions
- * either of that version or of any later version published by the Free
- * Software Foundation.  If the Program does not specify a version number of
- * this License, you may choose any version ever published by the Free Software
- * Foundation.
- * 
- *   10. If you wish to incorporate parts of the Program into other free
- * programs whose distribution conditions are different, write to the author
- * to ask for permission.  For software which is copyrighted by the Free
- * Software Foundation, write to the Free Software Foundation; we sometimes
- * make exceptions for this.  Our decision will be guided by the two goals
- * of preserving the free status of all derivatives of our free software and
- * of promoting the sharing and reuse of software generally.
- * 
- * 			    NO WARRANTY
- * 
- *   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
- * FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
- * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
- * PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
- * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
- * TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
- * PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
- * REPAIR OR CORRECTION.
- * 
- *   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
- * WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
- * REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
- * INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
- * OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
- * TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
- * YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
- * PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- * 
- * 		     END OF TERMS AND CONDITIONS
- * 

- * 	    How to Apply These Terms to Your New Programs
- * 
- *   If you develop a new program, and you want it to be of the greatest
- * possible use to the public, the best way to achieve this is to make it
- * free software which everyone can redistribute and change under these terms.
- * 
- *   To do so, attach the following notices to the program.  It is safest
- * to attach them to the start of each source file to most effectively
- * convey the exclusion of warranty; and each file should have at least
- * the "copyright" line and a pointer to where the full notice is found.
- * 
- *     <one line to give the program's name and a brief idea of what it does.>
- *     Copyright (C) 19yy  <name of author>
- * 
- *     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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- * 
- * 
- * Also add information on how to contact you by electronic and paper mail.
- * 
- * If the program is interactive, make it output a short notice like this
- * when it starts in an interactive mode:
- * 
- *     Gnomovision version 69, Copyright (C) 19yy name of author
- *     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- *     This is free software, and you are welcome to redistribute it
- *     under certain conditions; type `show c' for details.
- * 
- * The hypothetical commands `show w' and `show c' should show the appropriate
- * parts of the General Public License.  Of course, the commands you use may
- * be called something other than `show w' and `show c'; they could even be
- * mouse-clicks or menu items--whatever suits your program.
- * 
- * You should also get your employer (if you work as a programmer) or your
- * school, if any, to sign a "copyright disclaimer" for the program, if
- * necessary.  Here is a sample; alter the names:
- * 
- *   Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- *   `Gnomovision' (which makes passes at compilers) written by James Hacker.
- * 
- *   <signature of Ty Coon>, 1 April 1989
- *   Ty Coon, President of Vice
- * 
- * This General Public License does not permit incorporating your program into
- * proprietary programs.  If your program is a subroutine library, you may
- * consider it more useful to permit linking proprietary applications with the
- * library.  If this is what you want to do, use the GNU Library General
- * Public License instead of this License.
- */
-
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/errno.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/miscdevice.h>
-#include <linux/interrupt.h>
-#include <linux/sched.h>
-#include <asm/uaccess.h>
-#include <asm/io.h>
-#include "moxa_serial_io.h"
-
-#define MOXA_IO_MINOR 255
-#define BASEPORT 0x800
-#define MOXA_SERIAL_IO_VERSION "v0.1.0"
-/*
- * DIO file operaiton function call
-*/
-#define MAX_DIO                 3
-
-#define DIO_INPUT               1
-#define DIO_OUTPUT              0
-#define DIO_HIGH                1
-#define DIO_LOW                 0
-#define IOCTL_DIO_GET_MODE      1
-#define IOCTL_DIO_SET_MODE      2
-#define IOCTL_DIO_GET_DATA      3
-#define IOCTL_DIO_SET_DATA      4
-#define IOCTL_SET_DOUT          15
-#define IOCTL_GET_DOUT          16
-#define IOCTL_GET_DIN           17
-
-#define MOXA                    0x400
-#define MOXA_SET_OP_MODE      (MOXA + 66)
-#define MOXA_GET_OP_MODE      (MOXA + 67)
-
-#define RS232_MODE              0
-#define RS485_2WIRE_MODE        1
-#define RS422_MODE              2
-#define RS485_4WIRE_MODE        3
-
-
-struct dio_set_struct {
-        int     io_number;
-        int     mode_data;      // 1 for input, 0 for output, 1 for high, 0 for low
-};
-
-static unsigned char do_state_keep=0xff;
-static unsigned int counter = 0;
-static char string [128];
-unsigned char keep_opmode=0x00;
-
-/* open function - called when the "file" /dev/mxsio is opened in userspace */
-static int io_open (struct inode *inode, struct file *file) {
-	return 0;
-}
-
-/* close function - called when the "file" /dev/mxsio is closed in userspace */
-static int io_release (struct inode *inode, struct file *file) {
-	return 0;
-}
-
-/* read function called when from /dev/mxsio is read */
-static ssize_t io_read (struct file *file, char *buf,
-		size_t count, loff_t *ppos) {
-	int len, err;
-	
-	if( counter <= 0 ) 
-		return 0;
-	err = copy_to_user(buf,string,counter);
-	if (err != 0)
-		return -EFAULT;
-	len  = counter;
-	counter = 0;
-	return len;
-}
-
-/* write function called when to /dev/mxsio is written */
-static ssize_t io_write (struct file *file, const char *buf,
-		size_t count, loff_t *ppos) {
-	int err;
-	err = copy_from_user(string,buf,count);
-
-	if(count < 3)
-		return -EINVAL;
-	if (err != 0)
-		return -EFAULT;
-
-	outb((unsigned char)string[2], (((unsigned short)string[0])<<8)|((unsigned short)string[1]));
-
-	counter += count;
-	return count;
-}
-
-/* ioctl - I/O control */
-static int io_ioctl(struct inode *inode, struct file *file,unsigned int cmd, unsigned long arg) {
-	struct dio_set_struct   set;
-	unsigned char di_state;
-	unsigned char port,opmode,val;
-
-	switch ( cmd ) {
-	case IOCTL_SET_DOUT :
-		if ( copy_from_user(&set, (struct dio_set_struct *)arg, sizeof(struct dio_set_struct)) )
-			return -EFAULT;
-                if ( set.io_number < 0 || set.io_number >= MAX_DIO )
-                        return -EINVAL;
-                if ( set.mode_data == DIO_HIGH )
-                        do_state_keep |= (1<<set.io_number);
-                else if ( set.mode_data == DIO_LOW )
-                        do_state_keep &= ~(1<<set.io_number);
-                else
-                        return -EINVAL;
-		outb(do_state_keep,BASEPORT+5);
-		//printk("%s,%d :BASEPORT+5:%x\n", __FUNCTION__, __LINE__,(unsigned long)inb(BASEPORT+5));	
-		break;
-        case IOCTL_GET_DOUT :
-        case IOCTL_GET_DIN :
-                if ( copy_from_user(&set, (struct dio_set_struct *)arg, sizeof(struct dio_set_struct)) )
-                        return -EFAULT;
-		if ( set.io_number == -1 ) {	// to get all port
-			if ( cmd == IOCTL_GET_DOUT )
-				set.mode_data = do_state_keep & 0xf;
-			else
-				set.mode_data = (inb(BASEPORT+5)>>4) & 0xf;
-			goto ioctl_get_label;
-		}
-		if ( set.io_number < 0 || set.io_number >= MAX_DIO )
-			return -EINVAL;
-		if ( cmd == IOCTL_GET_DOUT ) {
-			if ( do_state_keep & (1<<set.io_number) )
-				set.mode_data = 1;
-			else
-				set.mode_data = 0;
-		} else {
-			di_state = inb(BASEPORT+5)>>4;
-			if ( di_state & (1<<set.io_number) )
-				set.mode_data = 1;
-			else
-				set.mode_data = 0;
-		}
-ioctl_get_label:
-		if ( copy_to_user((struct dio_set_struct *)arg, &set, sizeof(struct dio_set_struct)) )
-			return -EFAULT;
-		break;
-	case MOXA_SET_OP_MODE:
-		copy_from_user(&opmode,(unsigned char *)arg,sizeof(unsigned char));
-		port = opmode >> 4 ;
-		opmode = opmode & 0xf;
-
-		if ( opmode != RS232_MODE && opmode != RS485_2WIRE_MODE && opmode != RS422_MODE && opmode != RS485_4WIRE_MODE && port > 1)
-		return -EFAULT;
-
-		val=inb(BASEPORT+4)&(~(((unsigned char)0xe)<<(4*port)));
-
-		switch(opmode){
-		case RS232_MODE:
-			val|=(((unsigned char)0x8)<<(4*port));
-			break;			
-		case RS485_2WIRE_MODE:
-			val|=(((unsigned char)0x2)<<(4*port));
-			break;
-		case RS422_MODE:
-		case RS485_4WIRE_MODE:
-			val|=(((unsigned char)0x4)<<(4*port));
-			break;
-		}
-
-		outb(val,BASEPORT+4);
-
-		keep_opmode &= ~(((unsigned char)0xf)<<(port*4));
-		keep_opmode |= opmode<<(port*4);
-
-		superio_enter_config();
-		superio_set_logic_device((u8)(port+1));
-		if(opmode == RS232_MODE){
-			val=superio_get_reg(0xf0)& 0x7f;
-		}else{
-			val=superio_get_reg(0xf0)| 0x80;
-		}
-		superio_set_reg(val , 0xf0);
-
-		break;
-
-	case MOXA_GET_OP_MODE:
-		copy_from_user(&port,(unsigned char *)arg,sizeof(unsigned char));
-		if(port>1)return -EINVAL;
-		opmode=(keep_opmode>>(port*4))& 0xf;
-		copy_to_user((unsigned char*)arg, &opmode, sizeof(unsigned char));
-
-		break;
-	default:
-		return -EINVAL;
-	}
-	return 0;
-}
-
-
-/* define which file operations are supported */
-struct file_operations io_fops = {
-	.owner	=	THIS_MODULE,
-	.llseek	=	NULL,
-	.read	=	io_read,
-	.write	=	io_write,
-	.readdir	=	NULL,
-	.poll		=	NULL,
-	.ioctl	=   io_ioctl,
-	.mmap	=	NULL,
-	.open	=   io_open,
-	.flush	=	NULL,
-	.release	=   io_release,
-	.fsync	=	NULL,
-	.fasync	=	NULL,
-	.lock	=	NULL,
-};
-
-/* register as misc driver */
-static struct miscdevice dio_miscdev = {
-    .minor = MOXA_IO_MINOR,
-    .name = "mxsio",
-    .fops = &io_fops,
-};
-
-
-/* initialize module (and interrupt) */
-static int __init io_init_module (void) {
-	unsigned char val;
-	printk("initializing MOXA SERIAL IO module\n");
-	
-	if ( misc_register(&dio_miscdev)!=0 ) {
-        	printk("Moxa serial io driver: Register misc fail !\n");
-        	return -ENOMEM;
-	}
-
-	outb(do_state_keep, BASEPORT+5);
-	outb(0x00, BASEPORT);
-	
-	/* set default serial mode to RS232 */
-	outb(0x88, BASEPORT+4);
-
-	superio_enter_config();
-	superio_set_logic_device(1);
-	val=superio_get_reg(0xf0)&0x7f;
-	superio_set_reg(val,0xf0);
-
-	superio_enter_config();
-	superio_set_logic_device(2);
-	val=superio_get_reg(0xf0)&0x7f;
-	superio_set_reg(val,0xf0);
-
-	printk(KERN_INFO "Moxa V2100 serial io driver, version " MOXA_SERIAL_IO_VERSION ", "
-			"init OK\n");
-	return 0;
-}
-
-// close and cleanup module
-static void __exit io_cleanup_module (void) {
-	printk("cleaning up module\n");
-	misc_deregister(&dio_miscdev);
-}
-
-module_init(io_init_module);
-module_exit(io_cleanup_module);
-MODULE_AUTHOR("Jimmy.Chen@...a.com");
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("MOXA SERIAL IO module");
diff --git a/drivers/misc/moxa_serial_io.h b/drivers/misc/moxa_serial_io.h
index 5d14193..e69de29 100644
--- a/drivers/misc/moxa_serial_io.h
+++ b/drivers/misc/moxa_serial_io.h
@@ -1,389 +0,0 @@
-/*
- * 		    GNU GENERAL PUBLIC LICENSE
- * 		       Version 2, June 1991
- * 
- *  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- *                        59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *  Everyone is permitted to copy and distribute verbatim copies
- *  of this license document, but changing it is not allowed.
- * 
- * 			    Preamble
- * 
- *   The licenses for most software are designed to take away your
- * freedom to share and change it.  By contrast, the GNU General Public
- * License is intended to guarantee your freedom to share and change free
- * software--to make sure the software is free for all its users.  This
- * General Public License applies to most of the Free Software
- * Foundation's software and to any other program whose authors commit to
- * using it.  (Some other Free Software Foundation software is covered by
- * the GNU Library General Public License instead.)  You can apply it to
- * your programs, too.
- * 
- *   When we speak of free software, we are referring to freedom, not
- * price.  Our General Public Licenses are designed to make sure that you
- * have the freedom to distribute copies of free software (and charge for
- * this service if you wish), that you receive source code or can get it
- * if you want it, that you can change the software or use pieces of it
- * in new free programs; and that you know you can do these things.
- * 
- *   To protect your rights, we need to make restrictions that forbid
- * anyone to deny you these rights or to ask you to surrender the rights.
- * These restrictions translate to certain responsibilities for you if you
- * distribute copies of the software, or if you modify it.
- * 
- *   For example, if you distribute copies of such a program, whether
- * gratis or for a fee, you must give the recipients all the rights that
- * you have.  You must make sure that they, too, receive or can get the
- * source code.  And you must show them these terms so they know their
- * rights.
- * 
- *   We protect your rights with two steps: (1) copyright the software, and
- * (2) offer you this license which gives you legal permission to copy,
- * distribute and/or modify the software.
- * 
- *   Also, for each author's protection and ours, we want to make certain
- * that everyone understands that there is no warranty for this free
- * software.  If the software is modified by someone else and passed on, we
- * want its recipients to know that what they have is not the original, so
- * that any problems introduced by others will not reflect on the original
- * authors' reputations.
- * 
- *   Finally, any free program is threatened constantly by software
- * patents.  We wish to avoid the danger that redistributors of a free
- * program will individually obtain patent licenses, in effect making the
- * program proprietary.  To prevent this, we have made it clear that any
- * patent must be licensed for everyone's free use or not licensed at all.
- * 
- *   The precise terms and conditions for copying, distribution and
- * modification follow.
- * 

- * 		    GNU GENERAL PUBLIC LICENSE
- *    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- * 
- *   0. This License applies to any program or other work which contains
- * a notice placed by the copyright holder saying it may be distributed
- * under the terms of this General Public License.  The "Program", below,
- * refers to any such program or work, and a "work based on the Program"
- * means either the Program or any derivative work under copyright law:
- * that is to say, a work containing the Program or a portion of it,
- * either verbatim or with modifications and/or translated into another
- * language.  (Hereinafter, translation is included without limitation in
- * the term "modification".)  Each licensee is addressed as "you".
- * 
- * Activities other than copying, distribution and modification are not
- * covered by this License; they are outside its scope.  The act of
- * running the Program is not restricted, and the output from the Program
- * is covered only if its contents constitute a work based on the
- * Program (independent of having been made by running the Program).
- * Whether that is true depends on what the Program does.
- * 
- *   1. You may copy and distribute verbatim copies of the Program's
- * source code as you receive it, in any medium, provided that you
- * conspicuously and appropriately publish on each copy an appropriate
- * copyright notice and disclaimer of warranty; keep intact all the
- * notices that refer to this License and to the absence of any warranty;
- * and give any other recipients of the Program a copy of this License
- * along with the Program.
- * 
- * You may charge a fee for the physical act of transferring a copy, and
- * you may at your option offer warranty protection in exchange for a fee.
- * 
- *   2. You may modify your copy or copies of the Program or any portion
- * of it, thus forming a work based on the Program, and copy and
- * distribute such modifications or work under the terms of Section 1
- * above, provided that you also meet all of these conditions:
- * 
- *     a) You must cause the modified files to carry prominent notices
- *     stating that you changed the files and the date of any change.
- * 
- *     b) You must cause any work that you distribute or publish, that in
- *     whole or in part contains or is derived from the Program or any
- *     part thereof, to be licensed as a whole at no charge to all third
- *     parties under the terms of this License.
- * 
- *     c) If the modified program normally reads commands interactively
- *     when run, you must cause it, when started running for such
- *     interactive use in the most ordinary way, to print or display an
- *     announcement including an appropriate copyright notice and a
- *     notice that there is no warranty (or else, saying that you provide
- *     a warranty) and that users may redistribute the program under
- *     these conditions, and telling the user how to view a copy of this
- *     License.  (Exception: if the Program itself is interactive but
- *     does not normally print such an announcement, your work based on
- *     the Program is not required to print an announcement.)
- * 

- * These requirements apply to the modified work as a whole.  If
- * identifiable sections of that work are not derived from the Program,
- * and can be reasonably considered independent and separate works in
- * themselves, then this License, and its terms, do not apply to those
- * sections when you distribute them as separate works.  But when you
- * distribute the same sections as part of a whole which is a work based
- * on the Program, the distribution of the whole must be on the terms of
- * this License, whose permissions for other licensees extend to the
- * entire whole, and thus to each and every part regardless of who wrote it.
- * 
- * Thus, it is not the intent of this section to claim rights or contest
- * your rights to work written entirely by you; rather, the intent is to
- * exercise the right to control the distribution of derivative or
- * collective works based on the Program.
- * 
- * In addition, mere aggregation of another work not based on the Program
- * with the Program (or with a work based on the Program) on a volume of
- * a storage or distribution medium does not bring the other work under
- * the scope of this License.
- * 
- *   3. You may copy and distribute the Program (or a work based on it,
- * under Section 2) in object code or executable form under the terms of
- * Sections 1 and 2 above provided that you also do one of the following:
- * 
- *     a) Accompany it with the complete corresponding machine-readable
- *     source code, which must be distributed under the terms of Sections
- *     1 and 2 above on a medium customarily used for software interchange; or,
- * 
- *     b) Accompany it with a written offer, valid for at least three
- *     years, to give any third party, for a charge no more than your
- *     cost of physically performing source distribution, a complete
- *     machine-readable copy of the corresponding source code, to be
- *     distributed under the terms of Sections 1 and 2 above on a medium
- *     customarily used for software interchange; or,
- * 
- *     c) Accompany it with the information you received as to the offer
- *     to distribute corresponding source code.  (This alternative is
- *     allowed only for noncommercial distribution and only if you
- *     received the program in object code or executable form with such
- *     an offer, in accord with Subsection b above.)
- * 
- * The source code for a work means the preferred form of the work for
- * making modifications to it.  For an executable work, complete source
- * code means all the source code for all modules it contains, plus any
- * associated interface definition files, plus the scripts used to
- * control compilation and installation of the executable.  However, as a
- * special exception, the source code distributed need not include
- * anything that is normally distributed (in either source or binary
- * form) with the major components (compiler, kernel, and so on) of the
- * operating system on which the executable runs, unless that component
- * itself accompanies the executable.
- * 
- * If distribution of executable or object code is made by offering
- * access to copy from a designated place, then offering equivalent
- * access to copy the source code from the same place counts as
- * distribution of the source code, even though third parties are not
- * compelled to copy the source along with the object code.
- * 

- *   4. You may not copy, modify, sublicense, or distribute the Program
- * except as expressly provided under this License.  Any attempt
- * otherwise to copy, modify, sublicense or distribute the Program is
- * void, and will automatically terminate your rights under this License.
- * However, parties who have received copies, or rights, from you under
- * this License will not have their licenses terminated so long as such
- * parties remain in full compliance.
- * 
- *   5. You are not required to accept this License, since you have not
- * signed it.  However, nothing else grants you permission to modify or
- * distribute the Program or its derivative works.  These actions are
- * prohibited by law if you do not accept this License.  Therefore, by
- * modifying or distributing the Program (or any work based on the
- * Program), you indicate your acceptance of this License to do so, and
- * all its terms and conditions for copying, distributing or modifying
- * the Program or works based on it.
- * 
- *   6. Each time you redistribute the Program (or any work based on the
- * Program), the recipient automatically receives a license from the
- * original licensor to copy, distribute or modify the Program subject to
- * these terms and conditions.  You may not impose any further
- * restrictions on the recipients' exercise of the rights granted herein.
- * You are not responsible for enforcing compliance by third parties to
- * this License.
- * 
- *   7. If, as a consequence of a court judgment or allegation of patent
- * infringement or for any other reason (not limited to patent issues),
- * conditions are imposed on you (whether by court order, agreement or
- * otherwise) that contradict the conditions of this License, they do not
- * excuse you from the conditions of this License.  If you cannot
- * distribute so as to satisfy simultaneously your obligations under this
- * License and any other pertinent obligations, then as a consequence you
- * may not distribute the Program at all.  For example, if a patent
- * license would not permit royalty-free redistribution of the Program by
- * all those who receive copies directly or indirectly through you, then
- * the only way you could satisfy both it and this License would be to
- * refrain entirely from distribution of the Program.
- * 
- * If any portion of this section is held invalid or unenforceable under
- * any particular circumstance, the balance of the section is intended to
- * apply and the section as a whole is intended to apply in other
- * circumstances.
- * 
- * It is not the purpose of this section to induce you to infringe any
- * patents or other property right claims or to contest validity of any
- * such claims; this section has the sole purpose of protecting the
- * integrity of the free software distribution system, which is
- * implemented by public license practices.  Many people have made
- * generous contributions to the wide range of software distributed
- * through that system in reliance on consistent application of that
- * system; it is up to the author/donor to decide if he or she is willing
- * to distribute software through any other system and a licensee cannot
- * impose that choice.
- * 
- * This section is intended to make thoroughly clear what is believed to
- * be a consequence of the rest of this License.
- * 

- *   8. If the distribution and/or use of the Program is restricted in
- * certain countries either by patents or by copyrighted interfaces, the
- * original copyright holder who places the Program under this License
- * may add an explicit geographical distribution limitation excluding
- * those countries, so that distribution is permitted only in or among
- * countries not thus excluded.  In such case, this License incorporates
- * the limitation as if written in the body of this License.
- * 
- *   9. The Free Software Foundation may publish revised and/or new versions
- * of the General Public License from time to time.  Such new versions will
- * be similar in spirit to the present version, but may differ in detail to
- * address new problems or concerns.
- * 
- * Each version is given a distinguishing version number.  If the Program
- * specifies a version number of this License which applies to it and "any
- * later version", you have the option of following the terms and conditions
- * either of that version or of any later version published by the Free
- * Software Foundation.  If the Program does not specify a version number of
- * this License, you may choose any version ever published by the Free Software
- * Foundation.
- * 
- *   10. If you wish to incorporate parts of the Program into other free
- * programs whose distribution conditions are different, write to the author
- * to ask for permission.  For software which is copyrighted by the Free
- * Software Foundation, write to the Free Software Foundation; we sometimes
- * make exceptions for this.  Our decision will be guided by the two goals
- * of preserving the free status of all derivatives of our free software and
- * of promoting the sharing and reuse of software generally.
- * 
- * 			    NO WARRANTY
- * 
- *   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
- * FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
- * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
- * PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
- * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
- * TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
- * PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
- * REPAIR OR CORRECTION.
- * 
- *   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
- * WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
- * REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
- * INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
- * OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
- * TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
- * YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
- * PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- * 
- * 		     END OF TERMS AND CONDITIONS
- * 

- * 	    How to Apply These Terms to Your New Programs
- * 
- *   If you develop a new program, and you want it to be of the greatest
- * possible use to the public, the best way to achieve this is to make it
- * free software which everyone can redistribute and change under these terms.
- * 
- *   To do so, attach the following notices to the program.  It is safest
- * to attach them to the start of each source file to most effectively
- * convey the exclusion of warranty; and each file should have at least
- * the "copyright" line and a pointer to where the full notice is found.
- * 
- *     <one line to give the program's name and a brief idea of what it does.>
- *     Copyright (C) 19yy  <name of author>
- * 
- *     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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- * 
- * 
- * Also add information on how to contact you by electronic and paper mail.
- * 
- * If the program is interactive, make it output a short notice like this
- * when it starts in an interactive mode:
- * 
- *     Gnomovision version 69, Copyright (C) 19yy name of author
- *     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- *     This is free software, and you are welcome to redistribute it
- *     under certain conditions; type `show c' for details.
- * 
- * The hypothetical commands `show w' and `show c' should show the appropriate
- * parts of the General Public License.  Of course, the commands you use may
- * be called something other than `show w' and `show c'; they could even be
- * mouse-clicks or menu items--whatever suits your program.
- * 
- * You should also get your employer (if you work as a programmer) or your
- * school, if any, to sign a "copyright disclaimer" for the program, if
- * necessary.  Here is a sample; alter the names:
- * 
- *   Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- *   `Gnomovision' (which makes passes at compilers) written by James Hacker.
- * 
- *   <signature of Ty Coon>, 1 April 1989
- *   Ty Coon, President of Vice
- * 
- * This General Public License does not permit incorporating your program into
- * proprietary programs.  If your program is a subroutine library, you may
- * consider it more useful to permit linking proprietary applications with the
- * library.  If this is what you want to do, use the GNU Library General
- * Public License instead of this License.
- */
-
-#ifndef __X86__SUPERIO__
-#define __X86__SUPERIO__
-
-#define	SUPERIO_CONFIG_PORT		0x2e
-
-unsigned char superio_get_reg(u8 val) {
-	outb (val, SUPERIO_CONFIG_PORT);
-	outb( 0x80,0xeb); // a Small delay
-	val = inb (SUPERIO_CONFIG_PORT+1);
-	outb( 0x80,0xeb); // a Small delay
-	return val;
-}
-
-void superio_set_reg(u8 val,u8 index) {
-	outb (index, SUPERIO_CONFIG_PORT);
-	outb( 0x80, 0xeb); // a Small delay
-	outb (val, (SUPERIO_CONFIG_PORT+1));
-	outb(0x80, 0xeb); // a Small delay
-}
-
-void superio_set_logic_device(u8 val) {
-	superio_set_reg(val, 0x07);
-	outb( 0x80, 0xeb); // a Small delay
-}
-
-void superio_enter_config(void) {
-#if defined(DA681)
-	outb (0x87, SUPERIO_CONFIG_PORT);
-	outb(0x80, 0xeb); // a Small delay
-	outb (0x87, SUPERIO_CONFIG_PORT);
-	outb(0x80, 0xeb); // a Small delay
-#elif defined(V21XX)
-	outb (0x87, SUPERIO_CONFIG_PORT);
-	outb (0x01, SUPERIO_CONFIG_PORT);
-	outb (0x55, SUPERIO_CONFIG_PORT);
-	outb (0x55, SUPERIO_CONFIG_PORT);
-#endif
-}
-
-void superio_exit_config(void) {
-	outb(0x02, SUPERIO_CONFIG_PORT);
-        outb( 0x80, 0xeb); // a Small delay
-	outb(0x02, SUPERIO_CONFIG_PORT+1);
-}
-
-#endif	//__X86__SUPERIO__
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ