OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [net/] [skfp/] [smtinit.c] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/******************************************************************************
2
 *
3
 *      (C)Copyright 1998,1999 SysKonnect,
4
 *      a business unit of Schneider & Koch & Co. Datensysteme GmbH.
5
 *
6
 *      See the file "skfddi.c" for further information.
7
 *
8
 *      This program is free software; you can redistribute it and/or modify
9
 *      it under the terms of the GNU General Public License as published by
10
 *      the Free Software Foundation; either version 2 of the License, or
11
 *      (at your option) any later version.
12
 *
13
 *      The information in this file is provided "AS IS" without warranty.
14
 *
15
 ******************************************************************************/
16
 
17
/*
18
        Init SMT
19
        call all module level initialization routines
20
*/
21
 
22
#include "h/types.h"
23
#include "h/fddi.h"
24
#include "h/smc.h"
25
 
26
#ifndef lint
27
static const char ID_sccs[] = "@(#)smtinit.c    1.15 97/05/06 (C) SK " ;
28
#endif
29
 
30
void init_fddi_driver(struct s_smc *smc, u_char *mac_addr);
31
 
32
/* define global debug variable */
33
#if defined(DEBUG) && !defined(DEBUG_BRD)
34
struct smt_debug debug;
35
#endif
36
 
37
#ifndef MULT_OEM
38
#define OEMID(smc,i)    oem_id[i]
39
        extern u_char   oem_id[] ;
40
#else   /* MULT_OEM */
41
#define OEMID(smc,i)    smc->hw.oem_id->oi_mark[i]
42
        extern struct s_oem_ids oem_ids[] ;
43
#endif  /* MULT_OEM */
44
 
45
/*
46
 * Set OEM specific values
47
 *
48
 * Can not be called in smt_reset_defaults, because it is not sure that
49
 * the OEM ID is already defined.
50
 */
51
static void set_oem_spec_val(struct s_smc *smc)
52
{
53
        struct fddi_mib *mib ;
54
 
55
        mib = &smc->mib ;
56
 
57
        /*
58
         * set IBM specific values
59
         */
60
        if (OEMID(smc,0) == 'I') {
61
                mib->fddiSMTConnectionPolicy = POLICY_MM ;
62
        }
63
}
64
 
65
/*
66
 * Init SMT
67
 */
68
int init_smt(struct s_smc *smc, u_char *mac_addr)
69
/* u_char *mac_addr;    canonical address or NULL */
70
{
71
        int     p ;
72
 
73
#if defined(DEBUG) && !defined(DEBUG_BRD)
74
        debug.d_smt = 0 ;
75
        debug.d_smtf = 0 ;
76
        debug.d_rmt = 0 ;
77
        debug.d_ecm = 0 ;
78
        debug.d_pcm = 0 ;
79
        debug.d_cfm = 0 ;
80
 
81
        debug.d_plc = 0 ;
82
#ifdef  ESS
83
        debug.d_ess = 0 ;
84
#endif
85
#ifdef  SBA
86
        debug.d_sba = 0 ;
87
#endif
88
#endif  /* DEBUG && !DEBUG_BRD */
89
 
90
        /* First initialize the ports mib->pointers */
91
        for ( p = 0; p < NUMPHYS; p ++ ) {
92
                smc->y[p].mib = & smc->mib.p[p] ;
93
        }
94
 
95
        set_oem_spec_val(smc) ;
96
        (void) smt_set_mac_opvalues(smc) ;
97
        init_fddi_driver(smc,mac_addr) ;        /* HW driver */
98
        smt_fixup_mib(smc) ;            /* update values that depend on s.sas */
99
 
100
        ev_init(smc) ;                  /* event queue */
101
#ifndef SLIM_SMT
102
        smt_init_evc(smc) ;             /* evcs in MIB */
103
#endif  /* no SLIM_SMT */
104
        smt_timer_init(smc) ;           /* timer package */
105
        smt_agent_init(smc) ;           /* SMT frame manager */
106
 
107
        pcm_init(smc) ;                 /* PCM state machine */
108
        ecm_init(smc) ;                 /* ECM state machine */
109
        cfm_init(smc) ;                 /* CFM state machine */
110
        rmt_init(smc) ;                 /* RMT state machine */
111
 
112
        for (p = 0 ; p < NUMPHYS ; p++) {
113
                pcm(smc,p,0) ;           /* PCM A state machine */
114
        }
115
        ecm(smc,0) ;                     /* ECM state machine */
116
        cfm(smc,0) ;                     /* CFM state machine */
117
        rmt(smc,0) ;                     /* RMT state machine */
118
 
119
        smt_agent_task(smc) ;           /* NIF FSM etc */
120
 
121
        PNMI_INIT(smc) ;                /* PNMI initialization */
122
 
123
        return(0) ;
124
}
125
 

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.