| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef	_CYCLOMX_H | 
|  | 2 | #define	_CYCLOMX_H | 
|  | 3 | /* | 
|  | 4 | * cyclomx.h	Cyclom 2X WAN Link Driver. | 
|  | 5 | *		User-level API definitions. | 
|  | 6 | * | 
|  | 7 | * Author:	Arnaldo Carvalho de Melo <acme@conectiva.com.br> | 
|  | 8 | * | 
|  | 9 | * Copyright:	(c) 1998-2003 Arnaldo Carvalho de Melo | 
|  | 10 | * | 
|  | 11 | * Based on wanpipe.h by Gene Kozin <genek@compuserve.com> | 
|  | 12 | * | 
|  | 13 | *		This program is free software; you can redistribute it and/or | 
|  | 14 | *		modify it under the terms of the GNU General Public License | 
|  | 15 | *		as published by the Free Software Foundation; either version | 
|  | 16 | *		2 of the License, or (at your option) any later version. | 
|  | 17 | * ============================================================================ | 
|  | 18 | * 2000/07/13    acme		remove crap #if KERNEL_VERSION > blah | 
|  | 19 | * 2000/01/21    acme            rename cyclomx_open to cyclomx_mod_inc_use_count | 
|  | 20 | *                               and cyclomx_close to cyclomx_mod_dec_use_count | 
|  | 21 | * 1999/05/19	acme		wait_queue_head_t wait_stats(support for 2.3.*) | 
|  | 22 | * 1999/01/03	acme		judicious use of data types | 
|  | 23 | * 1998/12/27	acme		cleanup: PACKED not needed | 
|  | 24 | * 1998/08/08	acme		Version 0.0.1 | 
|  | 25 | */ | 
|  | 26 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 27 | #include <linux/wanrouter.h> | 
|  | 28 | #include <linux/spinlock.h> | 
|  | 29 |  | 
|  | 30 | #ifdef	__KERNEL__ | 
|  | 31 | /* Kernel Interface */ | 
|  | 32 |  | 
|  | 33 | #include <linux/cycx_drv.h>	/* Cyclom 2X support module API definitions */ | 
|  | 34 | #include <linux/cycx_cfm.h>	/* Cyclom 2X firmware module definitions */ | 
|  | 35 | #ifdef CONFIG_CYCLOMX_X25 | 
|  | 36 | #include <linux/cycx_x25.h> | 
|  | 37 | #endif | 
|  | 38 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 39 | /* Adapter Data Space. | 
|  | 40 | * This structure is needed because we handle multiple cards, otherwise | 
|  | 41 | * static data would do it. | 
|  | 42 | */ | 
|  | 43 | struct cycx_device { | 
|  | 44 | char devname[WAN_DRVNAME_SZ + 1];/* card name */ | 
|  | 45 | struct cycx_hw hw;		/* hardware configuration */ | 
|  | 46 | struct wan_device wandev;	/* WAN device data space */ | 
|  | 47 | u32 state_tick;			/* link state timestamp */ | 
|  | 48 | spinlock_t lock; | 
|  | 49 | char in_isr;			/* interrupt-in-service flag */ | 
|  | 50 | char buff_int_mode_unbusy;      /* flag for carrying out dev_tint */ | 
|  | 51 | wait_queue_head_t wait_stats;  /* to wait for the STATS indication */ | 
|  | 52 | void __iomem *mbox;			/* -> mailbox */ | 
|  | 53 | void (*isr)(struct cycx_device* card);	/* interrupt service routine */ | 
|  | 54 | int (*exec)(struct cycx_device* card, void* u_cmd, void* u_data); | 
|  | 55 | union { | 
|  | 56 | #ifdef CONFIG_CYCLOMX_X25 | 
|  | 57 | struct { /* X.25 specific data */ | 
|  | 58 | u32 lo_pvc; | 
|  | 59 | u32 hi_pvc; | 
|  | 60 | u32 lo_svc; | 
|  | 61 | u32 hi_svc; | 
|  | 62 | struct cycx_x25_stats stats; | 
|  | 63 | spinlock_t lock; | 
|  | 64 | u32 connection_keys; | 
|  | 65 | } x; | 
|  | 66 | #endif | 
|  | 67 | } u; | 
|  | 68 | }; | 
|  | 69 |  | 
|  | 70 | /* Public Functions */ | 
|  | 71 | void cycx_set_state(struct cycx_device *card, int state); | 
|  | 72 |  | 
|  | 73 | #ifdef CONFIG_CYCLOMX_X25 | 
|  | 74 | int cycx_x25_wan_init(struct cycx_device *card, wandev_conf_t *conf); | 
|  | 75 | #endif | 
|  | 76 | #endif	/* __KERNEL__ */ | 
|  | 77 | #endif	/* _CYCLOMX_H */ |