linux/drivers/net/fddi/skfp/rmt.c

// SPDX-License-Identifier: GPL-2.0-or-later
/******************************************************************************
 *
 *	(C)Copyright 1998,1999 SysKonnect,
 *	a business unit of Schneider & Koch & Co. Datensysteme GmbH.
 *
 *	See the file "skfddi.c" for further information.
 *
 *	The information in this file is provided "AS IS" without warranty.
 *
 ******************************************************************************/

/*
	SMT RMT
	Ring Management
*/

/*
 * Hardware independent state machine implemantation
 * The following external SMT functions are referenced :
 *
 * 		queue_event()
 * 		smt_timer_start()
 * 		smt_timer_stop()
 *
 * 	The following external HW dependent functions are referenced :
 *		sm_ma_control()
 *		sm_mac_check_beacon_claim()
 *
 * 	The following HW dependent events are required :
 *		RM_RING_OP
 *		RM_RING_NON_OP
 *		RM_MY_BEACON
 *		RM_OTHER_BEACON
 *		RM_MY_CLAIM
 *		RM_TRT_EXP
 *		RM_VALID_CLAIM
 *
 */

#include "h/types.h"
#include "h/fddi.h"
#include "h/smc.h"

#define KERNEL
#include "h/smtstate.h"

/*
 * FSM Macros
 */
#define AFLAG
#define GO_STATE(x)
#define ACTIONS_DONE()
#define ACTIONS(x)

#define RM0_ISOLATED
#define RM1_NON_OP
#define RM2_RING_OP
#define RM3_DETECT
#define RM4_NON_OP_DUP
#define RM5_RING_OP_DUP
#define RM6_DIRECTED
#define RM7_TRACE

/*
 * symbolic state names
 */
static const char * const rmt_states[] = ;

/*
 * symbolic event names
 */
static const char * const rmt_events[] = ;

/*
 * Globals
 * in struct s_rmt
 */


/*
 * function declarations
 */
static void rmt_fsm(struct s_smc *smc, int cmd);
static void start_rmt_timer0(struct s_smc *smc, u_long value, int event);
static void start_rmt_timer1(struct s_smc *smc, u_long value, int event);
static void start_rmt_timer2(struct s_smc *smc, u_long value, int event);
static void stop_rmt_timer0(struct s_smc *smc);
static void stop_rmt_timer1(struct s_smc *smc);
static void stop_rmt_timer2(struct s_smc *smc);
static void rmt_dup_actions(struct s_smc *smc);
static void rmt_reinsert_actions(struct s_smc *smc);
static void rmt_leave_actions(struct s_smc *smc);
static void rmt_new_dup_actions(struct s_smc *smc);

#ifndef SUPERNET_3
extern void restart_trt_for_dbcn() ;
#endif /*SUPERNET_3*/

/*
	init RMT state machine
	clear all RMT vars and flags
*/
void rmt_init(struct s_smc *smc)
{}

/*
	RMT state machine
	called by dispatcher

	do
		display state change
		process event
	until SM is stable
*/
void rmt(struct s_smc *smc, int event)
{}

/*
	process RMT event
*/
static void rmt_fsm(struct s_smc *smc, int cmd)
{}

/*
 * (jd) RMT duplicate address actions
 * leave the ring or reinsert just as configured
 */
static void rmt_dup_actions(struct s_smc *smc)
{}

/*
 * Reconnect to the Ring
 */
static void rmt_reinsert_actions(struct s_smc *smc)
{}

/*
 * duplicate address detected
 */
static void rmt_new_dup_actions(struct s_smc *smc)
{}


/*
 * leave the ring
 */
static void rmt_leave_actions(struct s_smc *smc)
{}

/*
 * SMT timer interface
 *	start RMT timer 0
 */
static void start_rmt_timer0(struct s_smc *smc, u_long value, int event)
{}

/*
 * SMT timer interface
 *	start RMT timer 1
 */
static void start_rmt_timer1(struct s_smc *smc, u_long value, int event)
{}

/*
 * SMT timer interface
 *	start RMT timer 2
 */
static void start_rmt_timer2(struct s_smc *smc, u_long value, int event)
{}

/*
 * SMT timer interface
 *	stop RMT timer 0
 */
static void stop_rmt_timer0(struct s_smc *smc)
{}

/*
 * SMT timer interface
 *	stop RMT timer 1
 */
static void stop_rmt_timer1(struct s_smc *smc)
{}

/*
 * SMT timer interface
 *	stop RMT timer 2
 */
static void stop_rmt_timer2(struct s_smc *smc)
{}