11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/********************************************************************* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Filename: wrapper.h 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Version: 1.2 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Description: IrDA SIR async wrapper layer 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Status: Experimental. 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Author: Dag Brattli <dagb@cs.uit.no> 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Created at: Mon Aug 4 20:40:53 1997 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified at: Tue Jan 11 12:37:29 2000 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Modified by: Dag Brattli <dagb@cs.uit.no> 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (c) 1998-2000 Dag Brattli <dagb@cs.uit.no>, 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * All Rights Reserved. 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This program is free software; you can redistribute it and/or 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * modify it under the terms of the GNU General Public License as 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * published by the Free Software Foundation; either version 2 of 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * the License, or (at your option) any later version. 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 20121e70b69aef898a3c02fa90d0a2108381bcf975John Anthony Kazos Jr * Neither Dag Brattli nor University of Tromsø admit liability nor 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * provide warranty for any of this software. This material is 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * provided "AS-IS" and at no charge. 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds ********************************************************************/ 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef WRAPPER_H 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define WRAPPER_H 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/types.h> 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/skbuff.h> 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/netdevice.h> 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <net/irda/irda_device.h> /* iobuff_t */ 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define BOF 0xc0 /* Beginning of frame */ 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define XBOF 0xff 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define EOF 0xc1 /* End of frame */ 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CE 0x7d /* Control escape */ 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define STA BOF /* Start flag */ 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define STO EOF /* End flag */ 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define IRDA_TRANS 0x20 /* Asynchronous transparency modifier */ 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4525985edcedea6396277003854657b5f3cb31a628Lucas De Marchi/* States for receiving a frame in async mode */ 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsenum { 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds OUTSIDE_FRAME, 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds BEGIN_FRAME, 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds LINK_ESCAPE, 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds INSIDE_FRAME 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* Proto definitions */ 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsint async_wrap_skb(struct sk_buff *skb, __u8 *tx_buff, int buffsize); 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid async_unwrap_char(struct net_device *dev, struct net_device_stats *stats, 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds iobuff_t *buf, __u8 byte); 571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 59