コード例 #1
0
int init_smt(struct s_smc *smc, u_char *mac_addr)

{
	int	p ;

#if defined(DEBUG) && !defined(DEBUG_BRD)
	debug.d_smt = 0 ;
	debug.d_smtf = 0 ;
	debug.d_rmt = 0 ;
	debug.d_ecm = 0 ;
	debug.d_pcm = 0 ;
	debug.d_cfm = 0 ;

	debug.d_plc = 0 ;
#ifdef	ESS
	debug.d_ess = 0 ;
#endif
#ifdef	SBA
	debug.d_sba = 0 ;
#endif
#endif	

	
	for ( p = 0; p < NUMPHYS; p ++ ) {
		smc->y[p].mib = & smc->mib.p[p] ;
	}

	set_oem_spec_val(smc) ;	
	(void) smt_set_mac_opvalues(smc) ;
	init_fddi_driver(smc,mac_addr) ;	
	smt_fixup_mib(smc) ;		

	ev_init(smc) ;			
#ifndef	SLIM_SMT
	smt_init_evc(smc) ;		
#endif	
	smt_timer_init(smc) ;		
	smt_agent_init(smc) ;		

	pcm_init(smc) ;			
	ecm_init(smc) ;			
	cfm_init(smc) ;			
	rmt_init(smc) ;			

	for (p = 0 ; p < NUMPHYS ; p++) {
		pcm(smc,p,0) ;		
	}
	ecm(smc,0) ;			
	cfm(smc,0) ;			
	rmt(smc,0) ;			

	smt_agent_task(smc) ;		

        PNMI_INIT(smc) ;                

	return(0) ;
}
コード例 #2
0
ファイル: smtinit.c プロジェクト: 3sOx/asuswrt-merlin
/*
 * Init SMT
 */
int init_smt(struct s_smc *smc, u_char *mac_addr)
/* u_char *mac_addr;	canonical address or NULL */
{
	int	p ;

#if defined(DEBUG) && !defined(DEBUG_BRD)
	debug.d_smt = 0 ;
	debug.d_smtf = 0 ;
	debug.d_rmt = 0 ;
	debug.d_ecm = 0 ;
	debug.d_pcm = 0 ;
	debug.d_cfm = 0 ;

	debug.d_plc = 0 ;
#ifdef	ESS
	debug.d_ess = 0 ;
#endif
#ifdef	SBA
	debug.d_sba = 0 ;
#endif
#endif	/* DEBUG && !DEBUG_BRD */

	/* First initialize the ports mib->pointers */
	for ( p = 0; p < NUMPHYS; p ++ ) {
		smc->y[p].mib = & smc->mib.p[p] ;
	}

	set_oem_spec_val(smc) ;	
	(void) smt_set_mac_opvalues(smc) ;
	init_fddi_driver(smc,mac_addr) ;	/* HW driver */
	smt_fixup_mib(smc) ;		/* update values that depend on s.sas */

	ev_init(smc) ;			/* event queue */
#ifndef	SLIM_SMT
	smt_init_evc(smc) ;		/* evcs in MIB */
#endif	/* no SLIM_SMT */
	smt_timer_init(smc) ;		/* timer package */
	smt_agent_init(smc) ;		/* SMT frame manager */

	pcm_init(smc) ;			/* PCM state machine */
	ecm_init(smc) ;			/* ECM state machine */
	cfm_init(smc) ;			/* CFM state machine */
	rmt_init(smc) ;			/* RMT state machine */

	for (p = 0 ; p < NUMPHYS ; p++) {
		pcm(smc,p,0) ;		/* PCM A state machine */
	}
	ecm(smc,0) ;			/* ECM state machine */
	cfm(smc,0) ;			/* CFM state machine */
	rmt(smc,0) ;			/* RMT state machine */

	smt_agent_task(smc) ;		/* NIF FSM etc */

        PNMI_INIT(smc) ;                /* PNMI initialization */

	return(0) ;
}
コード例 #3
0
ファイル: learn2.c プロジェクト: appamatto/bonanza-nacl
void
renovate_param( const param_t *pd )
{
  double *pv[14], *p;
  double v[16];
  unsigned int u32rand, u;
  int i, j;

  v[pawn]       = pd->pawn;         v[lance]      = pd->lance;
  v[knight]     = pd->knight;       v[silver]     = pd->silver;
  v[gold]       = pd->gold;         v[bishop]     = pd->bishop;
  v[rook]       = pd->rook;         v[pro_pawn]   = pd->pro_pawn;
  v[pro_lance]  = pd->pro_lance;    v[pro_knight] = pd->pro_knight;
  v[pro_silver] = pd->pro_silver;   v[horse]      = pd->horse;
  v[dragon]     = pd->dragon;       v[king]       = FLT_MAX;

  pv[ 0] = v + pawn;         pv[ 1] = v + lance;
  pv[ 2] = v + knight;       pv[ 3] = v + silver;
  pv[ 4] = v + gold;         pv[ 5] = v + bishop;
  pv[ 6] = v + rook;         pv[ 7] = v + pro_pawn;
  pv[ 8] = v + pro_lance;    pv[ 9] = v + pro_knight;
  pv[10] = v + pro_silver;   pv[11] = v + horse;
  pv[12] = v + dragon;       pv[13] = v + king;

  /* insertion sort */
  for ( i = 13 - 2; i >= 0; i-- )
    {
      p = pv[i];
      for ( j = i+1; *pv[j] < *p; j++ ) { pv[j-1] = pv[j]; }
      pv[j-1] = p;
    }

  u32rand = rand32();
  u       = u32rand % 7U;
  u32rand = u32rand / 7U;
  p = pv[u+6];  pv[u+6] = pv[12];  pv[12] = p;
  for ( i = 5; i > 0; i-- )
    {
      u       = u32rand % (i+1);
      u32rand = u32rand / (i+1);
      p = pv[u];  pv[u] = pv[i];  pv[i] = p;

      u       = u32rand % (i+1);
      u32rand = u32rand / (i+1);
      p = pv[u+6];  pv[u+6] = pv[i+6];  pv[i+6] = p;
    }

  *pv[ 0] = *pv[ 1] = -2.0;
  *pv[ 2] = *pv[ 3] = *pv[ 4] = -1.0;
  *pv[ 5] = *pv[ 6] = *pv[ 7] =  0.0;
  *pv[ 8] = *pv[ 9] = *pv[10] =  1.0;
  *pv[11] = *pv[12] =  2.0;

  rmt( v, pawn );        rmt( v, lance );       rmt( v, knight );
  rmt( v, silver );      rmt( v, gold );        rmt( v, bishop );
  rmt( v, rook );        rmt( v, pro_pawn );    rmt( v, pro_lance );
  rmt( v, pro_knight );  rmt( v, pro_silver );  rmt( v, horse );
  rmt( v, dragon );

#define Foo(v) rparam( &v, pd->v );
  GO_THROUGH_ALL_PARAMETERS_BY_FOO;
#undef Foo

  fv_sym();
  set_derivative_param();
  ehash_clear();
}