Line 15... |
Line 15... |
|
|
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|
|
|
#include <stdio.h>
|
|
|
#define DEFAULT_MEMORY_START 0
|
#define DEFAULT_MEMORY_START 0
|
#define DEFAULT_MEMORY_LEN 0x800000
|
#define DEFAULT_MEMORY_LEN 0x800000
|
#define STACK_SIZE 20
|
#define STACK_SIZE 20
|
#define LABELNAME_LEN 50
|
#define LABELNAME_LEN 50
|
#define INSNAME_LEN 15
|
#define INSNAME_LEN 15
|
Line 58... |
Line 60... |
unsigned long granularity; /* how many bytes read/write accepts: 1/2/4 */
|
unsigned long granularity; /* how many bytes read/write accepts: 1/2/4 */
|
int delayr; /* Read delay */
|
int delayr; /* Read delay */
|
int delayw; /* Write delay */
|
int delayw; /* Write delay */
|
|
|
int chip_select; /* Needed by memory controller; specifies chip select number for this memory area. */
|
int chip_select; /* Needed by memory controller; specifies chip select number for this memory area. */
|
|
FILE *log; /* log file if this device is to be logged, NULL otherwise */
|
|
|
unsigned long (*readfunc)(unsigned long);
|
unsigned long (*readfunc)(unsigned long);
|
void (*writefunc)(unsigned long, unsigned long);
|
void (*writefunc)(unsigned long, unsigned long);
|
/* private data */
|
/* private data */
|
unsigned long misc;
|
unsigned long misc;
|
Line 89... |
Line 92... |
void init_memory_table ();
|
void init_memory_table ();
|
|
|
/* Changes read/write memory in read/write only */
|
/* Changes read/write memory in read/write only */
|
void lock_memory_table ();
|
void lock_memory_table ();
|
|
|
|
/* Closes files, etc. */
|
|
void done_memory_table ();
|
|
|
/* Register read and write function for a memory area.
|
/* Register read and write function for a memory area.
|
addr is inside the area, if addr & addr_mask == addr_compare
|
addr is inside the area, if addr & addr_mask == addr_compare
|
(used also by peripheral devices like 16450 UART etc.) */
|
(used also by peripheral devices like 16450 UART etc.) */
|
void register_memoryarea_mask(unsigned long addr_mask, unsigned long addr_compare,
|
void register_memoryarea_mask(unsigned long addr_mask, unsigned long addr_compare,
|
unsigned long size, unsigned granularity,
|
unsigned long size, unsigned granularity,
|