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

📄 esi.c

📁 powerpc内核mpc8241linux系统下net驱动程序
💻 C
字号:
/********************************************************************* *                 * Filename:      esi.c * Version:       1.2 * Description:   Driver for the Extended Systems JetEye PC dongle * Status:        Experimental. * Author:        Thomas Davis, <ratbert@radiks.net> * Created at:    Sat Feb 21 18:54:38 1998 * Modified at:   Tue Feb  9 15:36:47 1999 * Modified by:   Dag Brattli <dagb@cs.uit.no> * Sources:	  esi.c * *     Copyright (c) 1998, Thomas Davis, <ratbert@radiks.net>, *     Copyright (c) 1998, Dag Brattli,  <dagb@cs.uit.no> *     All Rights Reserved. * *     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. * *     I, Thomas Davis, provide no warranty for any of this software. *     This material is provided "AS-IS" and at no charge. * ********************************************************************/#include <linux/module.h>#include <linux/delay.h>#include <linux/tty.h>#include <linux/sched.h>#include <linux/init.h>#include <asm/ioctls.h>#include <asm/segment.h>#include <asm/uaccess.h>#include <net/irda/irda.h>#include <net/irda/irmod.h>#include <net/irda/irda_device.h>#include <net/irda/irtty.h>#include <net/irda/dongle.h>static void esi_open( struct irda_device *idev, int type);static void esi_close( struct irda_device *driver);static void esi_change_speed( struct irda_device *idev, int baud);static void esi_reset( struct irda_device *idev, int unused);static void esi_qos_init( struct irda_device *idev, struct qos_info *qos);static struct dongle dongle = {	ESI_DONGLE,	esi_open,	esi_close,	esi_reset,	esi_change_speed,	esi_qos_init,};__initfunc(void esi_init(void)){	irtty_register_dongle( &dongle);}void esi_cleanup(void){	irtty_unregister_dongle( &dongle);}static void esi_open( struct irda_device *idev, int type){	strcat( idev->description, " <-> esi");	idev->io.dongle_id = type;	idev->flags |= IFF_DONGLE;	MOD_INC_USE_COUNT;}static void esi_close( struct irda_device *driver){	MOD_DEC_USE_COUNT;}/* * Function esi_change_speed (tty, baud) * *    Set the speed for the Extended Systems JetEye PC ESI-9680 type dongle * */static void esi_change_speed( struct irda_device *idev, int baud){	struct irtty_cb *self;	struct tty_struct *tty;	int dtr, rts;        struct termios old_termios;	int cflag;		ASSERT( idev != NULL, return;);	ASSERT( idev->magic == IRDA_DEVICE_MAGIC, return;);		self = (struct irtty_cb *) idev->priv;		ASSERT( self != NULL, return;);	ASSERT( self->magic == IRTTY_MAGIC, return;);	if ( !self->tty)		return;	tty = self->tty;		old_termios = *(tty->termios);	cflag = tty->termios->c_cflag;	cflag &= ~CBAUD;	switch (baud) {	case 19200:		cflag |= B19200;		dtr = TRUE;		rts = FALSE;		break;	case 115200:		cflag |= B115200;		dtr = rts = TRUE;		break;	case 9600:	default:		cflag |= B9600;		dtr = FALSE;		rts = TRUE;		break;	}	/* Change speed of serial driver */	tty->termios->c_cflag = cflag;	tty->driver.set_termios( tty, &old_termios);	irtty_set_dtr_rts(tty, dtr, rts);}static void esi_reset( struct irda_device *idev, int unused){	/* Empty */}/* * Function esi_qos_init (qos) * *    Init QoS capabilities for the dongle * */static void esi_qos_init( struct irda_device *idev, struct qos_info *qos){	qos->baud_rate.bits &= IR_9600|IR_19200|IR_115200;}#ifdef MODULE		/* * Function init_module (void) * *    Initialize ESI module * */int init_module(void){	esi_init();	return(0);}/* * Function cleanup_module (void) * *    Cleanup ESI module * */void cleanup_module(void){        esi_cleanup();}#endif

⌨️ 快捷键说明

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