OpenSS7 SS7 for the Common Man |
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |
||||||||||||||||||||||||||
Home | Overview | Status | News | Documentation | Resources | About | |||||||||||||||||||||
File /code/strss7/drivers/slsi/sls_lsla.h#ident "@(#) $Id: sls_lsla.h,v 0.8.2.1 2002/10/18 02:40:38 brian Exp $" #ifndef __SLS_LSLA_H__ #define __SLS_LSLA_H__ /* * Signalling Link Activate (LSLA) Figure 38/Q.704 */ static inline void lk_lsta_determine_terminal(lk_t * lk); static inline void lk_lsac_activation_unsuccessful(lk_t * lk); static inline void lk_lsac_activation_not_possible(lk_t * lk); static inline void lk_lsla_start_activation(lk_t * lk) { switch (lk->statem.lsla_state) { case LK_STATE_IDLE: if (lk->config.terminal_predetermined) { lk_l1_connect(lk); lk_lsac_start_signalling_link(lk); lk->statem.terminal_determined = 0; lk->statem.data_link_determined = 0; /* error in SDL */ } else { lk->statem.lsla_state = LK_STATE_WAIT; lk->statem.activation = 1; lk_lsta_determine_terminal(lk); if (!lk->config.data_link_predetermined) lk->statem.data_link_determined = 1; else { lk->statem.activation = 1; lk_lsda_determine_data_link(lk); } } break; } } static inline void lk_lsla_restart_activation(lk_t * lk) { switch (lk->statem.lsla_state) { case LK_STATE_IDLE: if (!lk->config.data_link_predetermined) { lk->statem.lsla_state = LK_STATE_WAIT; lk->statem.activation = 1; lk_lsda_determine_data_link(lk); } else { lk_lsac_activation_unsuccessful(lk); lk_lsac_start_signalling_link(lk); } break; } } static inline void __lk_lsla_determined(lk_t * lk) { if (lk->statem.terminal_determined && lk->statem.data_link_determined) { lk->statem.lsla_state = LK_STATE_IDLE; lk_l1_connect(lk); lk_lsac_start_signalling_link(lk); lk->statem.terminal_determined = 0; lk->statem.data_link_determined = 0; /* error in SDL */ } } static inline void lk_lsla_data_link(lk_t * lk) { /* called by MTP module */ switch (lk->statem.lsla_state) { case LK_STATE_WAIT: lk->statem.data_link_determined = 1; __lk_lsla_determined(lk); break; } } static inline void lk_lsla_terminal(lk_t * lk) { /* called by MTP module */ switch (lk->statem.lsla_state) { case LK_STATE_WAIT: lk->statem.terminal_determined = 1; __lk_lsla_determined(lk); break; } } static inline void lk_lsla_no_data_link(lk_t * lk) { switch (lk->statem.lsla_state) { case LK_STATE_WAIT: lk->statem.lsla_state = LK_STATE_IDLE; lk_lsac_activation_not_possible(lk); lk->statem.terminal_determined = 0; lk->statem.data_link_determined = 0; /* error in SDL */ break; } } static inline void lk_lsla_no_terminal(lk_t * lk) { /* called by MTP module */ switch (lk->statem.lsla_state) { case LK_STATE_WAIT: lk->statem.lsla_state = LK_STATE_IDLE; lk_lsac_activation_not_possible(lk); lk->statem.terminal_determined = 0; lk->statem.data_link_determined = 0; /* error in SDL */ break; } } static inline void lk_lsla_deactivate_link(lk_t * lk) { switch (lk->statem.lsla_state) { case LK_STATE_WAIT: lk->statem.lsla_state = LK_STATE_IDLE; lk->statem.terminal_determined = 0; lk->statem.data_link_determined = 0; /* error in SDL */ break; } } #endif /* __SLS_LSLA_H__ */
|
|||||||||||||||||||||||||||
OpenSS7 SS7 for the Common Man |
Home | Overview | Status | News | Documentation | Resources | About | ||||||||||||||||||||
© Copyright 1997-2004,OpenSS7 Corporation, All Rights Reserved. |