Updated _cmsg handling added new functions need by "capiconn".
This commit is contained in:
parent
d2816f8c56
commit
944842aa4c
|
@ -5,11 +5,14 @@ CLEANFILES = *~ comperr
|
|||
MAINTAINERCLEANFILES = configure aclocal.m4 Makefile.in config.h.in
|
||||
stamp-h.in
|
||||
|
||||
include_HEADERS = capi20.h capiutils.h
|
||||
include_HEADERS = capi20.h capiutils.h capicmd.h
|
||||
lib_LTLIBRARIES = libcapi20.la
|
||||
lib_LIBRARIES = libcapi20dyn.a
|
||||
|
||||
libcapi20_la_SOURCES = capi20.c capifunc.c convert.c
|
||||
libcapi20_la_LDFLAGS = -version-info 2:4:0
|
||||
libcapi20_la_LDFLAGS = -version-info 2:5:0
|
||||
|
||||
libcapi20dyn_a_SOURCES = capidyn.c
|
||||
# libcapi20_la_LIBADD = $(LIBADD_DL)
|
||||
|
||||
$(OBJECTS): libtool
|
||||
|
|
|
@ -76,21 +76,29 @@ AUTOMAKE_OPTIONS = no-dependencies foreign
|
|||
CLEANFILES = *~ comperr
|
||||
MAINTAINERCLEANFILES = configure aclocal.m4 Makefile.in config.h.in
|
||||
|
||||
include_HEADERS = capi20.h capiutils.h
|
||||
include_HEADERS = capi20.h capiutils.h capicmd.h
|
||||
lib_LTLIBRARIES = libcapi20.la
|
||||
lib_LIBRARIES = libcapi20dyn.a
|
||||
|
||||
libcapi20_la_SOURCES = capi20.c capifunc.c convert.c
|
||||
libcapi20_la_LDFLAGS = -version-info 2:4:0
|
||||
libcapi20_la_LDFLAGS = -version-info 2:5:0
|
||||
|
||||
libcapi20dyn_a_SOURCES = capidyn.c
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_CLEAN_FILES =
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
LIBRARIES = $(lib_LIBRARIES)
|
||||
|
||||
|
||||
DEFS = @DEFS@ -I. -I$(srcdir)
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBS = @LIBS@
|
||||
libcapi20dyn_a_LIBADD =
|
||||
libcapi20dyn_a_OBJECTS = capidyn.o
|
||||
AR = ar
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
|
||||
libcapi20_la_LIBADD =
|
||||
libcapi20_la_OBJECTS = capi20.lo capifunc.lo convert.lo
|
||||
CFLAGS = @CFLAGS@
|
||||
|
@ -109,8 +117,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
|||
|
||||
TAR = tar
|
||||
GZIP_ENV = --best
|
||||
SOURCES = $(libcapi20_la_SOURCES)
|
||||
OBJECTS = $(libcapi20_la_OBJECTS)
|
||||
SOURCES = $(libcapi20dyn_a_SOURCES) $(libcapi20_la_SOURCES)
|
||||
OBJECTS = $(libcapi20dyn_a_OBJECTS) $(libcapi20_la_OBJECTS)
|
||||
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
|
@ -130,29 +138,36 @@ config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
|||
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
|
||||
mostlyclean-libLTLIBRARIES:
|
||||
mostlyclean-libLIBRARIES:
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
clean-libLIBRARIES:
|
||||
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
|
||||
|
||||
distclean-libLTLIBRARIES:
|
||||
distclean-libLIBRARIES:
|
||||
|
||||
maintainer-clean-libLTLIBRARIES:
|
||||
maintainer-clean-libLIBRARIES:
|
||||
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
install-libLIBRARIES: $(lib_LIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
@list='$(lib_LIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
|
||||
$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
|
||||
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
|
||||
$(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
|
||||
else :; fi; \
|
||||
done
|
||||
@$(POST_INSTALL)
|
||||
@list='$(lib_LIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
|
||||
$(RANLIB) $(DESTDIR)$(libdir)/$$p; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
uninstall-libLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
|
||||
list='$(lib_LIBRARIES)'; for p in $$list; do \
|
||||
rm -f $(DESTDIR)$(libdir)/$$p; \
|
||||
done
|
||||
|
||||
.c.o:
|
||||
|
@ -193,6 +208,36 @@ distclean-libtool:
|
|||
|
||||
maintainer-clean-libtool:
|
||||
|
||||
libcapi20dyn.a: $(libcapi20dyn_a_OBJECTS) $(libcapi20dyn_a_DEPENDENCIES)
|
||||
-rm -f libcapi20dyn.a
|
||||
$(AR) cru libcapi20dyn.a $(libcapi20dyn_a_OBJECTS) $(libcapi20dyn_a_LIBADD)
|
||||
$(RANLIB) libcapi20dyn.a
|
||||
|
||||
mostlyclean-libLTLIBRARIES:
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
|
||||
distclean-libLTLIBRARIES:
|
||||
|
||||
maintainer-clean-libLTLIBRARIES:
|
||||
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
|
||||
$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
|
||||
done
|
||||
|
||||
libcapi20.la: $(libcapi20_la_OBJECTS) $(libcapi20_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(libdir) $(libcapi20_la_LDFLAGS) $(libcapi20_la_OBJECTS) $(libcapi20_la_LIBADD) $(LIBS)
|
||||
|
||||
|
@ -296,7 +341,7 @@ check-am: all-am
|
|||
check: check-am
|
||||
installcheck-am:
|
||||
installcheck: installcheck-am
|
||||
install-exec-am: install-libLTLIBRARIES
|
||||
install-exec-am: install-libLIBRARIES install-libLTLIBRARIES
|
||||
install-exec: install-exec-am
|
||||
|
||||
install-data-am: install-includeHEADERS
|
||||
|
@ -305,14 +350,16 @@ install-data: install-data-am
|
|||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
install: install-am
|
||||
uninstall-am: uninstall-libLTLIBRARIES uninstall-includeHEADERS
|
||||
uninstall-am: uninstall-libLIBRARIES uninstall-libLTLIBRARIES \
|
||||
uninstall-includeHEADERS
|
||||
uninstall: uninstall-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
|
||||
all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS)
|
||||
all-redirect: all-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(libdir) \
|
||||
$(DESTDIR)$(includedir)
|
||||
|
||||
|
||||
mostlyclean-generic:
|
||||
|
@ -326,48 +373,51 @@ distclean-generic:
|
|||
|
||||
maintainer-clean-generic:
|
||||
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||
mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \
|
||||
mostlyclean-libtool mostlyclean-tags \
|
||||
mostlyclean-generic
|
||||
mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \
|
||||
mostlyclean-libtool mostlyclean-libLTLIBRARIES \
|
||||
mostlyclean-tags mostlyclean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
clean-am: clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
|
||||
clean-generic mostlyclean-am
|
||||
clean-am: clean-libLIBRARIES clean-compile clean-libtool \
|
||||
clean-libLTLIBRARIES clean-tags clean-generic \
|
||||
mostlyclean-am
|
||||
|
||||
clean: clean-am
|
||||
|
||||
distclean-am: distclean-libLTLIBRARIES distclean-compile \
|
||||
distclean-libtool distclean-tags distclean-generic \
|
||||
clean-am
|
||||
distclean-am: distclean-libLIBRARIES distclean-compile \
|
||||
distclean-libtool distclean-libLTLIBRARIES \
|
||||
distclean-tags distclean-generic clean-am
|
||||
-rm -f libtool
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -f config.status
|
||||
|
||||
maintainer-clean-am: maintainer-clean-libLTLIBRARIES \
|
||||
maintainer-clean-am: maintainer-clean-libLIBRARIES \
|
||||
maintainer-clean-compile maintainer-clean-libtool \
|
||||
maintainer-clean-tags maintainer-clean-generic \
|
||||
distclean-am
|
||||
maintainer-clean-libLTLIBRARIES maintainer-clean-tags \
|
||||
maintainer-clean-generic distclean-am
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -f config.status
|
||||
|
||||
.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
|
||||
.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \
|
||||
clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \
|
||||
install-libLIBRARIES mostlyclean-compile distclean-compile \
|
||||
clean-compile maintainer-clean-compile mostlyclean-libtool \
|
||||
distclean-libtool clean-libtool maintainer-clean-libtool \
|
||||
mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
|
||||
clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
|
||||
uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
|
||||
distclean-compile clean-compile maintainer-clean-compile \
|
||||
mostlyclean-libtool distclean-libtool clean-libtool \
|
||||
maintainer-clean-libtool uninstall-includeHEADERS \
|
||||
install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \
|
||||
maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
|
||||
installcheck-am installcheck install-exec-am install-exec \
|
||||
install-data-am install-data install-am install uninstall-am uninstall \
|
||||
all-redirect all-am all installdirs mostlyclean-generic \
|
||||
distclean-generic clean-generic maintainer-clean-generic clean \
|
||||
mostlyclean distclean maintainer-clean
|
||||
uninstall-libLTLIBRARIES install-libLTLIBRARIES \
|
||||
uninstall-includeHEADERS install-includeHEADERS tags mostlyclean-tags \
|
||||
distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
|
||||
dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
|
||||
install-exec install-data-am install-data install-am install \
|
||||
uninstall-am uninstall all-redirect all-am all installdirs \
|
||||
mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
stamp-h.in
|
||||
# libcapi20_la_LIBADD = $(LIBADD_DL)
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
* $Id$
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.15 2000/04/10 09:08:06 calle
|
||||
* capi20_wait_for_message will now return CapiReceiveQueueEmpty on
|
||||
* timeout and error.
|
||||
*
|
||||
* Revision 1.14 2000/04/07 16:06:09 calle
|
||||
* Bugfix: without devfs open where without NONBLOCK, ahhh.
|
||||
*
|
||||
|
@ -63,11 +67,6 @@
|
|||
#include <linux/capi.h>
|
||||
#include "capi20.h"
|
||||
|
||||
#define CAPIMSG_LEN(m) (m[0] | (m[1] << 8))
|
||||
#define CAPIMSG_COMMAND(m) (m[4])
|
||||
#define CAPIMSG_SUBCOMMAND(m) (m[5])
|
||||
#define CAPIMSG_DATALEN(m) (m[16] | (m[17]<<8))
|
||||
|
||||
static char capidevname[] = "/dev/capi20";
|
||||
static char capidevnamenew[] = "/dev/isdn/capi20";
|
||||
|
||||
|
|
|
@ -0,0 +1,134 @@
|
|||
/*
|
||||
* $Id$
|
||||
*
|
||||
* CAPI 2.0 Interface for Linux
|
||||
*
|
||||
* Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de)
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.2 2000/03/03 15:50:42 calle
|
||||
* - kernel CAPI:
|
||||
* - Changed parameter "param" in capi_signal from __u32 to void *.
|
||||
* - rewrote notifier handling in kcapi.c
|
||||
* - new notifier NCCI_UP and NCCI_DOWN
|
||||
* - User CAPI:
|
||||
* - /dev/capi20 is now a cloning device.
|
||||
* - middleware extentions prepared.
|
||||
* - capidrv.c
|
||||
* - locking of list operations and module count updates.
|
||||
*
|
||||
* Revision 1.1 1997/03/04 21:50:30 calle
|
||||
* Frirst version in isdn4linux
|
||||
*
|
||||
* Revision 2.2 1997/02/12 09:31:39 calle
|
||||
* new version
|
||||
*
|
||||
* Revision 1.1 1997/01/31 10:32:20 calle
|
||||
* Initial revision
|
||||
*
|
||||
*
|
||||
*/
|
||||
#ifndef __CAPICMD_H__
|
||||
#define __CAPICMD_H__
|
||||
|
||||
#define CAPI_MSG_BASELEN 8
|
||||
#define CAPI_DATA_B3_REQ_LEN (CAPI_MSG_BASELEN+4+4+2+2+2)
|
||||
#define CAPI_DATA_B3_RESP_LEN (CAPI_MSG_BASELEN+4+2)
|
||||
|
||||
/*----- CAPI commands -----*/
|
||||
#define CAPI_ALERT 0x01
|
||||
#define CAPI_CONNECT 0x02
|
||||
#define CAPI_CONNECT_ACTIVE 0x03
|
||||
#define CAPI_CONNECT_B3_ACTIVE 0x83
|
||||
#define CAPI_CONNECT_B3 0x82
|
||||
#define CAPI_CONNECT_B3_T90_ACTIVE 0x88
|
||||
#define CAPI_DATA_B3 0x86
|
||||
#define CAPI_DISCONNECT_B3 0x84
|
||||
#define CAPI_DISCONNECT 0x04
|
||||
#define CAPI_FACILITY 0x80
|
||||
#define CAPI_INFO 0x08
|
||||
#define CAPI_LISTEN 0x05
|
||||
#define CAPI_MANUFACTURER 0xff
|
||||
#define CAPI_RESET_B3 0x87
|
||||
#define CAPI_SELECT_B_PROTOCOL 0x41
|
||||
|
||||
/*----- CAPI subcommands -----*/
|
||||
|
||||
#define CAPI_REQ 0x80
|
||||
#define CAPI_CONF 0x81
|
||||
#define CAPI_IND 0x82
|
||||
#define CAPI_RESP 0x83
|
||||
|
||||
/*----- CAPI combined commands -----*/
|
||||
|
||||
#define CAPICMD(cmd,subcmd) (((cmd)<<8)|(subcmd))
|
||||
|
||||
#define CAPI_DISCONNECT_REQ CAPICMD(CAPI_DISCONNECT,CAPI_REQ)
|
||||
#define CAPI_DISCONNECT_CONF CAPICMD(CAPI_DISCONNECT,CAPI_CONF)
|
||||
#define CAPI_DISCONNECT_IND CAPICMD(CAPI_DISCONNECT,CAPI_IND)
|
||||
#define CAPI_DISCONNECT_RESP CAPICMD(CAPI_DISCONNECT,CAPI_RESP)
|
||||
|
||||
#define CAPI_ALERT_REQ CAPICMD(CAPI_ALERT,CAPI_REQ)
|
||||
#define CAPI_ALERT_CONF CAPICMD(CAPI_ALERT,CAPI_CONF)
|
||||
|
||||
#define CAPI_CONNECT_REQ CAPICMD(CAPI_CONNECT,CAPI_REQ)
|
||||
#define CAPI_CONNECT_CONF CAPICMD(CAPI_CONNECT,CAPI_CONF)
|
||||
#define CAPI_CONNECT_IND CAPICMD(CAPI_CONNECT,CAPI_IND)
|
||||
#define CAPI_CONNECT_RESP CAPICMD(CAPI_CONNECT,CAPI_RESP)
|
||||
|
||||
#define CAPI_CONNECT_ACTIVE_REQ CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_REQ)
|
||||
#define CAPI_CONNECT_ACTIVE_CONF CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_CONF)
|
||||
#define CAPI_CONNECT_ACTIVE_IND CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_IND)
|
||||
#define CAPI_CONNECT_ACTIVE_RESP CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_RESP)
|
||||
|
||||
#define CAPI_SELECT_B_PROTOCOL_REQ CAPICMD(CAPI_SELECT_B_PROTOCOL,CAPI_REQ)
|
||||
#define CAPI_SELECT_B_PROTOCOL_CONF CAPICMD(CAPI_SELECT_B_PROTOCOL,CAPI_CONF)
|
||||
|
||||
#define CAPI_CONNECT_B3_ACTIVE_REQ CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_REQ)
|
||||
#define CAPI_CONNECT_B3_ACTIVE_CONF CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_CONF)
|
||||
#define CAPI_CONNECT_B3_ACTIVE_IND CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_IND)
|
||||
#define CAPI_CONNECT_B3_ACTIVE_RESP CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_RESP)
|
||||
|
||||
#define CAPI_CONNECT_B3_REQ CAPICMD(CAPI_CONNECT_B3,CAPI_REQ)
|
||||
#define CAPI_CONNECT_B3_CONF CAPICMD(CAPI_CONNECT_B3,CAPI_CONF)
|
||||
#define CAPI_CONNECT_B3_IND CAPICMD(CAPI_CONNECT_B3,CAPI_IND)
|
||||
#define CAPI_CONNECT_B3_RESP CAPICMD(CAPI_CONNECT_B3,CAPI_RESP)
|
||||
|
||||
|
||||
#define CAPI_CONNECT_B3_T90_ACTIVE_IND CAPICMD(CAPI_CONNECT_B3_T90_ACTIVE,CAPI_IND)
|
||||
#define CAPI_CONNECT_B3_T90_ACTIVE_RESP CAPICMD(CAPI_CONNECT_B3_T90_ACTIVE,CAPI_RESP)
|
||||
|
||||
#define CAPI_DATA_B3_REQ CAPICMD(CAPI_DATA_B3,CAPI_REQ)
|
||||
#define CAPI_DATA_B3_CONF CAPICMD(CAPI_DATA_B3,CAPI_CONF)
|
||||
#define CAPI_DATA_B3_IND CAPICMD(CAPI_DATA_B3,CAPI_IND)
|
||||
#define CAPI_DATA_B3_RESP CAPICMD(CAPI_DATA_B3,CAPI_RESP)
|
||||
|
||||
#define CAPI_DISCONNECT_B3_REQ CAPICMD(CAPI_DISCONNECT_B3,CAPI_REQ)
|
||||
#define CAPI_DISCONNECT_B3_CONF CAPICMD(CAPI_DISCONNECT_B3,CAPI_CONF)
|
||||
#define CAPI_DISCONNECT_B3_IND CAPICMD(CAPI_DISCONNECT_B3,CAPI_IND)
|
||||
#define CAPI_DISCONNECT_B3_RESP CAPICMD(CAPI_DISCONNECT_B3,CAPI_RESP)
|
||||
|
||||
#define CAPI_RESET_B3_REQ CAPICMD(CAPI_RESET_B3,CAPI_REQ)
|
||||
#define CAPI_RESET_B3_CONF CAPICMD(CAPI_RESET_B3,CAPI_CONF)
|
||||
#define CAPI_RESET_B3_IND CAPICMD(CAPI_RESET_B3,CAPI_IND)
|
||||
#define CAPI_RESET_B3_RESP CAPICMD(CAPI_RESET_B3,CAPI_RESP)
|
||||
|
||||
#define CAPI_LISTEN_REQ CAPICMD(CAPI_LISTEN,CAPI_REQ)
|
||||
#define CAPI_LISTEN_CONF CAPICMD(CAPI_LISTEN,CAPI_CONF)
|
||||
|
||||
#define CAPI_MANUFACTURER_REQ CAPICMD(CAPI_MANUFACTURER,CAPI_REQ)
|
||||
#define CAPI_MANUFACTURER_CONF CAPICMD(CAPI_MANUFACTURER,CAPI_CONF)
|
||||
#define CAPI_MANUFACTURER_IND CAPICMD(CAPI_MANUFACTURER,CAPI_IND)
|
||||
#define CAPI_MANUFACTURER_RESP CAPICMD(CAPI_MANUFACTURER,CAPI_RESP)
|
||||
|
||||
#define CAPI_FACILITY_REQ CAPICMD(CAPI_FACILITY,CAPI_REQ)
|
||||
#define CAPI_FACILITY_CONF CAPICMD(CAPI_FACILITY,CAPI_CONF)
|
||||
#define CAPI_FACILITY_IND CAPICMD(CAPI_FACILITY,CAPI_IND)
|
||||
#define CAPI_FACILITY_RESP CAPICMD(CAPI_FACILITY,CAPI_RESP)
|
||||
|
||||
#define CAPI_INFO_REQ CAPICMD(CAPI_INFO,CAPI_REQ)
|
||||
#define CAPI_INFO_CONF CAPICMD(CAPI_INFO,CAPI_CONF)
|
||||
#define CAPI_INFO_IND CAPICMD(CAPI_INFO,CAPI_IND)
|
||||
#define CAPI_INFO_RESP CAPICMD(CAPI_INFO,CAPI_RESP)
|
||||
|
||||
#endif /* __CAPICMD_H__ */
|
|
@ -1,10 +1,12 @@
|
|||
#ifndef __CAPIUTIL_H__
|
||||
#define __CAPIUTIL_H__
|
||||
#ifndef __CAPIUTILS_H__
|
||||
#define __CAPIUTILS_H__
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <capicmd.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@ -102,6 +104,51 @@ typedef enum { CAPI_COMPOSE = 0, CAPI_DEFAULT = 1 } _cmstruct;
|
|||
#define CAPI_IND 0x82
|
||||
#define CAPI_RESP 0x83
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
#define CAPIMSG_BASELEN 8
|
||||
#define CAPIMSG_U8(m, off) (m[off])
|
||||
#define CAPIMSG_U16(m, off) (m[off]|(m[(off)+1]<<8))
|
||||
#define CAPIMSG_U32(m, off) (m[off]|(m[(off)+1]<<8)|(m[(off)+2]<<16)|(m[(off)+3]<<24))
|
||||
#define CAPIMSG_LEN(m) CAPIMSG_U16(m,0)
|
||||
#define CAPIMSG_APPID(m) CAPIMSG_U16(m,2)
|
||||
#define CAPIMSG_COMMAND(m) CAPIMSG_U8(m,4)
|
||||
#define CAPIMSG_SUBCOMMAND(m) CAPIMSG_U8(m,5)
|
||||
#define CAPIMSG_CMD(m) (((m[4])<<8)|(m[5]))
|
||||
#define CAPIMSG_MSGID(m) CAPIMSG_U16(m,6)
|
||||
#define CAPIMSG_CONTROLLER(m) (m[8] & 0x7f)
|
||||
#define CAPIMSG_CONTROL(m) CAPIMSG_U32(m, 8)
|
||||
#define CAPIMSG_NCCI(m) CAPIMSG_CONTROL(m)
|
||||
#define CAPIMSG_DATALEN(m) CAPIMSG_U16(m,16) /* DATA_B3_REQ */
|
||||
|
||||
static inline void capimsg_setu8(void *m, int off, _cbyte val)
|
||||
{
|
||||
((_cbyte *)m)[off] = val;
|
||||
}
|
||||
|
||||
static inline void capimsg_setu16(void *m, int off, _cword val)
|
||||
{
|
||||
((_cbyte *)m)[off] = val & 0xff;
|
||||
((_cbyte *)m)[off+1] = (val >> 8) & 0xff;
|
||||
}
|
||||
|
||||
static inline void capimsg_setu32(void *m, int off, _cdword val)
|
||||
{
|
||||
((_cbyte *)m)[off] = val & 0xff;
|
||||
((_cbyte *)m)[off+1] = (val >> 8) & 0xff;
|
||||
((_cbyte *)m)[off+2] = (val >> 16) & 0xff;
|
||||
((_cbyte *)m)[off+3] = (val >> 24) & 0xff;
|
||||
}
|
||||
|
||||
#define CAPIMSG_SETLEN(m, len) capimsg_setu16(m, 0, len)
|
||||
#define CAPIMSG_SETAPPID(m, applid) capimsg_setu16(m, 2, applid)
|
||||
#define CAPIMSG_SETCOMMAND(m,cmd) capimsg_setu8(m, 4, cmd)
|
||||
#define CAPIMSG_SETSUBCOMMAND(m, cmd) capimsg_setu8(m, 5, cmd)
|
||||
#define CAPIMSG_SETMSGID(m, msgid) capimsg_setu16(m, 6, msgid)
|
||||
#define CAPIMSG_SETCONTROL(m, contr) capimsg_setu32(m, 8, contr)
|
||||
#define CAPIMSG_SETDATALEN(m, len) capimsg_setu16(m, 16, len)
|
||||
|
||||
|
||||
/*
|
||||
* The _cmsg structure contains all possible CAPI 2.0 parameter.
|
||||
* All parameters are stored here first. The function capi_cmsg2message()
|
||||
|
@ -111,102 +158,91 @@ typedef enum { CAPI_COMPOSE = 0, CAPI_DEFAULT = 1 } _cmstruct;
|
|||
*/
|
||||
|
||||
typedef struct {
|
||||
/* Header */
|
||||
_cword ApplId;
|
||||
_cbyte Command;
|
||||
_cbyte Subcommand;
|
||||
_cword Messagenumber;
|
||||
/* Header */
|
||||
_cword ApplId;
|
||||
_cbyte Command;
|
||||
_cbyte Subcommand;
|
||||
_cword Messagenumber;
|
||||
|
||||
/* Parameter */
|
||||
union {
|
||||
_cdword adrController;
|
||||
_cdword adrPLCI;
|
||||
_cdword adrNCCI;
|
||||
} adr;
|
||||
/* Parameter */
|
||||
union {
|
||||
_cdword adrController;
|
||||
_cdword adrPLCI;
|
||||
_cdword adrNCCI;
|
||||
} adr;
|
||||
|
||||
_cmstruct AdditionalInfo;
|
||||
_cstruct B1configuration;
|
||||
_cword B1protocol;
|
||||
_cstruct B2configuration;
|
||||
_cword B2protocol;
|
||||
_cstruct B3configuration;
|
||||
_cword B3protocol;
|
||||
_cstruct BC;
|
||||
_cstruct BChannelinformation;
|
||||
_cmstruct BProtocol;
|
||||
_cstruct CalledPartyNumber;
|
||||
_cstruct CalledPartySubaddress;
|
||||
_cstruct CallingPartyNumber;
|
||||
_cstruct CallingPartySubaddress;
|
||||
_cdword CIPmask;
|
||||
_cdword CIPmask2;
|
||||
_cword CIPValue;
|
||||
_cdword Class;
|
||||
_cstruct ConnectedNumber;
|
||||
_cstruct ConnectedSubaddress;
|
||||
_cdword Data32;
|
||||
_cqword Data64;
|
||||
_cword DataHandle;
|
||||
_cword DataLength;
|
||||
_cstruct FacilityConfirmationParameter;
|
||||
_cstruct Facilitydataarray;
|
||||
_cstruct FacilityIndicationParameter;
|
||||
_cstruct FacilityRequestParameter;
|
||||
_cstruct FacilityResponseParameters;
|
||||
_cword FacilitySelector;
|
||||
_cword Flags;
|
||||
_cdword Function;
|
||||
_cstruct HLC;
|
||||
_cword Info;
|
||||
_cstruct InfoElement;
|
||||
_cdword InfoMask;
|
||||
_cword InfoNumber;
|
||||
_cstruct Keypadfacility;
|
||||
_cstruct LLC;
|
||||
_cstruct ManuData;
|
||||
_cdword ManuID;
|
||||
_cstruct NCPI;
|
||||
_cword Reason;
|
||||
_cword Reason_B3;
|
||||
_cword Reject;
|
||||
_cstruct Useruserdata;
|
||||
unsigned char *Data;
|
||||
_cmstruct AdditionalInfo;
|
||||
_cstruct B1configuration;
|
||||
_cword B1protocol;
|
||||
_cstruct B2configuration;
|
||||
_cword B2protocol;
|
||||
_cstruct B3configuration;
|
||||
_cword B3protocol;
|
||||
_cstruct BC;
|
||||
_cstruct BChannelinformation;
|
||||
_cmstruct BProtocol;
|
||||
_cstruct CalledPartyNumber;
|
||||
_cstruct CalledPartySubaddress;
|
||||
_cstruct CallingPartyNumber;
|
||||
_cstruct CallingPartySubaddress;
|
||||
_cdword CIPmask;
|
||||
_cdword CIPmask2;
|
||||
_cword CIPValue;
|
||||
_cdword Class;
|
||||
_cstruct ConnectedNumber;
|
||||
_cstruct ConnectedSubaddress;
|
||||
_cdword Data32;
|
||||
_cqword Data64;
|
||||
_cword DataHandle;
|
||||
_cword DataLength;
|
||||
_cstruct FacilityConfirmationParameter;
|
||||
_cstruct Facilitydataarray;
|
||||
_cstruct FacilityIndicationParameter;
|
||||
_cstruct FacilityRequestParameter;
|
||||
_cstruct FacilityResponseParameters;
|
||||
_cword FacilitySelector;
|
||||
_cword Flags;
|
||||
_cdword Function;
|
||||
_cstruct HLC;
|
||||
_cword Info;
|
||||
_cstruct InfoElement;
|
||||
_cdword InfoMask;
|
||||
_cword InfoNumber;
|
||||
_cstruct Keypadfacility;
|
||||
_cstruct LLC;
|
||||
_cstruct ManuData;
|
||||
_cdword ManuID;
|
||||
_cstruct NCPI;
|
||||
_cword Reason;
|
||||
_cword Reason_B3;
|
||||
_cword Reject;
|
||||
_cstruct Useruserdata;
|
||||
unsigned char *Data;
|
||||
|
||||
/* intern */
|
||||
unsigned l, p;
|
||||
unsigned char *par;
|
||||
_cbyte *m;
|
||||
|
||||
/* buffer to construct message */
|
||||
_cbyte buf[180];
|
||||
|
||||
/* intern */
|
||||
unsigned l,p;
|
||||
unsigned char *par;
|
||||
unsigned char *m;
|
||||
} _cmsg;
|
||||
|
||||
|
||||
#define capi_cmsg2message capi20_cmsg2message
|
||||
#define capi_message2cmsg capi20_message2cmsg
|
||||
|
||||
unsigned capi20_cmsg2message(_cmsg *cmsg, unsigned char *msg);
|
||||
|
||||
unsigned capi20_message2cmsg (_cmsg *cmsg, unsigned char *msg);
|
||||
/*
|
||||
* capi_cmsg2message() assembles the parameter from _cmsg to a CAPI 2.0
|
||||
* conform message
|
||||
*/
|
||||
#define capi20_cmsg2message capi_cmsg2message
|
||||
unsigned capi_cmsg2message(_cmsg *cmsg, unsigned char *msg);
|
||||
|
||||
/*
|
||||
* capi20_put_cmsg() works like capi20_put_message() but it converts the
|
||||
* _cmsg * first with capi20_cmsg2message(). Possible errors from
|
||||
* capi20_put_message() will be returned.
|
||||
* capi20_message2cmsg disassembles a CAPI message an writes the parameter
|
||||
* into _cmsg for easy access
|
||||
*/
|
||||
|
||||
#define CAPI_PUT_CMSG capi20_put_cmsg
|
||||
#define capi_put_cmsg capi20_put_cmsg
|
||||
|
||||
unsigned capi20_put_cmsg(_cmsg *cmsg);
|
||||
|
||||
/*
|
||||
* capi20_get_cmsg() works like capi20_get_message() and converts the
|
||||
* CAPI message * to a _cmsg with capi20_message2cmsg().
|
||||
* Possible errors from capi20_get_message() will be returned.
|
||||
*/
|
||||
|
||||
#define CAPI_GET_CMSG capi20_get_cmsg
|
||||
#define capi_get_cmsg capi20_get_cmsg
|
||||
|
||||
unsigned capi20_get_cmsg(_cmsg *cmsg, unsigned applid);
|
||||
#define capi20_message2cmsg capi20_message2cmsg
|
||||
unsigned capi_message2cmsg (_cmsg *cmsg, unsigned char *msg);
|
||||
|
||||
/*
|
||||
* capi20_cmsg_header() fills the _cmsg structure with default values,
|
||||
|
@ -214,21 +250,64 @@ unsigned capi20_get_cmsg(_cmsg *cmsg, unsigned applid);
|
|||
* sending the message.
|
||||
*/
|
||||
|
||||
#define CAPI_CMSG_HEADER capi20_cmsg_header
|
||||
#define capi_cmsg_header capi20_cmsg_header
|
||||
|
||||
unsigned capi20_cmsg_header (_cmsg *cmsg, unsigned _ApplId, _cbyte _Command, _cbyte _Subcommand, _cword _Messagenumber, _cdword _Controller);
|
||||
#define CAPI_CMSG_HEADER capi_cmsg_header
|
||||
#define capi20_cmsg_header capi_cmsg_header
|
||||
unsigned capi_cmsg_header (_cmsg *cmsg, unsigned _ApplId, _cbyte _Command, _cbyte _Subcommand, _cword _Messagenumber, _cdword _Controller);
|
||||
|
||||
/*
|
||||
* capi20_cmsg_answer() is used to answer indications. It changes the header
|
||||
* capi_cmsg_answer() is used to answer indications. It changes the header
|
||||
* of an indication to a response, and leaves all other parameters the same
|
||||
*/
|
||||
|
||||
#define capi_cmsg_answer capi20_cmsg_answer
|
||||
#define capi20_cmsg_answer capi_cmsg_answer
|
||||
|
||||
unsigned capi20_cmsg_answer (_cmsg *cmsg);
|
||||
static inline void capi_cmsg_answer(_cmsg * cmsg)
|
||||
{
|
||||
cmsg->Subcommand |= 0x01;
|
||||
}
|
||||
|
||||
/*----- defines to access specific parameter -----*/
|
||||
/*
|
||||
* capi_get_cmsg() works like capi20_get_message() and converts the
|
||||
* CAPI message * to a _cmsg with capi_message2cmsg().
|
||||
* Possible errors from capi20_get_message() will be returned.
|
||||
*/
|
||||
|
||||
#define CAPI_GET_CMSG capi_get_cmsg
|
||||
#define capi_get_cmsg capi_get_cmsg
|
||||
unsigned capi_get_cmsg(_cmsg *cmsg, unsigned applid);
|
||||
|
||||
/*
|
||||
* capi_put_cmsg() works like capi20_put_message() but it converts the
|
||||
* _cmsg * first with capi_cmsg2message(). Possible errors from
|
||||
* capi_put_message() will be returned.
|
||||
*/
|
||||
|
||||
#define CAPI_PUT_CMSG capi_put_cmsg
|
||||
#define capi20_put_cmsg capi_put_cmsg
|
||||
unsigned capi_put_cmsg(_cmsg *cmsg);
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Debugging / Tracing functions
|
||||
*/
|
||||
|
||||
/*
|
||||
* capi_info2str generated a readable string for Capi2.0 reasons.
|
||||
*/
|
||||
#define capi20_info2str capi_info2str
|
||||
char *capi_info2str(_cword reason);
|
||||
|
||||
#define capi20_cmd2str capi_cmd2str
|
||||
char *capi_cmd2str(_cbyte cmd, _cbyte subcmd);
|
||||
|
||||
#define capi20_cmsg2str capi_cmsg2str
|
||||
char *capi_cmsg2str(_cmsg * cmsg);
|
||||
|
||||
#define capi20_message2str capi_message2str
|
||||
char *capi_message2str(_cbyte * msg);
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
#define ALERT_REQ_PLCI(x) ((x)->adr.adrPLCI)
|
||||
/* Physical Link Connection Identifier */
|
||||
|
@ -960,9 +1039,325 @@ unsigned MANUFACTURER_RESP (_cmsg *cmsg, _cword ApplId, _cword Messagenumber
|
|||
unsigned RESET_B3_RESP (_cmsg *cmsg, _cword ApplId, _cword Messagenumber
|
||||
,_cdword adr);
|
||||
|
||||
/*-----------------------------------------------------------------------*/
|
||||
|
||||
static inline void capi_fill_CONNECT_B3_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cstruct NCPI)
|
||||
{
|
||||
capi_cmsg_header(cmsg, ApplId, 0x82, 0x80, Messagenumber, adr);
|
||||
cmsg->NCPI = NCPI;
|
||||
}
|
||||
|
||||
static inline void capi_fill_FACILITY_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cword FacilitySelector,
|
||||
_cstruct FacilityRequestParameter)
|
||||
{
|
||||
capi_cmsg_header(cmsg, ApplId, 0x80, 0x80, Messagenumber, adr);
|
||||
cmsg->FacilitySelector = FacilitySelector;
|
||||
cmsg->FacilityRequestParameter = FacilityRequestParameter;
|
||||
}
|
||||
|
||||
static inline void capi_fill_INFO_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cstruct CalledPartyNumber,
|
||||
_cstruct BChannelinformation,
|
||||
_cstruct Keypadfacility,
|
||||
_cstruct Useruserdata,
|
||||
_cstruct Facilitydataarray)
|
||||
{
|
||||
capi_cmsg_header(cmsg, ApplId, 0x08, 0x80, Messagenumber, adr);
|
||||
cmsg->CalledPartyNumber = CalledPartyNumber;
|
||||
cmsg->BChannelinformation = BChannelinformation;
|
||||
cmsg->Keypadfacility = Keypadfacility;
|
||||
cmsg->Useruserdata = Useruserdata;
|
||||
cmsg->Facilitydataarray = Facilitydataarray;
|
||||
}
|
||||
|
||||
static inline void capi_fill_LISTEN_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cdword InfoMask,
|
||||
_cdword CIPmask,
|
||||
_cdword CIPmask2,
|
||||
_cstruct CallingPartyNumber,
|
||||
_cstruct CallingPartySubaddress)
|
||||
{
|
||||
capi_cmsg_header(cmsg, ApplId, 0x05, 0x80, Messagenumber, adr);
|
||||
cmsg->InfoMask = InfoMask;
|
||||
cmsg->CIPmask = CIPmask;
|
||||
cmsg->CIPmask2 = CIPmask2;
|
||||
cmsg->CallingPartyNumber = CallingPartyNumber;
|
||||
cmsg->CallingPartySubaddress = CallingPartySubaddress;
|
||||
}
|
||||
|
||||
static inline void capi_fill_ALERT_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cstruct BChannelinformation,
|
||||
_cstruct Keypadfacility,
|
||||
_cstruct Useruserdata,
|
||||
_cstruct Facilitydataarray)
|
||||
{
|
||||
capi_cmsg_header(cmsg, ApplId, 0x01, 0x80, Messagenumber, adr);
|
||||
cmsg->BChannelinformation = BChannelinformation;
|
||||
cmsg->Keypadfacility = Keypadfacility;
|
||||
cmsg->Useruserdata = Useruserdata;
|
||||
cmsg->Facilitydataarray = Facilitydataarray;
|
||||
}
|
||||
|
||||
static inline void capi_fill_CONNECT_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cword CIPValue,
|
||||
_cstruct CalledPartyNumber,
|
||||
_cstruct CallingPartyNumber,
|
||||
_cstruct CalledPartySubaddress,
|
||||
_cstruct CallingPartySubaddress,
|
||||
_cword B1protocol,
|
||||
_cword B2protocol,
|
||||
_cword B3protocol,
|
||||
_cstruct B1configuration,
|
||||
_cstruct B2configuration,
|
||||
_cstruct B3configuration,
|
||||
_cstruct BC,
|
||||
_cstruct LLC,
|
||||
_cstruct HLC,
|
||||
_cstruct BChannelinformation,
|
||||
_cstruct Keypadfacility,
|
||||
_cstruct Useruserdata,
|
||||
_cstruct Facilitydataarray)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x02, 0x80, Messagenumber, adr);
|
||||
cmsg->CIPValue = CIPValue;
|
||||
cmsg->CalledPartyNumber = CalledPartyNumber;
|
||||
cmsg->CallingPartyNumber = CallingPartyNumber;
|
||||
cmsg->CalledPartySubaddress = CalledPartySubaddress;
|
||||
cmsg->CallingPartySubaddress = CallingPartySubaddress;
|
||||
cmsg->B1protocol = B1protocol;
|
||||
cmsg->B2protocol = B2protocol;
|
||||
cmsg->B3protocol = B3protocol;
|
||||
cmsg->B1configuration = B1configuration;
|
||||
cmsg->B2configuration = B2configuration;
|
||||
cmsg->B3configuration = B3configuration;
|
||||
cmsg->BC = BC;
|
||||
cmsg->LLC = LLC;
|
||||
cmsg->HLC = HLC;
|
||||
cmsg->BChannelinformation = BChannelinformation;
|
||||
cmsg->Keypadfacility = Keypadfacility;
|
||||
cmsg->Useruserdata = Useruserdata;
|
||||
cmsg->Facilitydataarray = Facilitydataarray;
|
||||
}
|
||||
|
||||
static inline void capi_fill_DATA_B3_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
unsigned char *Data,
|
||||
_cword DataLength,
|
||||
_cword DataHandle,
|
||||
_cword Flags)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x86, 0x80, Messagenumber, adr);
|
||||
cmsg->Data = Data;
|
||||
cmsg->DataLength = DataLength;
|
||||
cmsg->DataHandle = DataHandle;
|
||||
cmsg->Flags = Flags;
|
||||
}
|
||||
|
||||
static inline void capi_fill_DISCONNECT_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cstruct BChannelinformation,
|
||||
_cstruct Keypadfacility,
|
||||
_cstruct Useruserdata,
|
||||
_cstruct Facilitydataarray)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x04, 0x80, Messagenumber, adr);
|
||||
cmsg->BChannelinformation = BChannelinformation;
|
||||
cmsg->Keypadfacility = Keypadfacility;
|
||||
cmsg->Useruserdata = Useruserdata;
|
||||
cmsg->Facilitydataarray = Facilitydataarray;
|
||||
}
|
||||
|
||||
static inline void capi_fill_DISCONNECT_B3_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cstruct NCPI)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x84, 0x80, Messagenumber, adr);
|
||||
cmsg->NCPI = NCPI;
|
||||
}
|
||||
|
||||
static inline void capi_fill_MANUFACTURER_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cdword ManuID,
|
||||
_cdword Class,
|
||||
_cdword Function,
|
||||
_cstruct ManuData)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0xff, 0x80, Messagenumber, adr);
|
||||
cmsg->ManuID = ManuID;
|
||||
cmsg->Class = Class;
|
||||
cmsg->Function = Function;
|
||||
cmsg->ManuData = ManuData;
|
||||
}
|
||||
|
||||
static inline void capi_fill_RESET_B3_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cstruct NCPI)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x87, 0x80, Messagenumber, adr);
|
||||
cmsg->NCPI = NCPI;
|
||||
}
|
||||
|
||||
static inline void capi_fill_SELECT_B_PROTOCOL_REQ(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cword B1protocol,
|
||||
_cword B2protocol,
|
||||
_cword B3protocol,
|
||||
_cstruct B1configuration,
|
||||
_cstruct B2configuration,
|
||||
_cstruct B3configuration)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x41, 0x80, Messagenumber, adr);
|
||||
cmsg->B1protocol = B1protocol;
|
||||
cmsg->B2protocol = B2protocol;
|
||||
cmsg->B3protocol = B3protocol;
|
||||
cmsg->B1configuration = B1configuration;
|
||||
cmsg->B2configuration = B2configuration;
|
||||
cmsg->B3configuration = B3configuration;
|
||||
}
|
||||
|
||||
static inline void capi_fill_CONNECT_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cword Reject,
|
||||
_cword B1protocol,
|
||||
_cword B2protocol,
|
||||
_cword B3protocol,
|
||||
_cstruct B1configuration,
|
||||
_cstruct B2configuration,
|
||||
_cstruct B3configuration,
|
||||
_cstruct ConnectedNumber,
|
||||
_cstruct ConnectedSubaddress,
|
||||
_cstruct LLC,
|
||||
_cstruct BChannelinformation,
|
||||
_cstruct Keypadfacility,
|
||||
_cstruct Useruserdata,
|
||||
_cstruct Facilitydataarray)
|
||||
{
|
||||
capi_cmsg_header(cmsg, ApplId, 0x02, 0x83, Messagenumber, adr);
|
||||
cmsg->Reject = Reject;
|
||||
cmsg->B1protocol = B1protocol;
|
||||
cmsg->B2protocol = B2protocol;
|
||||
cmsg->B3protocol = B3protocol;
|
||||
cmsg->B1configuration = B1configuration;
|
||||
cmsg->B2configuration = B2configuration;
|
||||
cmsg->B3configuration = B3configuration;
|
||||
cmsg->ConnectedNumber = ConnectedNumber;
|
||||
cmsg->ConnectedSubaddress = ConnectedSubaddress;
|
||||
cmsg->LLC = LLC;
|
||||
cmsg->BChannelinformation = BChannelinformation;
|
||||
cmsg->Keypadfacility = Keypadfacility;
|
||||
cmsg->Useruserdata = Useruserdata;
|
||||
cmsg->Facilitydataarray = Facilitydataarray;
|
||||
}
|
||||
|
||||
static inline void capi_fill_CONNECT_ACTIVE_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x03, 0x83, Messagenumber, adr);
|
||||
}
|
||||
|
||||
static inline void capi_fill_CONNECT_B3_ACTIVE_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x83, 0x83, Messagenumber, adr);
|
||||
}
|
||||
|
||||
static inline void capi_fill_CONNECT_B3_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cword Reject,
|
||||
_cstruct NCPI)
|
||||
{
|
||||
capi_cmsg_header(cmsg, ApplId, 0x82, 0x83, Messagenumber, adr);
|
||||
cmsg->Reject = Reject;
|
||||
cmsg->NCPI = NCPI;
|
||||
}
|
||||
|
||||
static inline void capi_fill_CONNECT_B3_T90_ACTIVE_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x88, 0x83, Messagenumber, adr);
|
||||
}
|
||||
|
||||
static inline void capi_fill_DATA_B3_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cword DataHandle)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x86, 0x83, Messagenumber, adr);
|
||||
cmsg->DataHandle = DataHandle;
|
||||
}
|
||||
|
||||
static inline void capi_fill_DISCONNECT_B3_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x84, 0x83, Messagenumber, adr);
|
||||
}
|
||||
|
||||
static inline void capi_fill_DISCONNECT_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x04, 0x83, Messagenumber, adr);
|
||||
}
|
||||
|
||||
static inline void capi_fill_FACILITY_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cword FacilitySelector)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x80, 0x83, Messagenumber, adr);
|
||||
cmsg->FacilitySelector = FacilitySelector;
|
||||
}
|
||||
|
||||
static inline void capi_fill_INFO_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x08, 0x83, Messagenumber, adr);
|
||||
}
|
||||
|
||||
static inline void capi_fill_MANUFACTURER_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr,
|
||||
_cdword ManuID,
|
||||
_cdword Class,
|
||||
_cdword Function,
|
||||
_cstruct ManuData)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0xff, 0x83, Messagenumber, adr);
|
||||
cmsg->ManuID = ManuID;
|
||||
cmsg->Class = Class;
|
||||
cmsg->Function = Function;
|
||||
cmsg->ManuData = ManuData;
|
||||
}
|
||||
|
||||
static inline void capi_fill_RESET_B3_RESP(_cmsg * cmsg, _cword ApplId, _cword Messagenumber,
|
||||
_cdword adr)
|
||||
{
|
||||
|
||||
capi_cmsg_header(cmsg, ApplId, 0x87, 0x83, Messagenumber, adr);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __CAPIUTIL_H__ */
|
||||
#endif /* __CAPIUTILS_H__ */
|
||||
|
|
|
@ -702,7 +702,7 @@ fi
|
|||
|
||||
PACKAGE=libcapi20
|
||||
|
||||
VERSION=2.0.4
|
||||
VERSION=2.0.5
|
||||
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
|
||||
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_INIT(capi20.c)
|
||||
AM_INIT_AUTOMAKE(libcapi20,2.0.4)
|
||||
AM_INIT_AUTOMAKE(libcapi20,2.0.5)
|
||||
AC_PREFIX_DEFAULT(/usr)
|
||||
|
||||
dnl Checks for programs.
|
||||
|
|
1146
capi20/convert.c
1146
capi20/convert.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue