/[dynamips]/upstream/dynamips-0.2.8-RC1/dev_c2600_eth.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /upstream/dynamips-0.2.8-RC1/dev_c2600_eth.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

upstream/dynamips-0.2.7/dev_c2600_eth.c revision 10 by dpavlin, Sat Oct 6 16:29:14 2007 UTC upstream/dynamips-0.2.8-RC1/dev_c2600_eth.c revision 11 by dpavlin, Sat Oct 6 16:33:40 2007 UTC
# Line 18  Line 18 
18  #include "net.h"  #include "net.h"
19  #include "net_io.h"  #include "net_io.h"
20  #include "ptask.h"  #include "ptask.h"
21    #include "vm.h"
22  #include "dev_am79c971.h"  #include "dev_am79c971.h"
23  #include "dev_nm_16esw.h"  #include "dev_nm_16esw.h"
24  #include "dev_c2600.h"  #include "dev_c2600.h"
# Line 28  struct nm_eth_data { Line 29  struct nm_eth_data {
29     struct am79c971_data *port[8];     struct am79c971_data *port[8];
30  };  };
31    
32    /* Return sub-slot info for integrated WIC slots (on motherboard) */
33    static int dev_c2600_mb_get_sub_info(vm_instance_t *vm,struct cisco_card *card,
34                                         u_int port_id,
35                                         struct cisco_card_driver ***drv_array,
36                                         u_int *subcard_type)
37    {
38       /* 2 integrated WIC slots */
39       if ((port_id & 0x0F) >= 2)
40          return(-1);
41    
42       *drv_array = dev_c2600_mb_wic_drivers;
43       *subcard_type = CISCO_CARD_TYPE_WIC;
44       return(0);
45    }
46    
47  /*  /*
48   * dev_c2600_nm_eth_init()   * dev_c2600_nm_eth_init()
49   *   *
50   * Add an Ethernet Network Module into specified slot.   * Add an Ethernet Network Module into specified slot.
51   */   */
52  static int dev_c2600_nm_eth_init(c2600_t *router,char *name,u_int nm_bay,  static int dev_c2600_nm_eth_init(vm_instance_t *vm,struct cisco_card *card,
53                                   int nr_port,int interface_type,                                   int nr_port,int interface_type,
54                                   const struct cisco_eeprom *eeprom)                                   const struct cisco_eeprom *eeprom)
55  {  {
56     struct nm_eth_data *data;     struct nm_eth_data *data;
57       u_int slot = card->slot_id;
58     int i;     int i;
59    
60     /* Allocate the private data structure */     /* Allocate the private data structure */
61     if (!(data = malloc(sizeof(*data)))) {     if (!(data = malloc(sizeof(*data)))) {
62        fprintf(stderr,"%s: out of memory\n",name);        vm_error(vm,"%s: out of memory.\n",card->dev_name);
63        return(-1);        return(-1);
64     }     }
65    
66     memset(data,0,sizeof(*data));     memset(data,0,sizeof(*data));
67     data->nr_port = nr_port;     data->nr_port = nr_port;
68    
69       /* Set the PCI bus */
70       card->pci_bus = vm->slots_pci_bus[slot];
71    
72     /* Set the EEPROM */     /* Set the EEPROM */
73     c2600_nm_set_eeprom(router,nm_bay,eeprom);     cisco_card_set_eeprom(vm,card,eeprom);
74       c2600_set_slot_eeprom(VM_C2600(vm),slot,&card->eeprom);
75    
76     /* Create the AMD Am971c971 chip(s) */     /* Create the AMD Am971c971 chip(s) */
77     for(i=0;i<data->nr_port;i++) {     for(i=0;i<data->nr_port;i++) {
78        data->port[i] = dev_am79c971_init(router->vm,name,interface_type,        data->port[i] = dev_am79c971_init(vm,card->dev_name,interface_type,
79                                          router->nm_bay[nm_bay].pci_map,                                          card->pci_bus,i+(slot * 4),
80                                          i+(nm_bay * 4),                                          c2600_net_irq_for_slot_port(slot,i));
                                         c2600_net_irq_for_slot_port(nm_bay,i));  
81     }     }
82    
83     /* Store device info into the router structure */     /* Store device info into the router structure */
84     return(c2600_nm_set_drvinfo(router,nm_bay,data));     card->drv_info = data;
85       return(0);
86  }  }
87    
88  /* Remove an Ethernet NM from the specified slot */  /* Remove an Ethernet NM from the specified slot */
89  static int dev_c2600_nm_eth_shutdown(c2600_t *router,u_int nm_bay)  static int dev_c2600_nm_eth_shutdown(vm_instance_t *vm,struct cisco_card *card)
90  {  {
91     struct c2600_nm_bay *bay;     struct nm_eth_data *data = card->drv_info;
    struct nm_eth_data *data;  
92     int i;     int i;
93    
    if (!(bay = c2600_nm_get_info(router,nm_bay)))  
       return(-1);  
   
    data = bay->drv_info;  
   
94     /* Remove the NM EEPROM */     /* Remove the NM EEPROM */
95     c2600_nm_unset_eeprom(router,nm_bay);     cisco_card_unset_eeprom(card);
96       c2600_set_slot_eeprom(VM_C2600(vm),card->slot_id,NULL);
97    
98     /* Remove the AMD Am79c971 chips */     /* Remove the AMD Am79c971 chips */
99     for(i=0;i<data->nr_port;i++)     for(i=0;i<data->nr_port;i++)
# Line 88  static int dev_c2600_nm_eth_shutdown(c26 Line 104  static int dev_c2600_nm_eth_shutdown(c26
104  }  }
105    
106  /* Bind a Network IO descriptor */  /* Bind a Network IO descriptor */
107  static int dev_c2600_nm_eth_set_nio(c2600_t *router,u_int nm_bay,  static int dev_c2600_nm_eth_set_nio(vm_instance_t *vm,struct cisco_card *card,
108                                      u_int port_id,netio_desc_t *nio)                                      u_int port_id,netio_desc_t *nio)
109  {  {
110     struct nm_eth_data *d;     struct nm_eth_data *d = card->drv_info;
   
    d = c2600_nm_get_drvinfo(router,nm_bay);  
111    
112     if (!d || (port_id >= d->nr_port))     if (!d || (port_id >= d->nr_port))
113        return(-1);        return(-1);
# Line 103  static int dev_c2600_nm_eth_set_nio(c260 Line 117  static int dev_c2600_nm_eth_set_nio(c260
117  }  }
118    
119  /* Unbind a Network IO descriptor */  /* Unbind a Network IO descriptor */
120  static int dev_c2600_nm_eth_unset_nio(c2600_t *router,u_int nm_bay,  static int dev_c2600_nm_eth_unset_nio(vm_instance_t *vm,
121                                          struct cisco_card *card,
122                                        u_int port_id)                                        u_int port_id)
123  {  {
124     struct nm_eth_data *d;     struct nm_eth_data *d = card->drv_info;
   
    d = c2600_nm_get_drvinfo(router,nm_bay);  
125    
126     if (!d || (port_id >= d->nr_port))     if (!d || (port_id >= d->nr_port))
127        return(-1);        return(-1);
# Line 121  static int dev_c2600_nm_eth_unset_nio(c2 Line 134  static int dev_c2600_nm_eth_unset_nio(c2
134  /* Cisco 2600 mainboard with 1 Ethernet port                              */  /* Cisco 2600 mainboard with 1 Ethernet port                              */
135  /* ====================================================================== */  /* ====================================================================== */
136    
137  static int dev_c2600_mb1e_eth_init(c2600_t *router,char *name,u_int nm_bay)  static int dev_c2600_mb1e_eth_init(vm_instance_t *vm,struct cisco_card *card)
138  {  {
139     return(dev_c2600_nm_eth_init(router,name,nm_bay,1,AM79C971_TYPE_10BASE_T,     return(dev_c2600_nm_eth_init(vm,card,1,AM79C971_TYPE_10BASE_T,NULL));
                                 NULL));  
140  }  }
141    
142  /* ====================================================================== */  /* ====================================================================== */
143  /* Cisco 2600 mainboard with 1 Ethernet port                              */  /* Cisco 2600 mainboard with 1 Ethernet port                              */
144  /* ====================================================================== */  /* ====================================================================== */
145  static int dev_c2600_mb2e_eth_init(c2600_t *router,char *name,u_int nm_bay)  static int dev_c2600_mb2e_eth_init(vm_instance_t *vm,struct cisco_card *card)
146  {  {
147     return(dev_c2600_nm_eth_init(router,name,nm_bay,2,AM79C971_TYPE_10BASE_T,     return(dev_c2600_nm_eth_init(vm,card,2,AM79C971_TYPE_10BASE_T,NULL));
                                 NULL));  
148  }  }
149    
150  /* ====================================================================== */  /* ====================================================================== */
151  /* Cisco 2600 mainboard with 1 FastEthernet port                          */  /* Cisco 2600 mainboard with 1 FastEthernet port                          */
152  /* ====================================================================== */  /* ====================================================================== */
153  static int dev_c2600_mb1fe_eth_init(c2600_t *router,char *name,u_int nm_bay)  static int dev_c2600_mb1fe_eth_init(vm_instance_t *vm,struct cisco_card *card)
154  {  {
155     return(dev_c2600_nm_eth_init(router,name,nm_bay,1,AM79C971_TYPE_100BASE_TX,     return(dev_c2600_nm_eth_init(vm,card,1,AM79C971_TYPE_100BASE_TX,NULL));
                                 NULL));  
156  }  }
157    
158  /* ====================================================================== */  /* ====================================================================== */
159  /* Cisco 2600 mainboard with 2 FastEthernet ports                         */  /* Cisco 2600 mainboard with 2 FastEthernet ports                         */
160  /* ====================================================================== */  /* ====================================================================== */
161  static int dev_c2600_mb2fe_eth_init(c2600_t *router,char *name,u_int nm_bay)  static int dev_c2600_mb2fe_eth_init(vm_instance_t *vm,struct cisco_card *card)
162  {  {
163     return(dev_c2600_nm_eth_init(router,name,nm_bay,2,AM79C971_TYPE_100BASE_TX,     return(dev_c2600_nm_eth_init(vm,card,2,AM79C971_TYPE_100BASE_TX,NULL));
                                 NULL));  
164  }  }
165    
166  /* ====================================================================== */  /* ====================================================================== */
# Line 163  static int dev_c2600_mb2fe_eth_init(c260 Line 172  static int dev_c2600_mb2fe_eth_init(c260
172   *   *
173   * Add a NM-1E Network Module into specified slot.   * Add a NM-1E Network Module into specified slot.
174   */   */
175  static int dev_c2600_nm_1e_init(c2600_t *router,char *name,u_int nm_bay)  static int dev_c2600_nm_1e_init(vm_instance_t *vm,struct cisco_card *card)
176  {  {
177     return(dev_c2600_nm_eth_init(router,name,nm_bay,1,AM79C971_TYPE_10BASE_T,     return(dev_c2600_nm_eth_init(vm,card,1,AM79C971_TYPE_10BASE_T,
178                                  cisco_eeprom_find_nm("NM-1E")));                                  cisco_eeprom_find_nm("NM-1E")));
179  }  }
180    
# Line 178  static int dev_c2600_nm_1e_init(c2600_t Line 187  static int dev_c2600_nm_1e_init(c2600_t
187   *   *
188   * Add a NM-4E Network Module into specified slot.   * Add a NM-4E Network Module into specified slot.
189   */   */
190  static int dev_c2600_nm_4e_init(c2600_t *router,char *name,u_int nm_bay)  static int dev_c2600_nm_4e_init(vm_instance_t *vm,struct cisco_card *card)
191  {  {
192     return(dev_c2600_nm_eth_init(router,name,nm_bay,4,AM79C971_TYPE_10BASE_T,     return(dev_c2600_nm_eth_init(vm,card,4,AM79C971_TYPE_10BASE_T,
193                                  cisco_eeprom_find_nm("NM-4E")));                                  cisco_eeprom_find_nm("NM-4E")));
194  }  }
195    
# Line 193  static int dev_c2600_nm_4e_init(c2600_t Line 202  static int dev_c2600_nm_4e_init(c2600_t
202   *   *
203   * Add a NM-1FE-TX Network Module into specified slot.   * Add a NM-1FE-TX Network Module into specified slot.
204   */   */
205  static int dev_c2600_nm_1fe_tx_init(c2600_t *router,char *name,u_int nm_bay)  static int dev_c2600_nm_1fe_tx_init(vm_instance_t *vm,struct cisco_card *card)
206  {  {
207     return(dev_c2600_nm_eth_init(router,name,nm_bay,1,AM79C971_TYPE_100BASE_TX,     return(dev_c2600_nm_eth_init(vm,card,1,AM79C971_TYPE_100BASE_TX,
208                                  cisco_eeprom_find_nm("NM-1FE-TX")));                                  cisco_eeprom_find_nm("NM-1FE-TX")));
209  }  }
210    
# Line 204  static int dev_c2600_nm_1fe_tx_init(c260 Line 213  static int dev_c2600_nm_1fe_tx_init(c260
213  /* ====================================================================== */  /* ====================================================================== */
214    
215  /* Add a NM-16ESW */  /* Add a NM-16ESW */
216  static int dev_c2600_nm_16esw_init(c2600_t *router,char *name,u_int nm_bay)  static int dev_c2600_nm_16esw_init(vm_instance_t *vm,struct cisco_card *card)
217  {  {
218     struct nm_16esw_data *data;     struct nm_16esw_data *data;
219       u_int slot = card->slot_id;
220    
221       /* Set the PCI bus */
222       card->pci_bus = vm->slots_pci_bus[slot];
223    
224     /* Set the EEPROM */     /* Set the EEPROM */
225     c2600_nm_set_eeprom(router,nm_bay,cisco_eeprom_find_nm("NM-16ESW"));     cisco_card_set_eeprom(vm,card,cisco_eeprom_find_nm("NM-16ESW"));
226     dev_nm_16esw_burn_mac_addr(router->vm,nm_bay,     dev_nm_16esw_burn_mac_addr(vm,slot,&card->eeprom);
227                                &router->nm_bay[nm_bay].eeprom);     c2600_set_slot_eeprom(VM_C2600(vm),slot,&card->eeprom);
228    
229     /* Create the device */     /* Create the device */
230     data = dev_nm_16esw_init(router->vm,name,nm_bay,     data = dev_nm_16esw_init(vm,card->dev_name,slot,card->pci_bus,4,
231                              router->nm_bay[nm_bay].pci_map,4,                              c2600_net_irq_for_slot_port(slot,0));
                             c2600_net_irq_for_slot_port(nm_bay,0));  
232    
233     /* Store device info into the router structure */     /* Store device info into the router structure */
234     return(c2600_nm_set_drvinfo(router,nm_bay,data));     card->drv_info = data;
235       return(0);
236  }  }
237    
238  /* Remove a NM-16ESW from the specified slot */  /* Remove a NM-16ESW from the specified slot */
239  static int dev_c2600_nm_16esw_shutdown(c2600_t *router,u_int nm_bay)  static int
240    dev_c2600_nm_16esw_shutdown(vm_instance_t *vm,struct cisco_card *card)
241  {  {
242     struct c2600_nm_bay *bay;     struct nm_16esw_data *data = card->drv_info;
    struct nm_16esw_data *data;  
   
    if (!(bay = c2600_nm_get_info(router,nm_bay)))  
       return(-1);  
   
    data = bay->drv_info;  
243    
244     /* Remove the NM EEPROM */     /* Remove the NM EEPROM */
245     c2600_nm_unset_eeprom(router,nm_bay);     cisco_card_unset_eeprom(card);
246       c2600_set_slot_eeprom(VM_C2600(vm),card->slot_id,NULL);
247    
248     /* Remove the BCM5600 chip */     /* Remove the BCM5600 chip */
249     dev_nm_16esw_remove(data);     dev_nm_16esw_remove(data);
# Line 242  static int dev_c2600_nm_16esw_shutdown(c Line 251  static int dev_c2600_nm_16esw_shutdown(c
251  }  }
252    
253  /* Bind a Network IO descriptor */  /* Bind a Network IO descriptor */
254  static int dev_c2600_nm_16esw_set_nio(c2600_t *router,u_int nm_bay,  static int
255                                        u_int port_id,netio_desc_t *nio)  dev_c2600_nm_16esw_set_nio(vm_instance_t *vm,struct cisco_card *card,
256                               u_int port_id,netio_desc_t *nio)
257  {  {
258     struct nm_16esw_data *d;     struct nm_16esw_data *d = card->drv_info;
   
    d = c2600_nm_get_drvinfo(router,nm_bay);  
259     dev_nm_16esw_set_nio(d,port_id,nio);     dev_nm_16esw_set_nio(d,port_id,nio);
260     return(0);     return(0);
261  }  }
262    
263  /* Unbind a Network IO descriptor */  /* Unbind a Network IO descriptor */
264  static int dev_c2600_nm_16esw_unset_nio(c2600_t *router,u_int nm_bay,  static int
265                                          u_int port_id)  dev_c2600_nm_16esw_unset_nio(vm_instance_t *vm,struct cisco_card *card,
266                                 u_int port_id)
267  {  {
268     struct nm_16esw_data *d;     struct nm_16esw_data *d = card->drv_info;
   
    d = c2600_nm_get_drvinfo(router,nm_bay);  
269     dev_nm_16esw_unset_nio(d,port_id);     dev_nm_16esw_unset_nio(d,port_id);
270     return(0);     return(0);
271  }  }
272    
273  /* Show debug info */  /* Show debug info */
274  static int dev_c2600_nm_16esw_show_info(c2600_t *router,u_int nm_bay)  static int
275    dev_c2600_nm_16esw_show_info(vm_instance_t *vm,struct cisco_card *card)
276  {  {
277     struct nm_16esw_data *d;     struct nm_16esw_data *d = card->drv_info;
   
    d = c2600_nm_get_drvinfo(router,nm_bay);  
278     dev_nm_16esw_show_info(d);     dev_nm_16esw_show_info(d);
279     return(0);     return(0);
280  }  }
# Line 276  static int dev_c2600_nm_16esw_show_info( Line 282  static int dev_c2600_nm_16esw_show_info(
282  /* ====================================================================== */  /* ====================================================================== */
283    
284  /* Cisco 2600 mainboard 1 Ethernet port driver */  /* Cisco 2600 mainboard 1 Ethernet port driver */
285  struct c2600_nm_driver dev_c2600_mb1e_eth_driver = {  struct cisco_card_driver dev_c2600_mb1e_eth_driver = {
286     "CISCO2600-MB-1E", 1, 0,     "CISCO2600-MB-1E", 1, 2,
287     dev_c2600_mb1e_eth_init,     dev_c2600_mb1e_eth_init,
288     dev_c2600_nm_eth_shutdown,     dev_c2600_nm_eth_shutdown,
289       dev_c2600_mb_get_sub_info,
290     dev_c2600_nm_eth_set_nio,     dev_c2600_nm_eth_set_nio,
291     dev_c2600_nm_eth_unset_nio,     dev_c2600_nm_eth_unset_nio,
292     NULL,     NULL,
293  };  };
294    
295  /* Cisco 2600 mainboard 2 Ethernet port driver */  /* Cisco 2600 mainboard 2 Ethernet port driver */
296  struct c2600_nm_driver dev_c2600_mb2e_eth_driver = {  struct cisco_card_driver dev_c2600_mb2e_eth_driver = {
297     "CISCO2600-MB-2E", 1, 0,     "CISCO2600-MB-2E", 1, 2,
298     dev_c2600_mb2e_eth_init,     dev_c2600_mb2e_eth_init,
299     dev_c2600_nm_eth_shutdown,     dev_c2600_nm_eth_shutdown,
300       dev_c2600_mb_get_sub_info,
301     dev_c2600_nm_eth_set_nio,     dev_c2600_nm_eth_set_nio,
302     dev_c2600_nm_eth_unset_nio,     dev_c2600_nm_eth_unset_nio,
303     NULL,     NULL,
304  };  };
305    
306  /* Cisco 2600 mainboard 1 FastEthernet port driver */  /* Cisco 2600 mainboard 1 FastEthernet port driver */
307  struct c2600_nm_driver dev_c2600_mb1fe_eth_driver = {  struct cisco_card_driver dev_c2600_mb1fe_eth_driver = {
308     "CISCO2600-MB-1FE", 1, 0,     "CISCO2600-MB-1FE", 1, 2,
309     dev_c2600_mb1fe_eth_init,     dev_c2600_mb1fe_eth_init,
310     dev_c2600_nm_eth_shutdown,     dev_c2600_nm_eth_shutdown,
311       dev_c2600_mb_get_sub_info,
312     dev_c2600_nm_eth_set_nio,     dev_c2600_nm_eth_set_nio,
313     dev_c2600_nm_eth_unset_nio,     dev_c2600_nm_eth_unset_nio,
314     NULL,     NULL,
315  };  };
316    
317  /* Cisco 2600 mainboard 2 Ethernet port driver */  /* Cisco 2600 mainboard 2 Ethernet port driver */
318  struct c2600_nm_driver dev_c2600_mb2fe_eth_driver = {  struct cisco_card_driver dev_c2600_mb2fe_eth_driver = {
319     "CISCO2600-MB-2FE", 1, 0,     "CISCO2600-MB-2FE", 1, 2,
320     dev_c2600_mb2fe_eth_init,     dev_c2600_mb2fe_eth_init,
321     dev_c2600_nm_eth_shutdown,     dev_c2600_nm_eth_shutdown,
322       dev_c2600_mb_get_sub_info,
323     dev_c2600_nm_eth_set_nio,     dev_c2600_nm_eth_set_nio,
324     dev_c2600_nm_eth_unset_nio,     dev_c2600_nm_eth_unset_nio,
325     NULL,     NULL,
326  };  };
327    
328  /* NM-1FE-TX driver */  /* NM-1FE-TX driver */
329  struct c2600_nm_driver dev_c2600_nm_1fe_tx_driver = {  struct cisco_card_driver dev_c2600_nm_1fe_tx_driver = {
330     "NM-1FE-TX", 1, 0,     "NM-1FE-TX", 1, 0,
331     dev_c2600_nm_1fe_tx_init,     dev_c2600_nm_1fe_tx_init,
332     dev_c2600_nm_eth_shutdown,     dev_c2600_nm_eth_shutdown,
333       NULL,
334     dev_c2600_nm_eth_set_nio,     dev_c2600_nm_eth_set_nio,
335     dev_c2600_nm_eth_unset_nio,     dev_c2600_nm_eth_unset_nio,
336     NULL,     NULL,
337  };  };
338    
339  /* NM-1E driver */  /* NM-1E driver */
340  struct c2600_nm_driver dev_c2600_nm_1e_driver = {  struct cisco_card_driver dev_c2600_nm_1e_driver = {
341     "NM-1E", 1, 0,     "NM-1E", 1, 0,
342     dev_c2600_nm_1e_init,     dev_c2600_nm_1e_init,
343     dev_c2600_nm_eth_shutdown,     dev_c2600_nm_eth_shutdown,
344       NULL,
345     dev_c2600_nm_eth_set_nio,     dev_c2600_nm_eth_set_nio,
346     dev_c2600_nm_eth_unset_nio,     dev_c2600_nm_eth_unset_nio,
347     NULL,     NULL,
348  };  };
349    
350  /* NM-4E driver */  /* NM-4E driver */
351  struct c2600_nm_driver dev_c2600_nm_4e_driver = {  struct cisco_card_driver dev_c2600_nm_4e_driver = {
352     "NM-4E", 1, 0,     "NM-4E", 1, 0,
353     dev_c2600_nm_4e_init,     dev_c2600_nm_4e_init,
354     dev_c2600_nm_eth_shutdown,     dev_c2600_nm_eth_shutdown,
355       NULL,
356     dev_c2600_nm_eth_set_nio,     dev_c2600_nm_eth_set_nio,
357     dev_c2600_nm_eth_unset_nio,     dev_c2600_nm_eth_unset_nio,
358     NULL,     NULL,
359  };  };
360    
361  /* NM-16ESW driver */  /* NM-16ESW driver */
362  struct c2600_nm_driver dev_c2600_nm_16esw_driver = {  struct cisco_card_driver dev_c2600_nm_16esw_driver = {
363     "NM-16ESW", 1, 0,     "NM-16ESW", 1, 0,
364     dev_c2600_nm_16esw_init,     dev_c2600_nm_16esw_init,
365     dev_c2600_nm_16esw_shutdown,     dev_c2600_nm_16esw_shutdown,
366       NULL,
367     dev_c2600_nm_16esw_set_nio,     dev_c2600_nm_16esw_set_nio,
368     dev_c2600_nm_16esw_unset_nio,     dev_c2600_nm_16esw_unset_nio,
369     dev_c2600_nm_16esw_show_info,     dev_c2600_nm_16esw_show_info,

Legend:
Removed from v.10  
changed lines
  Added in v.11

  ViewVC Help
Powered by ViewVC 1.1.26