⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.h

📁 Nucleus_2_kvm_Hello 是kvm移植到Nucleus系统的源代码。。。好东西啊
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 1998-2002 Sun Microsystems, Inc. All Rights Reserved. * * This software is the confidential and proprietary information of Sun * Microsystems, Inc. ("Confidential Information").  You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into * with Sun. * * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING * THIS SOFTWARE OR ITS DERIVATIVES. * * Use is subject to license terms. *//*========================================================================= * SYSTEM:    KVM * SUBSYSTEM: Global definitions * FILE:      global.h * OVERVIEW:  Global system-wide definitions. * AUTHOR:    Antero Taivalsaari, Sun Labs, 1998 *            Many others since then... *=======================================================================*//*========================================================================= * COMMENT: * This file contains declarations that do not belong to any * particular structure or subsystem of the VM. There are many * other additional global variable declarations in other files. *=======================================================================*//*========================================================================= * System include files *=======================================================================*//* The performs per-machine initialization */#include "machine_md.h"/*========================================================================= * Global compile-time constants and typedefs *=======================================================================*/#undef  TRUE#undef  FALSE#define NIL   0typedef enum {    FALSE = 0,    TRUE = 1} bool_t;/*========================================================================= * Global data type declarations *=======================================================================*//*========================================================================= * NOTE: These type declarations are not quite as portable as they * could be.  It might be useful to declare specific type names for * all Java-specific types (e.g., jint instead of normal int, jlong * instead of long64, and so forth). *=======================================================================*/#define CELL  4        /* Size of a java word (= 4 bytes) */#define log2CELL 2     /* Shift amount equivalent to dividing by CELL */#define SHORTSIZE 2typedef unsigned char     BYTE;typedef unsigned long     cell;    /* Must be 32 bits long! *//*========================================================================= * System-wide structure declarations *=======================================================================*/typedef struct classStruct*         CLASS;typedef struct instanceClassStruct* INSTANCE_CLASS;typedef struct arrayClassStruct*    ARRAY_CLASS;typedef struct objectStruct*        OBJECT;typedef struct instanceStruct*      INSTANCE;typedef struct arrayStruct*         ARRAY;typedef struct stringInstanceStruct* STRING_INSTANCE;typedef struct throwableInstanceStruct* THROWABLE_INSTANCE;typedef struct internedStringInstanceStruct* INTERNED_STRING_INSTANCE;typedef struct classInstanceStruct* CLASS_INSTANCE;typedef struct byteArrayStruct*     BYTEARRAY;typedef struct shortArrayStruct*    SHORTARRAY;typedef struct pointerListStruct*   POINTERLIST;typedef struct weakPointerListStruct* WEAKPOINTERLIST;typedef struct fieldStruct*         FIELD;typedef struct fieldTableStruct*    FIELDTABLE;typedef struct methodStruct*        METHOD;typedef struct methodTableStruct*   METHODTABLE;typedef struct stackMapStruct*      STACKMAP;typedef struct icacheStruct*        ICACHE;typedef struct chunkStruct*         CHUNK;typedef struct staticChunkStruct*   STATICCHUNK;typedef struct threadQueue*         THREAD;typedef struct javaThreadStruct*    JAVATHREAD;typedef struct monitorStruct*       MONITOR;typedef struct stackStruct*         STACK;typedef struct frameStruct*            FRAME;typedef struct exceptionHandlerStruct* HANDLER;typedef struct exceptionHandlerTableStruct* HANDLERTABLE;typedef struct filePointerStruct*      FILEPOINTER;typedef union constantPoolEntryStruct* CONSTANTPOOL_ENTRY;typedef struct constantPoolStruct*     CONSTANTPOOL;typedef char* BYTES;typedef FILEPOINTER        *FILEPOINTER_HANDLE;typedef OBJECT             *OBJECT_HANDLE;typedef INSTANCE           *INSTANCE_HANDLE;typedef ARRAY              *ARRAY_HANDLE;typedef POINTERLIST        *POINTERLIST_HANDLE;typedef WEAKPOINTERLIST    *WEAKPOINTERLIST_HANDLE;typedef JAVATHREAD         *JAVATHREAD_HANDLE;typedef BYTES              *BYTES_HANDLE;typedef METHOD             *METHOD_HANDLE;typedef FRAME              *FRAME_HANDLE;typedef const char*        *CONST_CHAR_HANDLE;typedef unsigned char*     *UNSIGNED_CHAR_HANDLE;typedef STRING_INSTANCE    *STRING_INSTANCE_HANDLE;typedef THROWABLE_INSTANCE *THROWABLE_INSTANCE_HANDLE;typedef THREAD             *THREAD_HANDLE;#define ByteSizeToCellSize(n)   (((n) + (CELL - 1)) >> log2CELL)#define StructSizeInCells(structName) ((sizeof(struct structName) + 3) >> 2)#define UnionSizeInCells(structName) ((sizeof(union structName) + 3) >> 2)/* Field and Method key types */typedef unsigned short NameKey;typedef unsigned short MethodTypeKey;typedef unsigned short FieldTypeKey;typedef union {    struct {        unsigned short nameKey;        unsigned short typeKey; /* either MethodTypeKey or FieldTypeKey */    } nt;    unsigned long i;} NameTypeKey;/* Machines such as the Palm that use something other than FILE* for stdin * and stdout should redefine this in their machine_md.h */#ifndef LOGFILEPTR#define LOGFILEPTR FILE*#endif/*========================================================================= * Locally defined include files *=======================================================================*/#include "messages.h"#include "main.h"#include "long.h"#include "hashtable.h"#include "class.h"#include "garbage.h"#include "interpret.h"#if ENABLE_JAVA_DEBUGGER#include "debuggerStreams.h"#include "debugger.h"#endif /* ENABLE_JAVA_DEBUGGER */#include "thread.h"#include "pool.h"#include "fields.h"#include "frame.h"#include "loader.h"#include "native.h"#include "cache.h"#include "runtime.h"#include "profiling.h"#include "verifier.h"#include "log.h"#include "property.h"/* The network protocol implementations.  These *//* are not part of the CLDC Specification. */#include "commProtocol.h"#include "datagramProtocol.h"#include "socketProtocol.h"/*========================================================================= * Miscellaneous global variables *=======================================================================*//* Shared string buffer that is used internally by the VM */extern char str_buffer[];/* Requested heap size when starting the VM from command line */extern long RequestedHeapSize;/*========================================================================= * Global execution modes

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -