• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/include/linux/
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
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
39/* Adapter Data Space.
40 * This structure is needed because we handle multiple cards, otherwise
41 * static data would do it.
42 */
43struct 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 */
71void cycx_set_state(struct cycx_device *card, int state);
72
73#ifdef CONFIG_CYCLOMX_X25
74int cycx_x25_wan_init(struct cycx_device *card, wandev_conf_t *conf);
75#endif
76#endif	/* __KERNEL__ */
77#endif	/* _CYCLOMX_H */
78