1 |
/* |
/* |
2 |
* Copyright (C) 2003-2005 Anders Gavare. All rights reserved. |
* Copyright (C) 2003-2006 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: |
25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: dev_dec5800.c,v 1.17 2005/11/13 00:14:08 debug Exp $ |
* $Id: dev_dec5800.c,v 1.18 2006/01/01 13:17:16 debug Exp $ |
29 |
* |
* |
30 |
* Emulation of devices found in a DECsystem 58x0, where x is the number |
* Emulation of devices found in a DECsystem 58x0, where x is the number |
31 |
* of CPUs in the system. (The CPU board is called KN5800 by Ultrix.) |
* of CPUs in the system. (The CPU board is called KN5800 by Ultrix.) |
73 |
/* |
/* |
74 |
* dev_dec5800_vectors_access(): |
* dev_dec5800_vectors_access(): |
75 |
*/ |
*/ |
76 |
int dev_dec5800_vectors_access(struct cpu *cpu, struct memory *mem, |
DEVICE_ACCESS(dec5800_vectors) |
|
uint64_t relative_addr, unsigned char *data, size_t len, |
|
|
int writeflag, void *extra) |
|
77 |
{ |
{ |
78 |
uint64_t idata = 0, odata = 0; |
uint64_t idata = 0, odata = 0; |
79 |
struct dec5800_data *d = extra; |
struct dec5800_data *d = extra; |
105 |
/* |
/* |
106 |
* dev_dec5800_access(): |
* dev_dec5800_access(): |
107 |
*/ |
*/ |
108 |
int dev_dec5800_access(struct cpu *cpu, struct memory *mem, |
DEVICE_ACCESS(dec5800) |
|
uint64_t relative_addr, unsigned char *data, size_t len, |
|
|
int writeflag, void *extra) |
|
109 |
{ |
{ |
110 |
uint64_t idata = 0, odata = 0; |
uint64_t idata = 0, odata = 0; |
111 |
struct dec5800_data *d = extra; |
struct dec5800_data *d = extra; |
190 |
/* |
/* |
191 |
* dev_decbi_access(): |
* dev_decbi_access(): |
192 |
*/ |
*/ |
193 |
int dev_decbi_access(struct cpu *cpu, struct memory *mem, |
DEVICE_ACCESS(decbi) |
|
uint64_t relative_addr, unsigned char *data, size_t len, |
|
|
int writeflag, void *extra) |
|
194 |
{ |
{ |
195 |
uint64_t idata = 0, odata = 0; |
uint64_t idata = 0, odata = 0; |
196 |
int node_nr; |
int node_nr; |
306 |
/* |
/* |
307 |
* dev_deccca_access(): |
* dev_deccca_access(): |
308 |
*/ |
*/ |
309 |
int dev_deccca_access(struct cpu *cpu, struct memory *mem, |
DEVICE_ACCESS(deccca) |
|
uint64_t relative_addr, unsigned char *data, size_t len, |
|
|
int writeflag, void *extra) |
|
310 |
{ |
{ |
311 |
uint64_t idata = 0, odata = 0; |
uint64_t idata = 0, odata = 0; |
312 |
/* struct deccca_data *d = extra; */ |
/* struct deccca_data *d = extra; */ |
388 |
/* |
/* |
389 |
* dev_decxmi_access(): |
* dev_decxmi_access(): |
390 |
*/ |
*/ |
391 |
int dev_decxmi_access(struct cpu *cpu, struct memory *mem, |
DEVICE_ACCESS(decxmi) |
|
uint64_t relative_addr, unsigned char *data, size_t len, |
|
|
int writeflag, void *extra) |
|
392 |
{ |
{ |
393 |
uint64_t idata = 0, odata = 0; |
uint64_t idata = 0, odata = 0; |
394 |
int node_nr; |
int node_nr; |