dahdi-linux/drivers/dahdi/wctdm24xxp/xhfc.h
Shaun Ruffell 76df5ab26b dahdi: Allow dahdi_span_ops.[chan|span]config and startup to block.
This change ensures that the dahdi_span_ops callbacks are not called
with any spinlocks held, and that the module is pinned in memory, and
also passes the struct file * pointer to the callbacks.

Passing the file pointer to the callbacks allows the board drivers to
check any flags on the file descriptor used to configure the
span/channel. The intent here is to allow dahdi_config to open the
/dev/dahdi/ctl file in a non-blocking mode in case there is a lengthy
processes that needs to happen as part of configuration.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9940 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-06-02 20:01:34 +00:00

52 lines
1.5 KiB
C

/*
* B400M Quad-BRI module Driver
* Written by Andrew Kohlsmith <akohlsmith@mixdown.ca>
*
* Copyright (C) 2010 Digium, Inc.
* All rights reserved.
*
*/
/*
* See http://www.asterisk.org for more information about
* the Asterisk project. Please do not directly contact
* any of the maintainers of this project for assistance;
* the project provides a web site, mailing lists and IRC
* channels for your use.
*
* This program is free software, distributed under the terms of
* the GNU General Public License Version 2 as published by the
* Free Software Foundation. See the LICENSE file included with
* this program for more details.
*/
#ifndef _B4XXM_H_
#define _B4XXM_H_
extern int bri_debug;
extern int bri_spanfilter;
extern int bri_teignorered;
extern int bri_alarmdebounce;
extern int bri_persistentlayer1;
extern int timingcable;
struct b400m;
/* probes the given card to see if it's a B400M */
int wctdm_init_b400m(struct wctdm *wc, int card);
int wctdm_bri_checkisr(struct wctdm *wc, int card, int offset);
void wctdm_unload_b400m(struct wctdm *wc, int card);
void wctdm_hdlc_hard_xmit(struct dahdi_chan *chan);
int b400m_spanconfig(struct file *file, struct dahdi_span *span,
struct dahdi_lineconfig *lc);
int b400m_dchan(struct dahdi_span *span);
int b400m_chanconfig(struct file *file, struct dahdi_chan *chan, int sigtype);
void b400m_post_init(struct b400m *b4);
void b400m_set_dahdi_span(struct b400m *b4, int spanno,
struct wctdm_span *wspan);
void b400m_module_init(void);
void b400m_module_cleanup(void);
#endif /* _B4XX_H_ */