| /*  This file is part of the program psim. | 
 |  | 
 |     Copyright (C) 1994-1997, 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 3 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, see <http://www.gnu.org/licenses/>. | 
 |   | 
 |     */ | 
 |  | 
 |  | 
 | #ifndef _BASICS_H_ | 
 | #define _BASICS_H_ | 
 |  | 
 | /* This must come before any other includes.  */ | 
 | #include "defs.h" | 
 |  | 
 |  | 
 | /* many things pass around the cpu and psim object with out knowing | 
 |    what it is */ | 
 |  | 
 | typedef struct _cpu cpu; | 
 | typedef struct _psim psim; | 
 | typedef struct _device device; | 
 | typedef struct _device_instance device_instance; | 
 | typedef struct _event_queue event_queue; | 
 | typedef struct _event_entry_tag *event_entry_tag; | 
 |  | 
 |  | 
 | /* many things are moving data between the host and target */ | 
 |  | 
 | typedef enum { | 
 |   cooked_transfer, | 
 |   raw_transfer, | 
 | } transfer_mode; | 
 |  | 
 |  | 
 | /* possible exit statuses */ | 
 |  | 
 | typedef enum { | 
 |   was_continuing, was_trap, was_exited, was_signalled | 
 | } stop_reason; | 
 |  | 
 |  | 
 | /* disposition of an object when things are next restarted */ | 
 |  | 
 | typedef enum { | 
 |   permenant_object, | 
 |   tempoary_object, | 
 | } object_disposition; | 
 |  | 
 |  | 
 | /* directions */ | 
 |  | 
 | typedef enum { | 
 |   bidirect_port, | 
 |   input_port, | 
 |   output_port, | 
 | } port_direction; | 
 |  | 
 |  | 
 |  | 
 | /* Basic configuration */ | 
 |  | 
 | #include "ppc-config.h" | 
 | #include "inline.h" | 
 |  | 
 |  | 
 | /* Basic host dependant mess - hopefully <stdio.h> + <stdarg.h> will | 
 |    bring potential conflicts out in the open */ | 
 |  | 
 | #include <stdarg.h> | 
 | #include <stdio.h> | 
 | #include <stdlib.h> | 
 |  | 
 |  | 
 | #if !defined (__attribute__) | 
 | #if (!defined(__GNUC__) \ | 
 |      || (__GNUC__ < 2) \ | 
 |      || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)) | 
 | #define __attribute__(arg) | 
 | #endif | 
 | #endif | 
 |  | 
 |  | 
 | /* Basic definitions - ordered so that nothing calls what comes after | 
 |    it */ | 
 |  | 
 | #include "sim_callbacks.h" | 
 |  | 
 | #include "debug.h" | 
 |  | 
 | #include "words.h" | 
 | #include "bits.h" | 
 | #include "sim-endian.h" | 
 |  | 
 | #endif /* _BASICS_H_ */ |