/[gxemul]/trunk/src/devices/dev_sn.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 /trunk/src/devices/dev_sn.c

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

revision 20 by dpavlin, Mon Oct 8 16:19:23 2007 UTC revision 40 by dpavlin, Mon Oct 8 16:22:11 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *  Copyright (C) 2004-2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2004-2007  Anders Gavare.  All rights reserved.
3   *   *
4   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
5   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *     *  
27   *   *
28   *  $Id: dev_sn.c,v 1.13 2005/11/13 00:14:10 debug Exp $   *  $Id: dev_sn.c,v 1.18 2007/04/21 06:13:53 debug Exp $
29   *     *  
30   *  National Semiconductor SONIC ("sn") DP83932 ethernet.   *  National Semiconductor SONIC ("sn") DP83932 ethernet.
31   *   *
# Line 51  Line 51 
51  #define DEV_SN_LENGTH           0x1000  #define DEV_SN_LENGTH           0x1000
52    
53  struct sn_data {  struct sn_data {
54          int             irq_nr;          struct interrupt irq;
55          unsigned char   macaddr[6];          unsigned char   macaddr[6];
56          uint32_t        reg[SONIC_NREGS];          uint32_t        reg[SONIC_NREGS];
57  };  };
58    
59    
60  /*  DEVICE_ACCESS(sn)
  *  dev_sn_access():  
  */  
 int dev_sn_access(struct cpu *cpu, struct memory *mem,  
         uint64_t relative_addr, unsigned char *data, size_t len,  
         int writeflag, void *extra)  
61  {  {
62          struct sn_data *d = (struct sn_data *) extra;          struct sn_data *d = (struct sn_data *) extra;
63          uint64_t idata = 0, odata = 0;          uint64_t idata = 0, odata = 0;
# Line 81  int dev_sn_access(struct cpu *cpu, struc Line 76  int dev_sn_access(struct cpu *cpu, struc
76          }          }
77    
78          switch (regnr) {          switch (regnr) {
79    
80          default:          default:
81                  if (writeflag == MEM_WRITE) {                  if (writeflag == MEM_WRITE) {
82                          fatal("[ sn: unimplemented write to address 0x%x"                          fatal("[ sn: unimplemented write to address 0x%x"
# Line 90  int dev_sn_access(struct cpu *cpu, struc Line 86  int dev_sn_access(struct cpu *cpu, struc
86                          fatal("[ sn: unimplemented read from address 0x%x "                          fatal("[ sn: unimplemented read from address 0x%x "
87                              "(regnr %i) ]\n", (int)relative_addr, regnr);                              "(regnr %i) ]\n", (int)relative_addr, regnr);
88                  }                  }
89                    /*  exit(1);  */
90          }          }
91    
92          if (writeflag == MEM_READ)          if (writeflag == MEM_READ)
# Line 99  int dev_sn_access(struct cpu *cpu, struc Line 96  int dev_sn_access(struct cpu *cpu, struc
96  }  }
97    
98    
99  /*  DEVINIT(sn)
  *  devinit_sn():  
  */  
 int devinit_sn(struct devinit *devinit)  
100  {  {
101          char *name2;          char *name2;
102          size_t nlen = 55;          size_t nlen = 55;
# Line 113  int devinit_sn(struct devinit *devinit) Line 107  int devinit_sn(struct devinit *devinit)
107                  exit(1);                  exit(1);
108          }          }
109          memset(d, 0, sizeof(struct sn_data));          memset(d, 0, sizeof(struct sn_data));
110          d->irq_nr = devinit->irq_nr;  
111            INTERRUPT_CONNECT(devinit->interrupt_path, d->irq);
112    
113          net_generate_unique_mac(devinit->machine, d->macaddr);          net_generate_unique_mac(devinit->machine, d->macaddr);
114    

Legend:
Removed from v.20  
changed lines
  Added in v.40

  ViewVC Help
Powered by ViewVC 1.1.26