home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gdb-4.16-base.tgz / gdb-4.16-base.tar / fsf / gdb / sim / ppc / basics.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-12-15  |  2.5 KB  |  107 lines

  1. /*  This file is part of the program psim.
  2.  
  3.     Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 2 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program; if not, write to the Free Software
  17.     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  18.  
  19.     */
  20.  
  21.  
  22. #ifndef _BASICS_H_
  23. #define _BASICS_H_
  24.  
  25.  
  26. /* from Michael Meissner, macro's to handle concating symbols better */
  27.  
  28. #ifdef __STDC__
  29. #define CONCAT2(a,b)     a##b
  30. #define CONCAT3(a,b,c)     a##b##c
  31. #define CONCAT4(a,b,c,d) a##b##c##d
  32. #else
  33. #define CONCAT2(a,b)     a/**/b
  34. #define CONCAT3(a,b,c)     a/**/b/**/c
  35. #define CONCAT4(a,b,c,d) a/**/b/**/c/**/d
  36. #endif
  37.  
  38. #define XCONCAT2(a,b)     CONCAT2(a,b)
  39. #define XCONCAT3(a,b,c)   CONCAT3(a,b,c)
  40. #define XCONCAT4(a,b,c,d) CONCAT4(a,b,c,d)
  41.  
  42.  
  43. /* many things pass around the cpu and psim object with out knowing
  44.    what it is */
  45.  
  46. typedef struct _cpu cpu;
  47. typedef struct _psim psim;
  48. typedef struct _device device;
  49. typedef struct _device_instance device_instance;
  50.  
  51.  
  52. /* many things are moving data between the host and target */
  53.  
  54. typedef enum {
  55.   cooked_transfer,
  56.   raw_transfer,
  57. } transfer_mode;
  58.  
  59. /* possible exit statuses */
  60.  
  61. typedef enum {
  62.   was_continuing, was_trap, was_exited, was_signalled
  63. } stop_reason;
  64.  
  65.  
  66. /* Basic configuration */
  67.  
  68. #include "config.h"
  69. #include "ppc-config.h"
  70. #include "inline.h"
  71.  
  72.  
  73. /* Basic host dependant mess - hopefully <stdio.h> will bring
  74.    potential conflicts out in the open */
  75.  
  76. #include <stdio.h>
  77.  
  78. #ifndef NORETURN
  79. #define NORETURN
  80. #endif
  81.  
  82. #ifndef NULL
  83. #define NULL 0
  84. #endif
  85.  
  86. #if !defined (__attribute__) && (!defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7))
  87. #define __attribute__(arg)
  88. #endif
  89.  
  90. #if !defined (UNUSED)
  91. #define UNUSED __attribute__((__unused__))
  92. #endif
  93.  
  94.  
  95. /* Basic definitions - ordered so that nothing calls what comes after
  96.    it */
  97.  
  98. #include "sim_callbacks.h"
  99.  
  100. #include "debug.h"
  101.  
  102. #include "words.h"
  103. #include "bits.h"
  104. #include "sim-endian.h"
  105.  
  106. #endif /* _BASICS_H_ */
  107.