1 # $FreeBSD$
2
3 #include <sys/bus.h>
4
5 # Needed for ifreq/ifmediareq
6 #include <sys/socket.h>
7 #include <net/if.h>
8
9 #include <dev/etherswitch/etherswitch.h>
10
11 INTERFACE etherswitch;
12
13 #
14 # Default implementation
15 #
16 CODE {
17 static void
18 null_etherswitch_lock(device_t dev)
19 {
20 }
21
22 static void
23 null_etherswitch_unlock(device_t dev)
24 {
25 }
26
27 static int
28 null_etherswitch_getconf(device_t dev, etherswitch_conf_t *conf)
29 {
30 return (0);
31 }
32
33 static int
34 null_etherswitch_setconf(device_t dev, etherswitch_conf_t *conf)
35 {
36 return (0);
37 }
38
39 static int
40 null_etherswitch_flush_all(device_t dev)
41 {
42
43 return (ENXIO);
44 }
45
46 static int
47 null_etherswitch_flush_port(device_t dev, int port)
48 {
49
50 return (ENXIO);
51 }
52
53 static int
54 null_etherswitch_flush_mac(device_t dev,
55 etherswitch_atu_flush_macentry_t *e)
56 {
57
58 return (ENXIO);
59 }
60
61 static int
62 null_etherswitch_fetch_table(device_t dev,
63 etherswitch_atu_table_t *table)
64 {
65
66 table->es_nitems = 0;
67 return (ENXIO);
68 }
69
70 static int
71 null_etherswitch_fetch_entry(device_t dev,
72 etherswitch_atu_entry_t *e)
73 {
74
75 return (ENXIO);
76 }
77 };
78
79 #
80 # Return device info
81 #
82 METHOD etherswitch_info_t* getinfo {
83 device_t dev;
84 }
85
86 #
87 # Lock access to switch registers
88 #
89 METHOD void lock {
90 device_t dev;
91 } DEFAULT null_etherswitch_lock;
92
93 #
94 # Unlock access to switch registers
95 #
96 METHOD void unlock {
97 device_t dev;
98 } DEFAULT null_etherswitch_unlock;
99
100 #
101 # Read switch register
102 #
103 METHOD int readreg {
104 device_t dev;
105 int reg;
106 };
107
108 #
109 # Write switch register
110 #
111 METHOD int writereg {
112 device_t dev;
113 int reg;
114 int value;
115 };
116
117 #
118 # Read PHY register
119 #
120 METHOD int readphyreg {
121 device_t dev;
122 int phy;
123 int reg;
124 };
125
126 #
127 # Write PHY register
128 #
129 METHOD int writephyreg {
130 device_t dev;
131 int phy;
132 int reg;
133 int value;
134 };
135
136 #
137 # Get port configuration
138 #
139 METHOD int getport {
140 device_t dev;
141 etherswitch_port_t *vg;
142 }
143
144 #
145 # Set port configuration
146 #
147 METHOD int setport {
148 device_t dev;
149 etherswitch_port_t *vg;
150 }
151
152 #
153 # Get VLAN group configuration
154 #
155 METHOD int getvgroup {
156 device_t dev;
157 etherswitch_vlangroup_t *vg;
158 }
159
160 #
161 # Set VLAN group configuration
162 #
163 METHOD int setvgroup {
164 device_t dev;
165 etherswitch_vlangroup_t *vg;
166 }
167
168 #
169 # Get the Switch configuration
170 #
171 METHOD int getconf {
172 device_t dev;
173 etherswitch_conf_t *conf;
174 } DEFAULT null_etherswitch_getconf;
175
176 #
177 # Set the Switch configuration
178 #
179 METHOD int setconf {
180 device_t dev;
181 etherswitch_conf_t *conf;
182 } DEFAULT null_etherswitch_setconf;
183
184 #
185 # Flush all of the programmed/learnt MAC addresses
186 #
187 METHOD int flush_all {
188 device_t dev;
189 } DEFAULT null_etherswitch_flush_all;
190
191 #
192 # Flush a single MAC address entry
193 #
194 METHOD int flush_mac {
195 device_t dev;
196 etherswitch_atu_flush_macentry_t *entry;
197 } DEFAULT null_etherswitch_flush_mac;
198
199 #
200 # Flush all of the dynamic MAC addresses on a given port
201 #
202 METHOD int flush_port {
203 device_t dev;
204 int port;
205 } DEFAULT null_etherswitch_flush_port;
206
207 #
208 # Fetch the address table from the ethernet switch.
209 #
210 METHOD int fetch_table {
211 device_t dev;
212 etherswitch_atu_table_t *table;
213 } DEFAULT null_etherswitch_fetch_table;
214
215 #
216 # Fetch a single entry from the ethernet switch table.
217 #
218 METHOD int fetch_table_entry {
219 device_t dev;
220 etherswitch_atu_entry_t *entry;
221 } DEFAULT null_etherswitch_fetch_entry;
Cache object: 90fbd63a9a5649736b27cb9ce78461dd
|