types.hpp

Go to the documentation of this file.
00001 /* Copyright 1994, 1995 LongView Technologies L.L.C. $Revision: 1.68 $ */
00002 /* Copyright (c) 2006, Sun Microsystems, Inc.
00003 All rights reserved.
00004 
00005 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the 
00006 following conditions are met:
00007 
00008     * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
00009     * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following 
00010           disclaimer in the documentation and/or other materials provided with the distribution.
00011     * Neither the name of Sun Microsystems nor the names of its contributors may be used to endorse or promote products derived 
00012           from this software without specific prior written permission.
00013 
00014 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT 
00015 NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
00016 THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
00017 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
00018 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
00019 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
00020 
00021 
00022 */
00023 
00024 
00025 
00026 // This file contains some global types, plus many partial definitions
00027 // to reduce include file dependencies.  (If foo.h contains a bar* and
00028 // struct bar is defined here, foo.h need not depend on bar.h.)
00029 
00030 #define SYSTEM_NAME "strongtalk"
00031 
00032 class bootstrap;
00033 
00034 #if !defined(__GNUC__) && !defined(_MSC_VER)
00035   // GNU predefines bool
00036   enum {false, true};
00037   typedef int bool;
00038 #endif
00039 
00040 typedef int smi;
00041 
00042 typedef unsigned char  u_char;
00043 typedef unsigned short doubleByte;
00044 typedef unsigned short uint16;
00045 typedef unsigned short u_short;
00046 typedef          short int16;
00047 typedef unsigned long  uint32;
00048 
00049 class  universe;
00050 class  space;
00051 class    newSpace;
00052 class    oldSpace;
00053 class  generation;
00054 class    newGeneration;
00055 class    oldGeneration;
00056 class  rSet;
00057 class  symbolTable;
00058 class  klassTable;
00059 class  ageTable;
00060 
00061 class ReservedSpace;
00062 class VirtualSpace;
00063 
00064 class  ResourceObj;
00065 class    PrintableResourceObj;
00066 
00067 class  CHeapObj;
00068 class    PrintableCHeapObj;
00069 
00070 class  StackObj;
00071 class    PrintableStackObj;
00072 
00073 class ostream;
00074 class stringStream;
00075 
00076 class Thread;
00077 class Event;
00078 
00079 class  primitive_desc;
00080 class  DLLCache;
00081 class  CompiledDLL_Cache;
00082 
00083 class scopeNode;
00084 
00085 class  frame;
00086 class  vframe;
00087 class    deltaVFrame;
00088 class      compiledVFrame;
00089 class      interpretedVFrame;
00090 class    cVFrame;
00091 class      cChunk;
00092 class  Stack;
00093 
00094 class   Process;
00095 class     VMProcess;
00096 class     DeltaProcess;
00097 class   Processes;
00098 
00099 class   VM_Operation;
00100 
00101 class   spaceSizes;
00102 
00103 class  EventBuffer;
00104 class  varDesc;
00105 
00106 class  LookupKey;
00107 class  LookupTable;
00108 
00109 class InterpretedIC;
00110 
00111 class IC_Iterator;
00112 class   InterpretedIC_Iterator;
00113 class   CompiledIC_Iterator;
00114 
00115 class InterpretedPrim_Cache;
00116 class InterpretedDLL_Cache;
00117 
00118 class   Heap;
00119 
00120 // type of runtime functions
00121 typedef oop     (*fntype)(...);
00122 typedef void    (*oopsDoFn)(oop* p);
00123 typedef void    (*doFn)();
00124 
00125 class ResourceArea;
00126 class ResourceMark;
00127 class Resources;
00128 
00129 template <class T> class Closure;
00130 class ObjectClosure;
00131 class ObjectLayoutClosure;
00132 class FrameClosure;
00133 class FrameLayoutClosure;
00134 class ProcessClosure;
00135 class ObjectFilterClosure;
00136 class OopClosure;
00137 class klassOopClosure;
00138 class outputStream;
00139 
00140 #ifdef DELTA_COMPILER
00141 
00142   class Compiler;
00143   class OldAssembler;
00144   class Assembler;
00145   class Register;
00146   class Inliner;
00147   class CompiledLoop;
00148   class LoopRegCandidate;
00149   class HoistedTypeTest;
00150   class IntervalInfo;
00151 
00152   class zone;
00153   class jumpTable;
00154   class jumpTableEntry;
00155   class codeTable;
00156   class Heap;
00157   class relocInfo;
00158   class PcDesc;
00159   class ScopeDesc;
00160   class NonInlinedBlockScopeDesc;
00161   class NameDesc;
00162 
00163   class nmethodScopes;
00164   class PcDesc;
00165   class ScopeDescRecorder;
00166   class NameNode;
00167   typedef class ScopeDescNode    *ScopeInfo;
00168   typedef class PcDescInfoClass  *PcDescInfo;
00169   class LogicalAddress;
00170   class ScopeDescRecorder;
00171   class NonInlinedBlockScopeNode;
00172 
00173   class NCodeBase;
00174   class   OopNCode;
00175   class     nmethod;
00176   class     PIC;
00177   class CompiledIC;
00178   class PrimitiveIC;
00179 
00180   class nmethod_patch;
00181 
00182   class AbstractBB;
00183   class   BB;
00184   class     BranchBB;
00185   class     MergeBB;
00186   class BBIterator;
00187   
00188   class Node;
00189   class   LoopHeaderNode;
00190   class   NonTrivialNode;
00191   class     BranchNode;
00192   class       TArithRRNode;
00193   class     LoadOffsetNode;
00194   class     CallNode;
00195   class       PrimNode;
00196   class   TrivialNode;
00197   class     MergeNode;
00198   
00199   class PReg;
00200   class   BlockPReg;
00201   class   ConstPReg;
00202   class   NoPReg;
00203   class   SAPReg;
00204   class     SplitPReg;
00205 
00206   class IRGenerator;
00207 
00208   class Compiler;
00209   class Scope;
00210   class   InlinedScope;
00211 
00212   class Expr;
00213   class   KlassExpr;
00214   class   ConstantExpr;
00215   class   MergeExpr;
00216   class   UnknownExpr;
00217   class ExprStack;
00218   
00219   class DefUse;
00220   class   Use;
00221   class   Def;
00222   class PRegBBIndex;
00223   class DUInfo;
00224   class BitVector;
00225   class CPInfo;
00226   class RegCandidate;
00227   class RegisterEqClass;
00228   
00229   class RUncommonBranch;
00230   class RScope;
00231   class   RDeltaScope;
00232   class   RPICScope;
00233   class     RUntakenScope;
00234   class RDatabaseScope;
00235 
00236   class Recompilee;
00237   class   CompiledRecompilee;
00238   class   InterpretedRecompilee;
00239   class RFrame;
00240   class   CompiledRFrame;
00241   class   InterpretedRFrame;
00242   class RecompilationPolicy;
00243 
00244   class SendInfo;
00245   class HoistedTypeTest;
00246 
00247 class StackChunkBuilder;
00248 
00249 #endif

Generated on Mon Oct 9 13:37:29 2006 for Strongtalk VM by  doxygen 1.4.7