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 15static void 16error_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 28static void 29hisax_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 46void 47setstack_manager(struct PStack *st) 48{ 49 st->ma.layer = hisax_manager; 50} 51