📄 native.h
字号:
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*******************************************************************************
* Filename:
* ---------
* native.h
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
*
*
* Author:
* -------
*
*
*==============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*==============================================================================
*******************************************************************************/
/*
* Copyright ?2003 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*/
/*=========================================================================
* SYSTEM: KVM
* SUBSYSTEM: Native function interface
* FILE: native.h
* OVERVIEW: This file contains the definitions of native functions
* needed by the Java Virtual Machine. The implementation
* is _not_ based on JNI (Java Native Interface),
* because JNI seems too expensive for small devices.
* AUTHOR: Antero Taivalsaari, Sun Labs, 1998
* Edited by Doug Simon 11/1998
* Frank Yellin
*=======================================================================*/
#ifndef _NATIVE_H
#define _NATIVE_H
/*=========================================================================
* Include files
*=======================================================================*/
/*=========================================================================
* Definitions and declarations
*=======================================================================*/
typedef void NativeFunctionType(void);
typedef NativeFunctionType *NativeFunctionPtr;
typedef struct {
const char *const name;
const char *const signature;
const NativeFunctionPtr implementation;
} NativeImplementationType;
typedef struct {
const char *const packageName;
const char *const baseName;
const NativeImplementationType *const implementation;
} ClassNativeImplementationType;
#define NATIVE_END_OF_LIST { NULL, NULL }
/*=========================================================================
* Variables
*=======================================================================*/
extern const ClassNativeImplementationType nativeImplementations[];
/* This variable is set to point to the current native */
/* method during native function calls. The variable */
/* is used for adjusting exception handler ranges in */
/* frame.c, as well as helping access local variables */
/* in KNI calls. It is important that this variable */
/* is kept NULL when the VM is not executing a native */
/* method */
extern METHOD CurrentNativeMethod;
/*=========================================================================
* Operations on native functions
*=======================================================================*/
NativeFunctionPtr getNativeFunction(INSTANCE_CLASS clazz,
const char* methodName,
const char* methodSignature);
void invokeNativeFunction(METHOD thisMethod);
void nativeInitialization(int *argc, char **argv);
#if INCLUDEDEBUGCODE
void printNativeFunctions(void);
#endif
/*=========================================================================
* Native function prototypes
*=======================================================================*/
/*
* Function prototypes of those native functions
* that are commonly linked into KVM.
*/
void Java_java_lang_Object_getClass(void);
void Java_java_lang_Object_hashCode(void);
void Java_java_lang_System_identityHashCode(void);
void Java_java_lang_Object_notify(void);
void Java_java_lang_Object_notifyAll(void);
void Java_java_lang_Object_wait(void);
#ifndef CLDC11
void Java_java_lang_Math_randomInt(void);
#endif /* CLDC11 */
void Java_java_lang_Class_isInterface(void);
void Java_java_lang_Class_isPrimitive(void);
void Java_java_lang_Class_forName(void);
void Java_java_lang_Class_newInstance(void);
void Java_java_lang_Class_getName(void);
void Java_java_lang_Class_isInstance(void);
void Java_java_lang_Class_isArray(void);
void Java_java_lang_Class_isAssignableFrom(void);
void Java_java_lang_Class_getPrimitiveClass(void);
void Java_java_lang_Class_exists(void);
void Java_java_lang_Class_getResourceAsStream0(void);
void Java_java_lang_Thread_activeCount(void);
void Java_java_lang_Thread_currentThread(void);
void Java_java_lang_Thread_yield(void);
void Java_java_lang_Thread_sleep(void);
void Java_java_lang_Thread_start(void);
void Java_java_lang_Thread_isAlive(void);
void Java_java_lang_Thread_setPriority0(void);
void Java_java_lang_Thread_setPriority(void);
void Java_java_lang_Throwable_fillInStackTrace(void);
void Java_java_lang_Throwable_printStackTrace0(void);
void Java_java_lang_Runtime_exitInternal(void);
void Java_java_lang_Runtime_freeMemory(void);
void Java_java_lang_Runtime_totalMemory(void);
void Java_java_lang_Runtime_gc(void);
void Java_java_lang_System_arraycopy (void);
void Java_java_lang_System_currentTimeMillis(void);
void Java_java_lang_System_getProperty0(void);
void Java_java_lang_System_getProperty(void);
void Java_java_lang_String_charAt(void);
void Java_java_lang_String_equals(void);
void Java_java_lang_String_indexOf__I(void);
void Java_java_lang_String_indexOf__II(void);
void Java_java_lang_String_intern(void);
void Java_java_lang_StringBuffer_append__I(void);
void Java_java_lang_StringBuffer_append__Ljava_lang_String_2(void);
void Java_java_lang_StringBuffer_toString(void);
void Java_com_sun_cldc_io_j2me_events_PrivateInputStream_open(void);
void Java_com_sun_cldc_io_j2me_events_PrivateInputStream_close(void);
#ifdef CLDC11
void Java_java_lang_Thread_interrupt0(void);
void Java_java_lang_Thread_interrupt(void);
void Java_java_lang_Math_randomInt(void);
void Java_java_lang_ref_WeakReference_initializeWeakReference(void);
void Java_com_sun_cldc_io_Waiter_waitForIO(void);
void Java_com_sun_cldc_io_j2me_socket_Protocol_initializeInternal(void);
void Java_com_sun_cldc_io_ConsoleOutputStream_write(void);
void Java_java_util_Calendar_init(void);
#else
void Java_java_io_PrintStream_putchar(void);
void printString(INSTANCE string);
void Java_com_sun_cldc_io_j2me_datagram_Protocol_open0(void);
void Java_com_sun_cldc_io_j2me_datagram_Protocol_getMaximumLength0(void);
void Java_com_sun_cldc_io_j2me_datagram_Protocol_getNominalLength0(void);
void Java_com_sun_cldc_io_j2me_datagram_Protocol_getIpNumber(void);
void Java_com_sun_cldc_io_j2me_datagram_Protocol_send0(void);
void Java_com_sun_cldc_io_j2me_datagram_Protocol_receive0(void);
void Java_com_sun_cldc_io_j2me_datagram_Protocol_close0(void);
void Java_com_sun_cldc_io_j2me_socket_Protocol_open0(void);
void Java_com_sun_cldc_io_j2me_socket_Protocol_read0(void);
void Java_com_sun_cldc_io_j2me_socket_Protocol_write0(void);
void Java_com_sun_cldc_io_j2me_socket_Protocol_available0(void);
void Java_com_sun_cldc_io_j2me_socket_Protocol_close0(void);
void Java_com_sun_cldc_io_j2me_serversocket_Protocol_open(void);
void Java_com_sun_cldc_io_j2me_serversocket_Protocol_accept(void);
void Java_com_sun_cldc_io_j2me_serversocket_Protocol_close(void);
void Java_com_sun_cldc_io_GeneralBase_iowait(void);
void Java_com_sun_cldc_io_NetworkConnectionBase_initializeInternal(void);
void Java_com_sun_cldc_io_j2me_debug_PrivateOutputStream_putchar(void);
void Java_com_sun_cldc_io_j2me_events_PrivateInputStream_open(void);
void Java_com_sun_cldc_io_j2me_events_PrivateInputStream_close(void);
void Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readInt(void);
void Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readByteArray(void);
void Java_com_sun_cldc_io_j2me_events_PrivateInputStream_readUTF(void);
#endif /* CLDC11 */
#endif /* _NATIVE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -