summaryrefslogtreecommitdiff
path: root/xpp
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-09-04 21:58:47 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-09-04 21:58:47 +0000
commitfa2e39e7130a75e0a446095ff0a55cd003a0c165 (patch)
treee0f2709b7a8d976eab36dbde7f339c8ce46b723a /xpp
parent4d1a1aac91bcb80a42ccefa2b6ae50a00a2585a3 (diff)
Minor code cleanup: No more SETHOOK method. It's only used in FXO, so
now it's an internal function: __do_sethook() git-svn-id: http://svn.digium.com/svn/zaptel/trunk@1383 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp')
-rw-r--r--xpp/card_fxo.c58
-rw-r--r--xpp/card_fxo.h1
-rw-r--r--xpp/card_fxs.c8
-rw-r--r--xpp/card_fxs.h1
-rw-r--r--xpp/xproto.c1
-rw-r--r--xpp/xproto.h1
6 files changed, 28 insertions, 42 deletions
diff --git a/xpp/card_fxo.c b/xpp/card_fxo.c
index 4bd9221..1b3e6cc 100644
--- a/xpp/card_fxo.c
+++ b/xpp/card_fxo.c
@@ -59,7 +59,6 @@ enum fxo_leds {
static /* 0x0F */ DECLARE_CMD(FXO, CHAN_ENABLE, xpp_line_t lines, bool on);
static /* 0x0F */ DECLARE_CMD(FXO, CHAN_CID, int pos);
static /* 0x0F */ DECLARE_CMD(FXO, RING, int pos, bool on);
-static /* 0x0F */ DECLARE_CMD(FXO, SETHOOK, int pos, bool offhook);
static /* 0x0F */ DECLARE_CMD(FXO, RELAY_OUT, byte which, bool on);
static /* 0x0F */ DECLARE_CMD(FXO, DAA_QUERY, int pos, byte reg_num);
@@ -212,6 +211,33 @@ static void mark_ring(xpd_t *xpd, lineno_t pos, bool on)
}
}
+static __do_sethook(xbus_t *xbus, xpd_t *xpd, int pos, bool offhook)
+{
+ int ret = 0;
+ xpacket_t *pack;
+ slic_cmd_t *sc;
+ int len;
+ bool value;
+ struct FXO_priv_data *priv;
+
+ BUG_ON(!xbus);
+ BUG_ON(!xpd);
+ priv = (struct FXO_priv_data*)xpd->priv;
+ value = (offhook) ? 0x09 : 0x08;
+ // value |= BIT(3); /* Bit 3 is for CID */
+ DBG("%s/%s/%d: SETHOOK: value=0x%02X %s\n", xbus->busname, xpd->xpdname, pos, value, (offhook)?"OFFHOOK":"ONHOOK");
+ MARK_LED(xpd, pos, LED_GREEN, (offhook)?LED_ON:LED_OFF);
+ XPACKET_NEW(pack, xbus, FXO, DAA_WRITE, xpd->id);
+ sc = &RPACKET_FIELD(pack, FXO, DAA_WRITE, slic_cmd);
+ len = slic_cmd_direct_write(sc, BIT(pos), 0x05, value);
+ pack->datalen = len;
+ packet_send(xbus, pack);
+ if(!offhook)
+ mark_ring(xpd, pos, 0); // No more rings
+ priv->ring_sig[pos] = 0;
+ return ret;
+}
+
static void do_sethook(xpd_t *xpd, int pos, bool offhook)
{
unsigned long flags;
@@ -227,7 +253,7 @@ static void do_sethook(xpd_t *xpd, int pos, bool offhook)
spin_lock_irqsave(&xpd->lock, flags);
mark_ring(xpd, pos, 0); // No more rings
priv->ring_sig[pos] = 0;
- CALL_XMETHOD(SETHOOK, xpd->xbus, xpd, pos, offhook);
+ __do_sethook(xpd->xbus, xpd, pos, offhook);
if(offhook) {
BIT_SET(xpd->hookstate, pos);
} else {
@@ -604,33 +630,6 @@ static /* 0x0F */ HOSTCMD(FXO, RING, int pos, bool on)
return ret;
}
-static /* 0x0F */ HOSTCMD(FXO, SETHOOK, int pos, bool offhook)
-{
- int ret = 0;
- xpacket_t *pack;
- slic_cmd_t *sc;
- int len;
- bool value;
- struct FXO_priv_data *priv;
-
- BUG_ON(!xbus);
- BUG_ON(!xpd);
- priv = (struct FXO_priv_data*)xpd->priv;
- value = (offhook) ? 0x09 : 0x08;
- // value |= BIT(3); /* Bit 3 is for CID */
- DBG("%s/%s/%d: SETHOOK: value=0x%02X %s\n", xbus->busname, xpd->xpdname, pos, value, (offhook)?"OFFHOOK":"ONHOOK");
- MARK_LED(xpd, pos, LED_GREEN, (offhook)?LED_ON:LED_OFF);
- XPACKET_NEW(pack, xbus, FXO, DAA_WRITE, xpd->id);
- sc = &RPACKET_FIELD(pack, FXO, DAA_WRITE, slic_cmd);
- len = slic_cmd_direct_write(sc, BIT(pos), 0x05, value);
- pack->datalen = len;
- packet_send(xbus, pack);
- if(!offhook)
- mark_ring(xpd, pos, 0); // No more rings
- priv->ring_sig[pos] = 0;
- return ret;
-}
-
static /* 0x0F */ HOSTCMD(FXO, RELAY_OUT, byte which, bool on)
{
return -ENOSYS;
@@ -806,7 +805,6 @@ xproto_table_t PROTO_TABLE(FXO) = {
.card_ioctl = FXO_card_ioctl,
.RING = XPROTO_CALLER(FXO, RING),
- .SETHOOK = XPROTO_CALLER(FXO, SETHOOK),
.RELAY_OUT = XPROTO_CALLER(FXO, RELAY_OUT),
.CHAN_ENABLE = XPROTO_CALLER(FXO, CHAN_ENABLE),
.CHAN_CID = XPROTO_CALLER(FXO, CHAN_CID),
diff --git a/xpp/card_fxo.h b/xpp/card_fxo.h
index 93b9174..6e5186b 100644
--- a/xpp/card_fxo.h
+++ b/xpp/card_fxo.h
@@ -32,7 +32,6 @@ enum fxo_opcodes {
XPROTO_NAME(FXO, CHAN_ENABLE) = 0x0F, /* Write to DAA */
XPROTO_NAME(FXO, CHAN_CID) = 0x0F, /* Write to DAA */
XPROTO_NAME(FXO, RING) = 0x0F, /* Write to DAA */
- XPROTO_NAME(FXO, SETHOOK) = 0x0F, /* Write to DAA */
XPROTO_NAME(FXO, LED) = 0x0F, /* Write to DAA */
XPROTO_NAME(FXO, RELAY_OUT) = 0x0F, /* Write to DAA */
XPROTO_NAME(FXO, DAA_INIT) = 0x0F, /* Write to DAA */
diff --git a/xpp/card_fxs.c b/xpp/card_fxs.c
index e59314f..1264348 100644
--- a/xpp/card_fxs.c
+++ b/xpp/card_fxs.c
@@ -77,7 +77,6 @@ static int SLIC_DIRECT_REQUEST(xbus_t *xbus, xpd_t *xpd, xpp_line_t lines, byte
static /* 0x0F */ DECLARE_CMD(FXS, CHAN_ENABLE, xpp_line_t lines, bool on);
static /* 0x0F */ DECLARE_CMD(FXS, CHAN_CID, int pos);
static /* 0x0F */ DECLARE_CMD(FXS, RING, int pos, bool on);
-static /* 0x0F */ DECLARE_CMD(FXS, SETHOOK, int pos, bool offhook);
static /* 0x0F */ DECLARE_CMD(FXS, RELAY_OUT, byte which, bool on);
static /* 0x0F */ DECLARE_CMD(FXS, SLIC_QUERY, int pos, byte reg_num);
@@ -698,12 +697,6 @@ static /* 0x0F */ HOSTCMD(FXS, RING, int pos, bool on)
return ret;
}
-static /* 0x0F */ HOSTCMD(FXS, SETHOOK, int pos, bool offhook)
-{
- BUG(); // Should never be called
- return 0;
-}
-
static /* 0x0F */ HOSTCMD(FXS, RELAY_OUT, byte which, bool on)
{
int ret = 0;
@@ -879,7 +872,6 @@ xproto_table_t PROTO_TABLE(FXS) = {
.card_tick = FXS_card_tick,
.RING = XPROTO_CALLER(FXS, RING),
- .SETHOOK = XPROTO_CALLER(FXS, SETHOOK),
.RELAY_OUT = XPROTO_CALLER(FXS, RELAY_OUT),
.CHAN_ENABLE = XPROTO_CALLER(FXS, CHAN_ENABLE),
.CHAN_CID = XPROTO_CALLER(FXS, CHAN_CID),
diff --git a/xpp/card_fxs.h b/xpp/card_fxs.h
index 1d81810..bed1a4f 100644
--- a/xpp/card_fxs.h
+++ b/xpp/card_fxs.h
@@ -33,7 +33,6 @@ enum fxs_opcodes {
XPROTO_NAME(FXS, CHAN_POWER) = 0x0F, /* Write to SLIC */
XPROTO_NAME(FXS, CHAN_CID) = 0x0F, /* Write to SLIC */
XPROTO_NAME(FXS, RING) = 0x0F, /* Write to SLIC */
- XPROTO_NAME(FXS, SETHOOK) = 0x0F, /* Write to SLIC */
XPROTO_NAME(FXS, LED) = 0x0F, /* Write to SLIC */
XPROTO_NAME(FXS, RELAY_OUT) = 0x0F, /* Write to SLIC */
XPROTO_NAME(FXS, SLIC_INIT) = 0x0F, /* Write to SLIC */
diff --git a/xpp/xproto.c b/xpp/xproto.c
index 7e6dd56..d6e3e89 100644
--- a/xpp/xproto.c
+++ b/xpp/xproto.c
@@ -309,7 +309,6 @@ int xproto_register(const xproto_table_t *proto_table)
CHECK_XOP(CHAN_ENABLE);
CHECK_XOP(CHAN_CID);
CHECK_XOP(RING);
- CHECK_XOP(SETHOOK);
CHECK_XOP(RELAY_OUT);
xprotocol_tables[type] = proto_table;
diff --git a/xpp/xproto.h b/xpp/xproto.h
index 4fcc81a..77e387f 100644
--- a/xpp/xproto.h
+++ b/xpp/xproto.h
@@ -164,7 +164,6 @@ struct xops {
int (*CHAN_ENABLE)(xbus_t *xbus, xpd_t *xpd, xpp_line_t lines, bool on);
int (*CHAN_CID)(xbus_t *xbus, xpd_t *xpd, int pos);
int (*RING)(xbus_t *xbus, xpd_t *xpd, int pos, bool on);
- int (*SETHOOK)(xbus_t *xbus, xpd_t *xpd, int pos, bool offhook);
int (*RELAY_OUT)(xbus_t *xbus, xpd_t *xpd, byte which, bool on);
};