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