About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / isdn / INTERFACE




Custom Search

Based on kernel version 3.15.4. Page generated on 2014-07-07 09:03 EST.

1	$Id: INTERFACE,v 1.15.8.2 2001/03/13 16:17:07 kai Exp $
2	
3	Description of the Interface between Linklevel and Hardwarelevel
4	  of isdn4linux:
5	
6	
7	  The Communication between Linklevel (LL) and Hardwarelevel (HL)
8	  is based on the struct isdn_if (defined in isdnif.h).
9	
10	  An HL-driver can register itself at LL by calling the function
11	  register_isdn() with a pointer to that struct. Prior to that, it has
12	  to preset some of the fields of isdn_if. The LL sets the rest of
13	  the fields. All further communication is done via callbacks using
14	  the function-pointers defined in isdn_if.
15	
16	  Changes/Version numbering:
17	
18	  During development of the ISDN subsystem, several changes have been
19	  made to the interface. Before it went into kernel, the package
20	  had a unique version number. The last version, distributed separately
21	  was 0.7.4. When the subsystem went into kernel, every functional unit
22	  got a separate version number. These numbers are shown at initialization,
23	  separated by slashes:
24	
25	     c.c/t.t/n.n/p.p/a.a/v.v
26	
27	  where
28	
29	   c.c is the revision of the common code.
30	   t.t is the revision of the tty related code.
31	   n.n is the revision of the network related code.
32	   p.p is the revision of the ppp related code.
33	   a.a is the revision of the audio related code.
34	   v.v is the revision of the V.110 related code.
35	
36	  Changes in this document are marked with '***CHANGEx' where x representing
37	  the version number. If that number starts with 0, it refers to the old,
38	  separately distributed package. If it starts with one of the letters
39	  above, it refers to the revision of the corresponding module. 
40	  ***CHANGEIx refers to the revision number of the isdnif.h  
41	
42	1. Description of the fields of isdn_if:
43	
44	  int channels;
45	
46	    This field has to be set by the HL-driver to the number of channels
47	    supported prior to calling register_isdn(). Upon return of the call,
48	    the LL puts an id there, which has to be used by the HL-driver when
49	    invoking the other callbacks.
50	
51	  int maxbufsize;
52	
53	    ***CHANGE0.6: New since this version.
54	
55	    Also to be preset by the HL-driver. With this value the HL-driver
56	    tells the LL the maximum size of a data-packet it will accept. 
57	
58	  unsigned long features;
59	
60	    To be preset by the HL-driver. Using this field, the HL-driver
61	    announces the features supported. At the moment this is limited to
62	    report the supported layer2 and layer3-protocols. For setting this
63	    field the constants ISDN_FEATURE..., declared in isdnif.h have to be
64	    used.
65	
66	    ***CHANGE0.7.1: The line type (1TR6, EDSS1) has to be set.
67	
68	  unsigned short hl_hdrlen;
69	
70	    ***CHANGE0.7.4: New field.
71	
72	    To be preset by the HL-driver, if it supports sk_buff's. The driver
73	    should put here the amount of additional space needed in sk_buff's for
74	    its internal purposes. Drivers not supporting sk_buff's should 
75	    initialize this field to 0.
76	
77	  void (*rcvcallb_skb)(int, int, struct sk_buff *)
78	
79	    ***CHANGE0.7.4: New field.
80	
81	    This field will be set by LL. The HL-driver delivers received data-
82	    packets by calling this function. Upon calling, the HL-driver must
83	    already have its private data pulled off the head of the sk_buff.
84	
85	    Parameter:
86	      int              driver-Id
87	      int              Channel-number locally to the driver. (starting with 0)
88	      struct sk_buff * Pointer to sk_buff, containing received data.
89	
90	  int (*statcallb)(isdn_ctrl*);
91	
92	    This field will be set by LL. This function has to be called by the
93	    HL-driver for signaling status-changes or other events to the LL.
94	
95	    Parameter:
96	      isdn_ctrl*
97	
98	      The struct isdn_ctrl also defined in isdn_if. The exact meanings of its
99	      fields are described together with the descriptions of the possible
100	      events. Here is only a short description of the fields:
101	
102	        driver  = driver Id.
103	        command = event-type. (one of the constants ISDN_STAT_...)
104	        arg     = depends on event-type.
105	        num     = depends on event-type.
106	
107	    Returnvalue:
108	      0 on success, else -1
109	
110	  int (*command)(isdn_ctrl*);
111	
112	    This field has to be preset by the HL-driver. It points to a function,
113	    to be called by LL to perform functions like dialing, B-channel
114	    setup, etc. The exact meaning of the parameters is described with the
115	    descriptions of the possible commands.
116	
117	    Parameter:
118	      isdn_ctrl*
119	        driver  = driver-Id
120	        command = command to perform. (one of the constants ISDN_CMD_...)
121	        arg     = depends on command.
122	        num     = depends on command.
123	    
124	    Returnvalue:
125	      >=0 on success, else error-code (-ENODEV etc.)
126	
127	  int (*writebuf_skb)(int, int, int, struct sk_buff *)
128	
129	    ***CHANGE0.7.4: New field.
130	    ***CHANGEI.1.21: New field.
131	
132	    This field has to be preset by the HL-driver. The given function will
133	    be called by the LL for delivering data to be send via B-Channel.
134	
135	 
136	    Parameter:
137	      int              driver-Id ***CHANGE0.7.4: New parameter.
138	      int              channel-number locally to the HL-driver. (starts with 0)
139	      int	       ack ***ChangeI1.21: New parameter
140			       If this is !0, the driver has to signal the delivery
141			       by sending an ISDN_STAT_BSENT. If this is 0, the driver
142			       MUST NOT send an ISDN_STAT_BSENT.
143	      struct sk_buff * Pointer to sk_buff containing data to be send via
144	                       B-channel.
145	
146	    Returnvalue:
147	      Length of data accepted on success, else error-code (-EINVAL on
148	      oversized packets etc.)
149	
150	  int (*writecmd)(u_char*, int, int, int, int);
151	
152	    This field has to be preset by the HL-driver. The given function will be
153	    called to perform write-requests on /dev/isdnctrl (i.e. sending commands
154	    to the card) The data-format is hardware-specific. This function is
155	    intended for debugging only. It is not necessary for normal operation
156	    and never will be called by the tty-emulation- or network-code. If
157	    this function is not supported, the driver has to set NULL here.
158	
159	    Parameter:
160	      u_char* pointer to data.
161	      int     length of data.
162	      int     flag: 0 = call from within kernel-space. (HL-driver must use
163	                        memcpy, may NOT use schedule())
164	                    1 = call from user-space. (HL-driver must use
165	                        memcpy_fromfs, use of schedule() allowed)
166	      int     driver-Id.
167	      int     channel-number locally to the HL-driver. (starts with 0)
168	
169	***CHANGEI1.14: The driver-Id and channel-number are new since this revision.
170	
171	    Returnvalue:
172	      Length of data accepted on success, else error-code (-EINVAL etc.)
173	
174	  int (*readstat)(u_char*, int, int, int, int);
175	
176	    This field has to be preset by the HL-driver. The given function will be
177	    called to perform read-requests on /dev/isdnctrl (i.e. reading replies
178	    from the card) The data-format is hardware-specific. This function is
179	    intended for debugging only. It is not necessary for normal operation
180	    and never will be called by the tty-emulation- or network-code. If
181	    this function is not supported, the driver has to set NULL here.
182	
183	    Parameter:
184	      u_char* pointer to data.
185	      int     length of data.
186	      int     flag: 0 = call from within kernel-space. (HL-driver must use
187	                        memcpy, may NOT use schedule())
188	                    1 = call from user-space. (HL-driver must use
189	                        memcpy_fromfs, use of schedule() allowed)
190	      int     driver-Id.
191	      int     channel-number locally to the HL-driver. (starts with 0)
192	
193	***CHANGEI1.14: The driver-Id and channel-number are new since this revision.
194	
195	    Returnvalue:
196	      Length of data on success, else error-code (-EINVAL etc.)
197	
198	  char id[20];
199	       ***CHANGE0.7: New since this version.
200	
201	   This string has to be preset by the HL-driver. Its purpose is for
202	   identification of the driver by the user. Eg.: it is shown in the
203	   status-info of /dev/isdninfo. Furthermore it is used as Id for binding
204	   net-interfaces to a specific channel. If a string of length zero is
205	   given, upon return, isdn4linux will replace it by a generic name. (line0,
206	   line1 etc.) It is recommended to make this string configurable during
207	   module-load-time. (copy a global variable to this string.) For doing that,
208	   modules 1.2.8 or newer are necessary.
209	
210	2. Description of the commands, a HL-driver has to support:
211	
212	   All commands will be performed by calling the function command() described
213	   above from within the LL. The field command of the struct-parameter will
214	   contain the desired command, the field driver is always set to the
215	   appropriate driver-Id.
216	
217	   Until now, the following commands are defined:
218	
219	***CHANGEI1.34: The parameter "num" has been replaced by a union "parm" containing
220	                the old "num" and a new setup_type struct used for ISDN_CMD_DIAL
221	                and ISDN_STAT_ICALL callback.
222	
223	   ISDN_CMD_IOCTL:
224	
225	     This command is intended for performing ioctl-calls for configuring
226	     hardware or similar purposes (setting port-addresses, loading firmware
227	     etc.) For this purpose, in the LL all ioctl-calls with an argument
228	     >= IIOCDRVCTL (0x100) will be handed transparently to this
229	     function after subtracting 0x100 and placing the result in arg.
230	     Example:
231	       If a userlevel-program calls ioctl(0x101,...) the function gets
232	       called with the field command set to 1.
233	
234	     Parameter:
235	       driver   = driver-Id.
236	       command  = ISDN_CMD_IOCTL
237	       arg      = Original ioctl-cmd - IIOCDRVCTL
238	       parm.num = first bytes filled with (unsigned long)arg
239	   
240	     Returnvalue:
241	       Depending on driver.
242	
243	  
244	  ISDN_CMD_DIAL:
245	
246	    This command is used to tell the HL-driver it should dial a given
247	    number.
248	
249	    Parameter:
250	      driver      = driver-Id.
251	      command     = ISDN_CMD_DIAL
252	      arg         = channel-number locally to the driver. (starting with 0)
253	      
254	      parm.setup.phone  = An ASCII-String containing the number to dial.
255	      parm.setup.eazmsn = An ASCII-Sting containing the own EAZ or MSN.
256	      parm.setup.si1    = The Service-Indicator.
257	      parm.setup.si2    = Additional Service-Indicator.
258	
259	                    If the Line has been designed as SPV (a special german
260	                    feature, meaning semi-leased-line) the phone has to
261	                    start with an "S".
262	      ***CHANGE0.6: In previous versions the EAZ has been given in the
263	                    highbyte of arg.
264	    ***CHANGE0.7.1: New since this version: ServiceIndicator and AddInfo.
265	
266	  ISDN_CMD_ACCEPTD:
267	
268	    With this command, the HL-driver is told to accept a D-Channel-setup.
269	    (Response to an incoming call)
270	
271	    Parameter:
272	      driver      = driver-Id.
273	      command     = ISDN_CMD_ACCEPTD
274	      arg         = channel-number locally to the driver. (starting with 0)
275	      parm        = unused.
276	
277	  ISDN_CMD_ACCEPTB:
278	
279	    With this command, the HL-driver is told to perform a B-Channel-setup.
280	    (after establishing D-Channel-Connection)
281	
282	    Parameter:
283	      driver      = driver-Id.
284	      command     = ISDN_CMD_ACCEPTB
285	      arg         = channel-number locally to the driver. (starting with 0)
286	      parm        = unused.
287	
288	  ISDN_CMD_HANGUP:
289	
290	    With this command, the HL-driver is told to hangup (B-Channel if
291	    established first, then D-Channel). This command is also used for
292	    actively rejecting an incoming call.
293	
294	    Parameter:
295	      driver      = driver-Id.
296	      command     = ISDN_CMD_HANGUP
297	      arg         = channel-number locally to the driver. (starting with 0)
298	      parm        = unused.
299	
300	  ISDN_CMD_CLREAZ:
301	
302	    With this command, the HL-driver is told not to signal incoming
303	    calls to the LL.
304	
305	    Parameter:
306	      driver      = driver-Id.
307	      command     = ISDN_CMD_CLREAZ
308	      arg         = channel-number locally to the driver. (starting with 0)
309	      parm        = unused.
310	
311	  ISDN_CMD_SETEAZ:
312	
313	    With this command, the HL-driver is told to signal incoming calls for
314	    the given EAZs/MSNs to the LL.
315	
316	    Parameter:
317	      driver      = driver-Id.
318	      command     = ISDN_CMD_SETEAZ
319	      arg         = channel-number locally to the driver. (starting with 0)
320	      parm.num    = ASCII-String, containing the desired EAZ's/MSN's
321	                    (comma-separated). If an empty String is given, the
322	                    HL-driver should respond to ALL incoming calls,
323	                    regardless of the destination-address.
324	      ***CHANGE0.6: New since this version the "empty-string"-feature.
325	
326	  ISDN_CMD_GETEAZ: (currently unused)
327	
328	    With this command, the HL-driver is told to report the current setting
329	    given with ISDN_CMD_SETEAZ.
330	
331	    Parameter:
332	      driver      = driver-Id.
333	      command     = ISDN_CMD_GETEAZ
334	      arg         = channel-number locally to the driver. (starting with 0)
335	      parm.num    = ASCII-String, containing the current EAZ's/MSN's
336	
337	  ISDN_CMD_SETSIL: (currently unused)
338	
339	    With this command, the HL-driver is told to signal only incoming
340	    calls with the given Service-Indicators.
341	
342	    Parameter:
343	      driver      = driver-Id.
344	      command     = ISDN_CMD_SETSIL
345	      arg         = channel-number locally to the driver. (starting with 0)
346	      parm.num    = ASCII-String, containing the desired Service-Indicators.
347	
348	  ISDN_CMD_GETSIL: (currently unused)
349	
350	    With this command, the HL-driver is told to return the current
351	    Service-Indicators it will respond to.
352	
353	    Parameter:
354	      driver      = driver-Id.
355	      command     = ISDN_CMD_SETSIL
356	      arg         = channel-number locally to the driver. (starting with 0)
357	      parm.num    = ASCII-String, containing the current Service-Indicators.
358	
359	  ISDN_CMD_SETL2:
360	
361	    With this command, the HL-driver is told to select the given Layer-2-
362	    protocol. This command is issued by the LL prior to ISDN_CMD_DIAL or
363	    ISDN_CMD_ACCEPTD.
364	
365	
366	    Parameter:
367	      driver      = driver-Id.
368	      command     = ISDN_CMD_SETL2
369	      arg         = channel-number locally to the driver. (starting with 0)
370	                    logical or'ed with (protocol-Id << 8)
371	                    protocol-Id is one of the constants ISDN_PROTO_L2...
372	      parm        = unused.
373	
374	  ISDN_CMD_GETL2: (currently unused)
375	
376	    With this command, the HL-driver is told to return the current
377	    setting of the Layer-2-protocol.
378	
379	    Parameter:
380	      driver      = driver-Id.
381	      command     = ISDN_CMD_GETL2
382	      arg         = channel-number locally to the driver. (starting with 0)
383	      parm        = unused.
384	    Returnvalue:
385	      current protocol-Id (one of the constants ISDN_L2_PROTO)
386	
387	  ISDN_CMD_SETL3:
388	
389	    With this command, the HL-driver is told to select the given Layer-3-
390	    protocol. This command is issued by the LL prior to ISDN_CMD_DIAL or
391	    ISDN_CMD_ACCEPTD.
392	
393	
394	    Parameter:
395	      driver      = driver-Id.
396	      command     = ISDN_CMD_SETL3
397	      arg         = channel-number locally to the driver. (starting with 0)
398	                    logical or'ed with (protocol-Id << 8)
399	                    protocol-Id is one of the constants ISDN_PROTO_L3...
400	      parm.fax    = Pointer to T30_s fax struct. (fax usage only)
401	
402	  ISDN_CMD_GETL2: (currently unused)
403	
404	    With this command, the HL-driver is told to return the current
405	    setting of the Layer-3-protocol.
406	
407	    Parameter:
408	      driver      = driver-Id.
409	      command     = ISDN_CMD_GETL3
410	      arg         = channel-number locally to the driver. (starting with 0)
411	      parm        = unused.
412	    Returnvalue:
413	      current protocol-Id (one of the constants ISDN_L3_PROTO)
414	
415	  ISDN_CMD_PROCEED: 
416	
417	    With this command, the HL-driver is told to proceed with a incoming call.
418	
419	    Parameter:
420	      driver      = driver-Id.
421	      command     = ISDN_CMD_PROCEED
422	      arg         = channel-number locally to the driver. (starting with 0)
423	      setup.eazmsn= empty string or string send as uus1 in DSS1 with 
424	                    PROCEED message
425	
426	  ISDN_CMD_ALERT: 
427	
428	    With this command, the HL-driver is told to alert a proceeding call.
429	
430	    Parameter:
431	      driver      = driver-Id.
432	      command     = ISDN_CMD_ALERT
433	      arg         = channel-number locally to the driver. (starting with 0)
434	      setup.eazmsn= empty string or string send as uus1 in DSS1 with 
435	                    ALERT message
436	
437	  ISDN_CMD_REDIR: 
438	
439	    With this command, the HL-driver is told to redirect a call in proceeding
440	    or alerting state.  
441	
442	    Parameter:
443	      driver      = driver-Id.
444	      command     = ISDN_CMD_REDIR
445	      arg         = channel-number locally to the driver. (starting with 0)
446	      setup.eazmsn= empty string or string send as uus1 in DSS1 protocol
447	      setup.screen= screening indicator
448	      setup.phone = redirected to party number
449	
450	  ISDN_CMD_PROT_IO:
451	
452	    With this call, the LL-driver invokes protocol specific features through
453	    the LL.
454	    The call is not implicitely bound to a connection.
455	
456	    Parameter:
457	      driver      = driver-Id
458	      command     = ISDN_CMD_PROT_IO
459	      arg         = The lower 8 Bits define the addressed protocol as defined
460	                    in ISDN_PTYPE..., the upper bits are used to differentiate
461	                    the protocol specific CMD.  
462	      
463	      para        = protocol and function specific. See isdnif.h for detail.
464	
465	
466	  ISDN_CMD_FAXCMD:
467	
468	    With this command the HL-driver receives a fax sub-command.
469	    For details refer to INTERFACE.fax
470	
471	    Parameter:
472	      driver      = driver-Id.
473	      command     = ISDN_CMD_FAXCMD
474	      arg         = channel-number locally to the driver. (starting with 0)
475	      parm        = unused.
476	
477	
478	3. Description of the events to be signaled by the HL-driver to the LL.
479	
480	  All status-changes are signaled via calling the previously described
481	  function statcallb(). The field command of the struct isdn_cmd has
482	  to be set by the HL-driver with the appropriate Status-Id (event-number).
483	  The field arg has to be set to the channel-number (locally to the driver,
484	  starting with 0) to which this event applies. (Exception: STAVAIL-event)
485	
486	  Until now, the following Status-Ids are defined:
487	
488	  ISDN_STAT_AVAIL:
489	
490	    With this call, the HL-driver signals the availability of new data
491	    for readstat(). Used only for debugging-purposes, see description
492	    of readstat().
493	
494	    Parameter:
495	      driver      = driver-Id
496	      command     = ISDN_STAT_STAVAIL
497	      arg         = length of available data.
498	      parm        = unused.
499	
500	  ISDN_STAT_ICALL:
501	  ISDN_STAT_ICALLW:
502	
503	    With this call, the HL-driver signals an incoming call to the LL.
504	    If ICALLW is signalled the incoming call is a waiting call without
505	    a available B-chan.
506	
507	    Parameter:
508	      driver            = driver-Id
509	      command           = ISDN_STAT_ICALL
510	      arg               = channel-number, locally to the driver. (starting with 0)
511	      para.setup.phone  = Callernumber.
512	      para.setup.eazmsn = CalledNumber.
513	      para.setup.si1    = Service Indicator.
514	      para.setup.si2    = Additional Service Indicator.
515	      para.setup.plan   = octet 3 from Calling party number Information Element.
516	      para.setup.screen = octet 3a from Calling party number Information Element.
517	
518	    Return:
519	      0           = No device matching this call.
520	      1           = At least one device matching this call (RING on ttyI).
521	                    HL-driver may send ALERTING on the D-channel in this case.
522	      2           = Call will be rejected.
523	      3           = Incoming called party number is currently incomplete.
524	                    Additional digits are required. 
525	                    Used for signalling with PtP connections.
526	      4	          = Call will be held in a proceeding state 
527	                    (HL driver sends PROCEEDING)
528	                    Used when a user space prog needs time to interpret a call
529			    para.setup.eazmsn may be filled with an uus1 message of
530			    30 octets maximum. Empty string if no uus. 
531	      5           = Call will be actively deflected to another party
532	                    Only available in DSS1/EURO protocol
533			    para.setup.phone must be set to destination party number
534			    para.setup.eazmsn may be filled with an uus1 message of
535			    30 octets maximum. Empty string if no uus. 
536	      -1          = An error happened. (Invalid parameters for example.)
537	  The keypad support now is included in the dial command.	        
538	
539	
540	  ISDN_STAT_RUN:
541	
542	    With this call, the HL-driver signals availability of the ISDN-card.
543	    (after initializing, loading firmware)
544	
545	    Parameter:
546	      driver      = driver-Id
547	      command     = ISDN_STAT_RUN
548	      arg         = unused.
549	      parm        = unused.
550	
551	  ISDN_STAT_STOP:
552	
553	    With this call, the HL-driver signals unavailability of the ISDN-card.
554	    (before unloading, while resetting/reconfiguring the card)
555	
556	    Parameter:
557	      driver      = driver-Id
558	      command     = ISDN_STAT_STOP
559	      arg         = unused.
560	      parm        = unused.
561	
562	  ISDN_STAT_DCONN:
563	
564	   With this call, the HL-driver signals the successful establishment of
565	   a D-Channel-connection. (Response to ISDN_CMD_ACCEPTD or ISDN_CMD_DIAL)
566	
567	    Parameter:
568	      driver      = driver-Id
569	      command     = ISDN_STAT_DCONN
570	      arg         = channel-number, locally to the driver. (starting with 0)
571	      parm        = unused.
572	
573	  ISDN_STAT_BCONN:
574	
575	   With this call, the HL-driver signals the successful establishment of
576	   a B-Channel-connection. (Response to ISDN_CMD_ACCEPTB or because the
577	   remote-station has initiated establishment)
578	
579	   The HL driver should call this when the logical l2/l3 protocol 
580	   connection on top of the physical B-channel is established.
581	
582	    Parameter:
583	      driver      = driver-Id
584	      command     = ISDN_STAT_BCONN
585	      arg         = channel-number, locally to the driver. (starting with 0)
586	      parm.num    = ASCII-String, containing type of connection (for analog
587			    modem only). This will be appended to the CONNECT message
588			    e.g. 14400/V.32bis
589	
590	  ISDN_STAT_DHUP:
591	
592	   With this call, the HL-driver signals the shutdown of a
593	   D-Channel-connection. This could be a response to a prior ISDN_CMD_HANGUP,
594	   or caused by a remote-hangup or if the remote-station has actively
595	   rejected a call.
596	
597	    Parameter:
598	      driver      = driver-Id
599	      command     = ISDN_STAT_DHUP
600	      arg         = channel-number, locally to the driver. (starting with 0)
601	      parm        = unused.
602	
603	  ISDN_STAT_BHUP:
604	
605	   With this call, the HL-driver signals the shutdown of a
606	   B-Channel-connection. This could be a response to a prior ISDN_CMD_HANGUP,
607	   or caused by a remote-hangup.
608	
609	   The HL driver should call this as soon as the logical l2/l3 protocol 
610	   connection on top of the physical B-channel is released.
611	
612	    Parameter:
613	      driver      = driver-Id
614	      command     = ISDN_STAT_BHUP
615	      arg         = channel-number, locally to the driver. (starting with 0)
616	      parm        = unused.
617	
618	  ISDN_STAT_CINF:
619	
620	   With this call, the HL-driver delivers charge-unit information to the
621	   LL.
622	
623	    Parameter:
624	      driver      = driver-Id
625	      command     = ISDN_STAT_CINF
626	      arg         = channel-number, locally to the driver. (starting with 0)
627	      parm.num    = ASCII string containing charge-units (digits only).
628	
629	  ISDN_STAT_LOAD: (currently unused)
630	
631	  ISDN_STAT_UNLOAD:
632	
633	   With this call, the HL-driver signals that it will be unloaded now. This
634	   tells the LL to release all corresponding data-structures.
635	
636	    Parameter:
637	      driver      = driver-Id
638	      command     = ISDN_STAT_UNLOAD
639	      arg         = unused.
640	      parm        = unused.
641	
642	  ISDN_STAT_BSENT:
643	
644	    With this call the HL-driver signals the delivery of a data-packet.
645	    This callback is used by the network-interfaces only, tty-Emulation
646	    does not need this call.
647	
648	    Parameter:
649	      driver      = driver-Id
650	      command     = ISDN_STAT_BSENT
651	      arg         = channel-number, locally to the driver. (starting with 0)
652	      parm.length = ***CHANGEI.1.21: New field.
653			    the driver has to set this to the original length
654			    of the skb at the time of receiving it from the linklevel.
655	
656	  ISDN_STAT_NODCH:
657	
658	    With this call, the driver has to respond to a prior ISDN_CMD_DIAL, if
659	    no D-Channel is available.
660	
661	    Parameter:
662	      driver      = driver-Id
663	      command     = ISDN_STAT_NODCH
664	      arg         = channel-number, locally to the driver. (starting with 0)
665	      parm        = unused.
666	
667	  ISDN_STAT_ADDCH: 
668	
669	    This call is for HL-drivers, which are unable to check card-type
670	    or numbers of supported channels before they have loaded any firmware
671	    using ioctl. Those HL-driver simply set the channel-parameter to a
672	    minimum channel-number when registering, and later if they know
673	    the real amount, perform this call, allocating additional channels.
674	
675	    Parameter:
676	      driver      = driver-Id
677	      command     = ISDN_STAT_ADDCH
678	      arg         = number of channels to be added.
679	      parm        = unused.
680	
681	  ISDN_STAT_CAUSE:
682	
683	    With this call, the HL-driver delivers CAUSE-messages to the LL.
684	    Currently the LL does not use this messages. Their contents is simply
685	    logged via kernel-messages. Therefore, currently the format of the
686	    messages is completely free. However they should be printable.
687	
688	    Parameter:
689	      driver      = driver-Id
690	      command     = ISDN_STAT_NODCH
691	      arg         = channel-number, locally to the driver. (starting with 0)
692	      parm.num    = ASCII string containing CAUSE-message.
693	
694	  ISDN_STAT_DISPLAY:
695	
696	    With this call, the HL-driver delivers DISPLAY-messages to the LL.
697	    Currently the LL does not use this messages. 
698	
699	    Parameter:
700	      driver      = driver-Id
701	      command     = ISDN_STAT_DISPLAY
702	      arg         = channel-number, locally to the driver. (starting with 0)
703	      para.display= string containing DISPLAY-message.
704	
705	  ISDN_STAT_PROT:
706	
707	    With this call, the HL-driver delivers protocol specific infos to the LL.
708	    The call is not implicitely bound to a connection.
709	
710	    Parameter:
711	      driver      = driver-Id
712	      command     = ISDN_STAT_PROT
713	      arg         = The lower 8 Bits define the addressed protocol as defined
714	                    in ISDN_PTYPE..., the upper bits are used to differentiate
715	                    the protocol specific STAT.  
716	      
717	      para        = protocol and function specific. See isdnif.h for detail.
718	
719	  ISDN_STAT_DISCH:
720	
721	    With this call, the HL-driver signals the LL to disable or enable the
722	    use of supplied channel and driver.
723	    The call may be used to reduce the available number of B-channels after
724	    loading the driver. The LL has to ignore a disabled channel when searching
725	    for free channels. The HL driver itself never delivers STAT callbacks for
726	    disabled channels. 	    
727	    The LL returns a nonzero code if the operation was not successful or the
728	    selected channel is actually regarded as busy.
729	
730	    Parameter:
731	      driver      = driver-Id
732	      command     = ISDN_STAT_DISCH
733	      arg         = channel-number, locally to the driver. (starting with 0)
734	      parm.num[0] = 0 if channel shall be disabled, else enabled.
735	
736	  ISDN_STAT_L1ERR:
737	
738	    ***CHANGEI1.21 new status message.
739	    A signal can be sent to the linklevel if an Layer1-error results in
740	    packet-loss on receive or send. The field errcode of the cmd.parm
741	    union describes the error more precisely.
742	
743	    Parameter:
744	      driver      = driver-Id
745	      command     = ISDN_STAT_L1ERR
746	      arg         = channel-number, locally to the driver. (starting with 0)
747	      parm.errcode= ISDN_STAT_L1ERR_SEND:     Packet lost while sending.
748			    ISDN_STAT_L1ERR_RECV:     Packet lost while receiving.
749	  ISDN_STAT_FAXIND:
750	
751	    With this call the HL-driver signals a fax sub-command to the LL.
752	    For details refer to INTERFACE.fax
753	
754	    Parameter:
755	      driver      = driver-Id.
756	      command     = ISDN_STAT_FAXIND
757	      arg         = channel-number, locally to the driver. (starting with 0)
758	      parm        = unused.
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.