/[gxemul]/upstream/0.4.0.1/src/devices/dev_ps2_ether.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

Annotation of /upstream/0.4.0.1/src/devices/dev_ps2_ether.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 27 - (hide annotations)
Mon Oct 8 16:20:18 2007 UTC (16 years, 8 months ago) by dpavlin
File MIME type: text/plain
File size: 2981 byte(s)
0.4.0.1
1 dpavlin 4 /*
2 dpavlin 22 * Copyright (C) 2005-2006 Anders Gavare. All rights reserved.
3 dpavlin 4 *
4     * Redistribution and use in source and binary forms, with or without
5     * modification, are permitted provided that the following conditions are met:
6     *
7     * 1. Redistributions of source code must retain the above copyright
8     * notice, this list of conditions and the following disclaimer.
9     * 2. Redistributions in binary form must reproduce the above copyright
10     * notice, this list of conditions and the following disclaimer in the
11     * documentation and/or other materials provided with the distribution.
12     * 3. The name of the author may not be used to endorse or promote products
13     * derived from this software without specific prior written permission.
14     *
15     * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16     * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18     * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19     * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21     * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23     * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24     * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25     * SUCH DAMAGE.
26     *
27     *
28 dpavlin 22 * $Id: dev_ps2_ether.c,v 1.6 2006/02/09 20:02:59 debug Exp $
29 dpavlin 4 *
30     * Playstation 2 ethernet (smap and emac3).
31     *
32     * TODO
33     */
34    
35     #include <stdio.h>
36     #include <stdlib.h>
37     #include <string.h>
38    
39     #include "cpu.h"
40     #include "device.h"
41     #include "machine.h"
42     #include "memory.h"
43     #include "misc.h"
44    
45    
46     #define debug fatal
47    
48     struct ps2_ether_data {
49     int dummy;
50     };
51    
52    
53     /*
54     * dev_ps2_ether_access():
55     */
56 dpavlin 22 DEVICE_ACCESS(ps2_ether)
57 dpavlin 4 {
58     /* struct ps2_ether_data *d = extra; */
59     uint64_t idata = 0, odata = 0;
60    
61 dpavlin 18 if (writeflag == MEM_WRITE)
62     idata = memory_readmax64(cpu, data, len);
63 dpavlin 4
64     switch (relative_addr) {
65     case 0x105c:
66     /* TODO: make these register accesses nicer */
67     break;
68     case 0x105e:
69     odata = 0x8000; /* STACR_OC */
70     break;
71     default:
72     if (writeflag==MEM_READ) {
73     debug("[ ps2_ether: read from addr 0x%x: 0x%llx ]\n",
74     (int)relative_addr, (long long)odata);
75     } else {
76     debug("[ ps2_ether: write to addr 0x%x: 0x%llx ]\n",
77     (int)relative_addr, (long long)idata);
78     }
79     }
80    
81     if (writeflag == MEM_READ)
82     memory_writemax64(cpu, data, len, odata);
83    
84     return 1;
85     }
86    
87    
88 dpavlin 22 DEVINIT(ps2_ether)
89 dpavlin 4 {
90     struct ps2_ether_data *d;
91    
92     d = malloc(sizeof(struct ps2_ether_data));
93     if (d == NULL) {
94     fprintf(stderr, "out of memory\n");
95     exit(1);
96     }
97     memset(d, 0, sizeof(struct ps2_ether_data));
98    
99     memory_device_register(devinit->machine->memory, devinit->name,
100     devinit->addr, 0x4000,
101 dpavlin 20 dev_ps2_ether_access, d, DM_DEFAULT, NULL);
102 dpavlin 4
103     return 1;
104     }
105    

  ViewVC Help
Powered by ViewVC 1.1.26