summaryrefslogtreecommitdiff
path: root/xpp/xpp_zap.h
diff options
context:
space:
mode:
Diffstat (limited to 'xpp/xpp_zap.h')
-rw-r--r--xpp/xpp_zap.h60
1 files changed, 28 insertions, 32 deletions
diff --git a/xpp/xpp_zap.h b/xpp/xpp_zap.h
index 068f648..4d884ad 100644
--- a/xpp/xpp_zap.h
+++ b/xpp/xpp_zap.h
@@ -1,58 +1,54 @@
#ifndef XPP_ZAP_H
#define XPP_ZAP_H
+/*
+ * Written by Oron Peled <oron@actcom.co.il>
+ * Copyright (C) 2004-2006, Xorcom
+ *
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
#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);
+void xpd_disconnect(xpd_t *xpd);
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);
+void card_detected(struct card_desc_struct *card_desc);
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 update_xpd_status(xpd_t *xpd, int alarm_flag);
+void update_line_status(xpd_t *xpd, int pos, bool good);
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);
+void sync_master_is(xpd_t *xpd);
-#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;
+extern struct proc_dir_entry *xpp_proc_toplevel;
#endif
-extern xpd_t *sync_master;
-// Number of rings our simulated phone will ring:
-#define RINGS_NUM 3
+#define SPAN_REGISTERED(xpd) ((xpd)->span.flags & ZT_FLAG_REGISTERED)
#endif /* XPP_ZAP_H */