summaryrefslogtreecommitdiff
path: root/xpp/xpp_zap.h
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-07-08 00:43:31 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-07-08 00:43:31 +0000
commitec6b220aa7a334ccbd0fcb41d35c66560fc78a11 (patch)
tree8ee3f2338f95b3fa67f8512adb8fe4842643c391 /xpp/xpp_zap.h
parent4e4b79bf56f6477b65973c869e5a8936aea27864 (diff)
xpp Release 1.1.0 :
* FPGA firmware now loaded from PC (for newer models) * Driver for the FXO module (xpd_fxo.ko) * Moved most userspace files to the subdirectory utils (see also next commit) * Explicit license for firmware files * Optionally avoid auto-registration * Registers initializations code is done by a userspace script. * Remove obsolete .inc initialization files (we use user-space init) * Added an install target to the utils dir. * Updated README.Astribank accordingly. * Using RBS signalling, as caller ID did not work well otherwise. * Better handling of USB protocol errors. * Fixed some procfs-related races. * per-card-module ioctls. * fxotune support. * opermode support (set through /etc/default/zaptel for now) * Userspace initialization script can also read registers. * Power calibration works (and implemented in perl) * some fine-tuning to the regster initialization parameters. * Leds turn on before registration and turn off after it. git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@1212 5390a7c7-147a-4af0-8ec9-7488f05a26cb
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 */