162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * IPWireless 3G PCMCIA Network Driver
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Original code
662306a36Sopenharmony_ci *   by Stephen Blackheath <stephen@blacksapphire.com>,
762306a36Sopenharmony_ci *      Ben Martel <benm@symmetric.co.nz>
862306a36Sopenharmony_ci *
962306a36Sopenharmony_ci * Copyrighted as follows:
1062306a36Sopenharmony_ci *   Copyright (C) 2004 by Symmetric Systems Ltd (NZ)
1162306a36Sopenharmony_ci *
1262306a36Sopenharmony_ci * Various driver changes and rewrites, port to new kernels
1362306a36Sopenharmony_ci *   Copyright (C) 2006-2007 Jiri Kosina
1462306a36Sopenharmony_ci *
1562306a36Sopenharmony_ci * Misc code cleanups and updates
1662306a36Sopenharmony_ci *   Copyright (C) 2007 David Sterba
1762306a36Sopenharmony_ci */
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#ifndef _IPWIRELESS_CS_NETWORK_H_
2062306a36Sopenharmony_ci#define _IPWIRELESS_CS_NETWORK_H_
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci#include <linux/types.h>
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cistruct ipw_network;
2562306a36Sopenharmony_cistruct ipw_tty;
2662306a36Sopenharmony_cistruct ipw_hardware;
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci/* Definitions of the different channels on the PCMCIA UE */
2962306a36Sopenharmony_ci#define IPW_CHANNEL_RAS      0
3062306a36Sopenharmony_ci#define IPW_CHANNEL_DIALLER  1
3162306a36Sopenharmony_ci#define IPW_CHANNEL_CONSOLE  2
3262306a36Sopenharmony_ci#define NO_OF_IPW_CHANNELS   5
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_civoid ipwireless_network_notify_control_line_change(struct ipw_network *net,
3562306a36Sopenharmony_ci		unsigned int channel_idx, unsigned int control_lines,
3662306a36Sopenharmony_ci		unsigned int control_mask);
3762306a36Sopenharmony_civoid ipwireless_network_packet_received(struct ipw_network *net,
3862306a36Sopenharmony_ci		unsigned int channel_idx, unsigned char *data,
3962306a36Sopenharmony_ci		unsigned int length);
4062306a36Sopenharmony_cistruct ipw_network *ipwireless_network_create(struct ipw_hardware *hw);
4162306a36Sopenharmony_civoid ipwireless_network_free(struct ipw_network *net);
4262306a36Sopenharmony_civoid ipwireless_associate_network_tty(struct ipw_network *net,
4362306a36Sopenharmony_ci		unsigned int channel_idx, struct ipw_tty *tty);
4462306a36Sopenharmony_civoid ipwireless_disassociate_network_ttys(struct ipw_network *net,
4562306a36Sopenharmony_ci		unsigned int channel_idx);
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_civoid ipwireless_ppp_open(struct ipw_network *net);
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_civoid ipwireless_ppp_close(struct ipw_network *net);
5062306a36Sopenharmony_ciint ipwireless_ppp_channel_index(struct ipw_network *net);
5162306a36Sopenharmony_ciint ipwireless_ppp_unit_number(struct ipw_network *net);
5262306a36Sopenharmony_ciint ipwireless_ppp_mru(const struct ipw_network *net);
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci#endif
55