/* * States of the channel statemachine(s) for ctc and ctcmpc.
*/ enum ctc_ch_states { /* * Channel not assigned to any device, * initial state, direction invalid
*/
CTC_STATE_IDLE, /* * Channel assigned but not operating
*/
CTC_STATE_STOPPED,
CTC_STATE_STARTWAIT,
CTC_STATE_STARTRETRY,
CTC_STATE_SETUPWAIT,
CTC_STATE_RXINIT,
CTC_STATE_TXINIT,
CTC_STATE_RX,
CTC_STATE_TX,
CTC_STATE_RXIDLE,
CTC_STATE_TXIDLE,
CTC_STATE_RXERR,
CTC_STATE_TXERR,
CTC_STATE_TERM,
CTC_STATE_DTERM,
CTC_STATE_NOTOP,
CTC_NR_STATES, /* MUST be the last element of non-expanded states */ /* * additional MPC states
*/
CH_XID0_PENDING = CTC_NR_STATES,
CH_XID0_INPROGRESS,
CH_XID7_PENDING,
CH_XID7_PENDING1,
CH_XID7_PENDING2,
CH_XID7_PENDING3,
CH_XID7_PENDING4,
CTC_MPC_NR_STATES, /* MUST be the last element of expanded mpc states */
};
/* * ----- FSM (state/event/action) of the ctcmpc channel statemachine -----
*/ externconst fsm_node ctcmpc_ch_fsm[]; externint mpc_ch_fsm_len;
/* * Definitions for the device interface statemachine for ctc and mpc
*/
/* * States of the device interface statemachine.
*/ enum dev_states {
DEV_STATE_STOPPED,
DEV_STATE_STARTWAIT_RXTX,
DEV_STATE_STARTWAIT_RX,
DEV_STATE_STARTWAIT_TX,
DEV_STATE_STOPWAIT_RXTX,
DEV_STATE_STOPWAIT_RX,
DEV_STATE_STOPWAIT_TX,
DEV_STATE_RUNNING, /* * MUST be always the last element!!
*/
CTCM_NR_DEV_STATES
};
externconstchar *dev_state_names[];
/* * Events of the device interface statemachine. * ctcm and ctcmpc
*/ enum dev_events {
DEV_EVENT_START,
DEV_EVENT_STOP,
DEV_EVENT_RXUP,
DEV_EVENT_TXUP,
DEV_EVENT_RXDOWN,
DEV_EVENT_TXDOWN,
DEV_EVENT_RESTART, /* * MUST be always the last element!!
*/
CTCM_NR_DEV_EVENTS
};
externconstchar *dev_event_names[];
/* * Actions for the device interface statemachine. * ctc and ctcmpc
*/ /* static void dev_action_start(fsm_instance * fi, int event, void *arg); static void dev_action_stop(fsm_instance * fi, int event, void *arg); static void dev_action_restart(fsm_instance *fi, int event, void *arg); static void dev_action_chup(fsm_instance * fi, int event, void *arg); static void dev_action_chdown(fsm_instance * fi, int event, void *arg);
*/
/* * The (state/event/action) fsm table of the device interface statemachine. * ctcm and ctcmpc
*/ externconst fsm_node dev_fsm[]; externint dev_fsm_len;
/* * Definitions for the MPC Group statemachine
*/
/* * MPC Group Station FSM States
State Name When In This State ====================== ======================================= MPCG_STATE_RESET Initial State When Driver Loaded We receive and send NOTHING
MPCG_STATE_INOP INOP Received. Group level non-recoverable error
MPCG_STATE_READY XID exchanges for at least 1 write and 1 read channel have completed. Group is ready for data transfer.
States from ctc_mpc_alloc_channel ============================================================== MPCG_STATE_XID2INITW Awaiting XID2(0) Initiation ATTN from other side will start XID negotiations. Y-side protocol only.
MPCG_STATE_XID2INITX XID2(0) negotiations are in progress. At least 1, but not all, XID2(0)'s have been received from partner.
MPCG_STATE_XID7INITW XID2(0) complete No XID2(7)'s have yet been received. XID2(7) negotiations pending.
MPCG_STATE_XID7INITX XID2(7) negotiations in progress. At least 1, but not all, XID2(7)'s have been received from partner.
MPCG_STATE_XID7INITF XID2(7) negotiations complete. Transitioning to READY.
MPCG_STATE_READY Ready for Data Transfer.
States from ctc_mpc_establish_connectivity call ============================================================== MPCG_STATE_XID0IOWAIT Initiating XID2(0) negotiations. X-side protocol only. ATTN-BUSY from other side will convert this to Y-side protocol and the ctc_mpc_alloc_channel flow will begin.
MPCG_STATE_XID0IOWAIX XID2(0) negotiations are in progress. At least 1, but not all, XID2(0)'s have been received from partner.
MPCG_STATE_XID7INITI XID2(0) complete No XID2(7)'s have yet been received. XID2(7) negotiations pending.
MPCG_STATE_XID7INITZ XID2(7) negotiations in progress. At least 1, but not all, XID2(7)'s have been received from partner.
MPCG_STATE_XID7INITF XID2(7) negotiations complete. Transitioning to READY.
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.