summaryrefslogtreecommitdiff
path: root/xpp/xpp_zap.h
diff options
context:
space:
mode:
authorkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-02-15 02:24:18 +0000
committerkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-02-15 02:24:18 +0000
commit41e0e5c06fead266ce179424b18134aeac2c5762 (patch)
tree246b5055fddf29d43c4d1a7c195ff3f3e1460ac4 /xpp/xpp_zap.h
parent6aa681528c72a21a011883dcdcd35130bd066eac (diff)
initial import of Xorcom Astribank driver (issue #6452, with minor mods)
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@949 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp/xpp_zap.h')
-rw-r--r--xpp/xpp_zap.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/xpp/xpp_zap.h b/xpp/xpp_zap.h
new file mode 100644
index 0000000..068f648
--- /dev/null
+++ b/xpp/xpp_zap.h
@@ -0,0 +1,58 @@
+#ifndef XPP_ZAP_H
+#define XPP_ZAP_H
+
+#include <linux/workqueue.h>
+#include "xpd.h"
+#include "xproto.h"
+
+xpacket_t *xpacket_new(xbus_t *xbus, int flags);
+void xpacket_free(xbus_t *xbus, xpacket_t *p);
+
+/* packet queues */
+void init_xbus_packet_queue(packet_queue_t *q, const char name[]);
+void drain_xbus_packet_queue(xbus_t *xbus, packet_queue_t *q);
+void xbus_enqueue_packet(xbus_t *xbus, packet_queue_t *q, xpacket_t *pack);
+xpacket_t *xbus_dequeue_packet(packet_queue_t *q);
+
+xbus_t *xbus_new(ulong loopback_xpds);
+void xbus_activate(xbus_t *xbus);
+void xbus_deactivate(xbus_t *xbus);
+
+void xbus_reset_counters(xbus_t *xbus);
+int packet_send(xbus_t *xbus, xpacket_t *pack_tx);
+void phone_hook(xpd_t *xpd, int channo, bool offhook);
+void xpp_check_hookstate(xpd_t *xpd, xpp_line_t fxs_off_hook);
+xpd_t *xpd_of(xbus_t *xbus, int xpd_num);
+void card_detected(void *data);
+xpd_t *xpd_alloc(size_t privsize, xbus_t *xbus, int xpd_num, const xproto_table_t *proto_table, int channels, byte revision);
+void xpd_remove(xpd_t *xpd);
+void fill_beep(u_char *buf, int duration);
+void xpp_tick(unsigned long param);
+int xpp_open(struct zt_chan *chan);
+int xpp_close(struct zt_chan *chan);
+int xpp_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long arg);
+int xpp_maint(struct zt_span *span, int cmd);
+
+#define CARD_DESC_MAGIC 0xca9dde5c
+
+struct card_desc_struct {
+ struct work_struct work;
+ u32 magic;
+ xbus_t *xbus;
+ byte rev; /* Revision number */
+ byte type; /* LSB: 1 - to_phone, 0 - to_line */
+ byte xpd_num;
+};
+extern struct workqueue_struct *xpp_worker;
+
+#ifdef CONFIG_PROC_FS
+#include <linux/proc_fs.h>
+
+extern struct proc_dir_entry *xpp_procdir;
+#endif
+extern xpd_t *sync_master;
+
+// Number of rings our simulated phone will ring:
+#define RINGS_NUM 3
+
+#endif /* XPP_ZAP_H */