Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* $Id: lmgr.c,v 1.7.6.2 2001/09/23 22:24:50 kai Exp $ |
2 | * | |
3 | * Layermanagement module | |
4 | * | |
5 | * Author Karsten Keil | |
6 | * Copyright by Karsten Keil <keil@isdn4linux.de> | |
7 | * | |
8 | * This software may be used and distributed according to the terms | |
9 | * of the GNU General Public License, incorporated herein by reference. | |
10 | * | |
11 | */ | |
12 | ||
13 | #include "hisax.h" | |
14 | ||
15 | static void | |
16 | error_handling_dchan(struct PStack *st, int Error) | |
17 | { | |
18 | switch (Error) { | |
19 | case 'C': | |
20 | case 'D': | |
21 | case 'G': | |
22 | case 'H': | |
23 | st->l2.l2tei(st, MDL_ERROR | REQUEST, NULL); | |
24 | break; | |
25 | } | |
26 | } | |
27 | ||
28 | static void | |
29 | hisax_manager(struct PStack *st, int pr, void *arg) | |
30 | { | |
31 | long Code; | |
32 | ||
33 | switch (pr) { | |
34 | case (MDL_ERROR | INDICATION): | |
35 | Code = (long) arg; | |
36 | HiSax_putstatus(st->l1.hardware, "manager: MDL_ERROR", | |
37 | " %c %s", (char)Code, | |
38 | test_bit(FLG_LAPD, &st->l2.flag) ? | |
39 | "D-channel" : "B-channel"); | |
40 | if (test_bit(FLG_LAPD, &st->l2.flag)) | |
41 | error_handling_dchan(st, Code); | |
42 | break; | |
43 | } | |
44 | } | |
45 | ||
46 | void | |
47 | setstack_manager(struct PStack *st) | |
48 | { | |
49 | st->ma.layer = hisax_manager; | |
50 | } |