1/********************************************************************* 2 * 3 * Filename: irport.h 4 * Version: 0.1 5 * Description: Serial driver for IrDA 6 * Status: Experimental. 7 * Author: Dag Brattli <dagb@cs.uit.no> 8 * Created at: Sun Aug 3 13:49:59 1997 9 * Modified at: Fri Jan 14 10:21:10 2000 10 * Modified by: Dag Brattli <dagb@cs.uit.no> 11 * 12 * Copyright (c) 1997, 1998-2000 Dag Brattli <dagb@cs.uit.no> 13 * All Rights Reserved. 14 * 15 * This program is free software; you can redistribute it and/or 16 * modify it under the terms of the GNU General Public License as 17 * published by the Free Software Foundation; either version 2 of 18 * the License, or (at your option) any later version. 19 * 20 * Neither Dag Brattli nor University of Troms� admit liability nor 21 * provide warranty for any of this software. This material is 22 * provided "AS-IS" and at no charge. 23 * 24 ********************************************************************/ 25 26#ifndef IRPORT_H 27#define IRPORT_H 28 29#include <linux/netdevice.h> 30#include <linux/skbuff.h> 31#include <linux/types.h> 32#include <linux/spinlock.h> 33 34#include <net/irda/irda_device.h> 35 36#define SPEED_DEFAULT 9600 37#define SPEED_MAX 115200 38 39/* 40 * These are the supported serial types. 41 */ 42#define PORT_UNKNOWN 0 43#define PORT_8250 1 44#define PORT_16450 2 45#define PORT_16550 3 46#define PORT_16550A 4 47#define PORT_CIRRUS 5 48#define PORT_16650 6 49#define PORT_MAX 6 50 51#define FRAME_MAX_SIZE 2048 52 53struct irport_cb { 54 struct net_device *netdev; /* Yes! we are some kind of netdevice */ 55 struct net_device_stats stats; 56 57 struct irlap_cb *irlap; /* The link layer we are attached to */ 58 59 chipio_t io; /* IrDA controller information */ 60 iobuff_t tx_buff; /* Transmit buffer */ 61 iobuff_t rx_buff; /* Receive buffer */ 62 63 struct qos_info qos; /* QoS capabilities for this device */ 64 dongle_t *dongle; /* Dongle driver */ 65 66 __u32 flags; /* Interface flags */ 67 __u32 new_speed; 68 int mode; 69 int index; /* Instance index */ 70 int transmitting; /* Are we transmitting ? */ 71 72 spinlock_t lock; /* For serializing operations */ 73 74 /* For piggyback drivers */ 75 void *priv; 76 void (*change_speed)(void *priv, __u32 speed); 77 irqreturn_t (*interrupt)(int irq, void *dev_id); 78}; 79 80#endif /* IRPORT_H */ 81