aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/isdn/INTERFACE.CAPI
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/isdn/INTERFACE.CAPI')
-rw-r--r--Documentation/isdn/INTERFACE.CAPI20
1 files changed, 13 insertions, 7 deletions
diff --git a/Documentation/isdn/INTERFACE.CAPI b/Documentation/isdn/INTERFACE.CAPI
index 8947ffcda16e..786d619b36e5 100644
--- a/Documentation/isdn/INTERFACE.CAPI
+++ b/Documentation/isdn/INTERFACE.CAPI
@@ -3,6 +3,11 @@ Kernel CAPI Interface to Hardware Drivers
3 3
41. Overview 41. Overview
5 5
6From the CAPI 2.0 specification:
7COMMON-ISDN-API (CAPI) is an application programming interface standard used
8to access ISDN equipment connected to basic rate interfaces (BRI) and primary
9rate interfaces (PRI).
10
6Kernel CAPI operates as a dispatching layer between CAPI applications and CAPI 11Kernel CAPI operates as a dispatching layer between CAPI applications and CAPI
7hardware drivers. Hardware drivers register ISDN devices (controllers, in CAPI 12hardware drivers. Hardware drivers register ISDN devices (controllers, in CAPI
8lingo) with Kernel CAPI to indicate their readiness to provide their service 13lingo) with Kernel CAPI to indicate their readiness to provide their service
@@ -12,6 +17,9 @@ application registration to an available device, forwarding it to the
12corresponding hardware driver. Kernel CAPI then forwards CAPI messages in both 17corresponding hardware driver. Kernel CAPI then forwards CAPI messages in both
13directions between the application and the hardware driver. 18directions between the application and the hardware driver.
14 19
20Format and semantics of CAPI messages are specified in the CAPI 2.0 standard.
21This standard is freely available from http://www.capi.org.
22
15 23
162. Driver and Device Registration 242. Driver and Device Registration
17 25
@@ -53,12 +61,10 @@ open() operation on regular files or character devices.
53After a successful return from register_appl(), CAPI messages from the 61After a successful return from register_appl(), CAPI messages from the
54application may be passed to the driver for the device via calls to the 62application may be passed to the driver for the device via calls to the
55send_message() callback function. The CAPI message to send is stored in the 63send_message() callback function. The CAPI message to send is stored in the
56data portion of a skb. Conversely, the driver may call Kernel CAPI's 64data portion of an skb. Conversely, the driver may call Kernel CAPI's
57capi_ctr_handle_message() function to pass a received CAPI message to Kernel 65capi_ctr_handle_message() function to pass a received CAPI message to Kernel
58CAPI for forwarding to an application, specifying its ApplID. 66CAPI for forwarding to an application, specifying its ApplID.
59 67
60Format and semantics of CAPI messages are specified in the CAPI 2.0 standard.
61
62Deregistration requests (CAPI operation CAPI_RELEASE) from applications are 68Deregistration requests (CAPI operation CAPI_RELEASE) from applications are
63forwarded as calls to the release_appl() callback function, passing the same 69forwarded as calls to the release_appl() callback function, passing the same
64ApplID as with register_appl(). After return from release_appl(), no CAPI 70ApplID as with register_appl(). After return from release_appl(), no CAPI
@@ -75,9 +81,9 @@ the following non-private fields, all to be set by the driver before calling
75register_capi_driver(): 81register_capi_driver():
76 82
77char name[32] 83char name[32]
78 the name of the driver, as a zero terminated ASCII string 84 the name of the driver, as a zero-terminated ASCII string
79char revision[32] 85char revision[32]
80 the revision number of the driver, as a zero terminated ASCII string 86 the revision number of the driver, as a zero-terminated ASCII string
81int (*add_card)(struct capi_driver *driver, capicardparams *data) 87int (*add_card)(struct capi_driver *driver, capicardparams *data)
82 a callback function pointer (may be NULL) 88 a callback function pointer (may be NULL)
83 89
@@ -100,10 +106,10 @@ void *driverdata
100 an opaque pointer to driver specific data, not touched by Kernel CAPI 106 an opaque pointer to driver specific data, not touched by Kernel CAPI
101 107
102char name[32] 108char name[32]
103 the name of the controller, as a zero terminated ASCII string 109 the name of the controller, as a zero-terminated ASCII string
104 110
105char *driver_name 111char *driver_name
106 the name of the driver, as a zero terminated ASCII string 112 the name of the driver, as a zero-terminated ASCII string
107 113
108int (*load_firmware)(struct capi_ctr *ctrlr, capiloaddata *ldata) 114int (*load_firmware)(struct capi_ctr *ctrlr, capiloaddata *ldata)
109 (optional) pointer to a callback function for sending firmware and 115 (optional) pointer to a callback function for sending firmware and