aboutsummaryrefslogtreecommitdiff
path: root/sim/ppc/device_table.h
diff options
context:
space:
mode:
Diffstat (limited to 'sim/ppc/device_table.h')
-rw-r--r--sim/ppc/device_table.h306
1 files changed, 0 insertions, 306 deletions
diff --git a/sim/ppc/device_table.h b/sim/ppc/device_table.h
deleted file mode 100644
index 3e2a158..0000000
--- a/sim/ppc/device_table.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/* This file is part of the program psim.
-
- Copyright (C) 1994-1996, Andrew Cagney <cagney@highland.com.au>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- */
-
-
-#ifndef _DEVICE_TABLE_H_
-#define _DEVICE_TABLE_H_
-
-#include <stdarg.h>
-
-#include "basics.h"
-#include "device.h"
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
-
-typedef struct _device_callbacks device_callbacks;
-
-
-/* The creator, returns a pointer to any data that should be allocated
- once during (multiple) simulation runs */
-
-typedef void *(device_creator)
- (const char *name,
- const device_unit *unit_address,
- const char *args);
-
-
-/* two stages of initialization */
-
-typedef void (device_init_callback)
- (device *me);
-
-typedef struct _device_init_callbacks {
- device_init_callback *address; /* NULL - ignore */
- device_init_callback *data; /* NULL - ignore */
-} device_init_callbacks;
-
-
-/* attaching/detaching a devices address space to its parent */
-
-typedef void (device_address_callback)
- (device *me,
- const char *name,
- attach_type attach,
- int space,
- unsigned_word addr,
- unsigned nr_bytes,
- access_type access,
- device *who); /*callback/default*/
-
-typedef struct _device_address_callbacks {
- device_address_callback *attach;
- device_address_callback *detach;
-} device_address_callbacks;
-
-
-/* I/O operations - from parent */
-
-typedef unsigned (device_io_read_buffer_callback)
- (device *me,
- void *dest,
- int space,
- unsigned_word addr,
- unsigned nr_bytes,
- cpu *processor,
- unsigned_word cia);
-
-typedef unsigned (device_io_write_buffer_callback)
- (device *me,
- const void *source,
- int space,
- unsigned_word addr,
- unsigned nr_bytes,
- cpu *processor,
- unsigned_word cia);
-
-typedef struct _device_io_callbacks { /* NULL - error */
- device_io_read_buffer_callback *read_buffer;
- device_io_write_buffer_callback *write_buffer;
-} device_io_callbacks;
-
-
-/* DMA transfers by a device via its parent */
-
-typedef unsigned (device_dma_read_buffer_callback)
- (device *me,
- void *dest,
- int space,
- unsigned_word addr,
- unsigned nr_bytes);
-
-typedef unsigned (device_dma_write_buffer_callback)
- (device *me,
- const void *source,
- int space,
- unsigned_word addr,
- unsigned nr_bytes,
- int violate_read_only_section);
-
-typedef struct _device_dma_callbacks { /* NULL - error */
- device_dma_read_buffer_callback *read_buffer;
- device_dma_write_buffer_callback *write_buffer;
-} device_dma_callbacks;
-
-
-/* Interrupts */
-
-typedef void (device_interrupt_event_callback)
- (device *me,
- int my_port,
- device *source,
- int source_port,
- int level,
- cpu *processor,
- unsigned_word cia);
-
-typedef void (device_child_interrupt_event_callback)
- (device *me,
- device *parent,
- device *source,
- int source_port,
- int level,
- cpu *processor,
- unsigned_word cia);
-
-typedef struct _device_interrupt_port_descriptor {
- const char *name;
- int number;
- int bound;
-} device_interrupt_port_descriptor;
-
-typedef struct _device_interrupt_callbacks {
- device_interrupt_event_callback *event;
- device_child_interrupt_event_callback *child_event;
- const device_interrupt_port_descriptor *ports;
-} device_interrupt_callbacks;
-
-
-/* symbolic value decoding */
-
-typedef int (device_unit_decode_callback)
- (device *me,
- const char *unit,
- device_unit *address);
-
-typedef int (device_unit_encode_callback)
- (device *me,
- const device_unit *unit_address,
- char *buf,
- int sizeof_buf);
-
-typedef struct _device_convert_callbacks {
- device_unit_decode_callback *decode_unit;
- device_unit_encode_callback *encode_unit;
-} device_convert_callbacks;
-
-
-/* instances */
-
-typedef void (device_instance_delete_callback)
- (device_instance *instance);
-
-typedef int (device_instance_read_callback)
- (device_instance *instance,
- void *buf,
- unsigned_word len);
-
-typedef int (device_instance_write_callback)
- (device_instance *instance,
- const void *buf,
- unsigned_word len);
-
-typedef int (device_instance_seek_callback)
- (device_instance *instance,
- unsigned_word pos_hi,
- unsigned_word pos_lo);
-
-typedef unsigned_word (device_instance_claim_callback)
- (device_instance *instance,
- unsigned_word address,
- unsigned_word length,
- unsigned_word alignment);
-
-typedef void (device_instance_release_callback)
- (device_instance *instance,
- unsigned_word address,
- unsigned_word length);
-
-struct _device_instance_callbacks { /* NULL - error */
- device_instance_delete_callback *delete;
- device_instance_read_callback *read;
- device_instance_write_callback *write;
- device_instance_seek_callback *seek;
- device_instance_claim_callback *claim;
- device_instance_release_callback *release;
-};
-
-typedef device_instance *(device_create_instance_callback)
- (device *me,
- const char *path,
- const char *args);
-
-typedef device_instance *(package_create_instance_callback)
- (device_instance *parent,
- const char *args);
-
-
-/* all else fails */
-
-typedef int (device_ioctl_callback)
- (device *me,
- cpu *processor,
- unsigned_word cia,
- va_list ap);
-
-typedef void (device_usage_callback)
- (int verbose);
-
-
-/* the callbacks */
-
-struct _device_callbacks {
-
- /* initialization */
- device_init_callbacks init;
-
- /* address/data config - from child */
- device_address_callbacks address;
-
- /* address/data transfer - from parent */
- device_io_callbacks io;
-
- /* address/data transfer - from child */
- device_dma_callbacks dma;
-
- /* interrupt signalling */
- device_interrupt_callbacks interrupt;
-
- /* bus address decoding */
- device_convert_callbacks convert;
-
- /* instances */
- device_create_instance_callback *instance_create;
-
- /* back door to anything we've forgot */
- device_ioctl_callback *ioctl;
- device_usage_callback *usage;
-};
-
-
-/* Table of all the devices and a function to lookup/create a device
- from its name */
-
-typedef struct _device_descriptor device_descriptor;
-struct _device_descriptor {
- const char *name;
- device_creator *creator;
- const device_callbacks *callbacks;
-};
-
-extern const device_descriptor *const device_table[];
-#include "hw.h"
-
-
-/* Pass through, ignore and generic callback functions. A call going
- towards the root device are passed on up, local calls are ignored
- and call downs abort */
-
-extern device_address_callback passthrough_device_address_attach;
-extern device_address_callback passthrough_device_address_detach;
-extern device_dma_read_buffer_callback passthrough_device_dma_read_buffer;
-extern device_dma_write_buffer_callback passthrough_device_dma_write_buffer;
-
-extern device_unit_decode_callback ignore_device_unit_decode;
-
-extern device_init_callback generic_device_init_address;
-extern device_unit_decode_callback generic_device_unit_decode;
-extern device_unit_encode_callback generic_device_unit_encode;
-
-
-extern const device_callbacks passthrough_device_callbacks;
-
-#endif /* _DEVICE_TABLE_H_ */