📄 machine_md.h
字号:
#define METHODSTACKCACHING (1)
#define USEINTSRAM (1)
#endif /* ASMBYTECODE */
/*************************************************************************
* Debug Control Option
*************************************************************************/
/* Enable debug output from memory manager */
/* #define MIDP_MALLOC_DEBUG */
/* Enable debug VM */
/* Enable debug File system */
/* #define MIDP_FILE_DEBUG */
/* Enable debug connection */
/* #define MIDP_CONNECTION_DEBUG */
/* Enable HEAP debug information */
/* Enable push debug information */
/* #define MIDP_PUSH_DEBUG */
/* Enable MMAPI debug information */
/* #define MMAPI_DEBUG */
/* Enable KDWP debug information */
/* #define KDWP_DEBUG */
/*************************************************************************
* Platform-specific macros and function prototypes
*************************************************************************/
#define InitializeVM()
#define FinalizeVM()
#define RandomNumber_md() rand()
#define IS_RESTRICTED_PACKAGE_NAME(name) checkRestrictedPackageName(name)
/* Override the sleep function defined in main.h */
#define SLEEP_UNTIL(wakeupTime) \
{ \
long64 delta = (long64)(wakeupTime - CurrentTime_md()); \
kal_sleep_task( (kal_uint32)(delta>>2) ); \
}
/*************************************************************************
* The following are about Fast Bytecode Flash Version
*************************************************************************/
#if ENABLEFASTBYTECODES
#ifndef FASTBYTECODEFLASHVER
#define FASTBYTECODEFLASHVER 1
#ifndef HITRATETEST
#define HITRATETEST 0
#endif /* */
#endif /* FASTBYTECODEFLASHVER */
extern kal_uint32 FASTBYTECODELOWMEMORY;
extern kal_bool ROMRemapping_enabled;
#if FASTBYTECODEFLASHVER
#define FLASHCACHEPOINTERONLYBITS 8
#define FLASHCACHEPOINTERONLYSIZE 256 /* (1<<FLASHCACHEPOINTERONLYBITS) */
extern unsigned int *flashcachePointerOnly;
#define FLASHCACHEPOINTERONLYADDR(IP) (unsigned int *)((unsigned int)flashcachePointerOnly+(((unsigned int)(IP)&0x000000FF)<<2))
#if HITRATETEST
extern int flashcachePointerOnlyHit;
extern int flashcachePointerOnlyMiss;
#endif /* HITRATETEST */
#define FLASHCACHEBITS 9
#define FLASHCACHESIZE 512 /* (1<<FLASHCACHEBITS) */
extern unsigned int *flashcache;
#define FLASHCACHEADDR(IP) (unsigned int *)((unsigned int)flashcache+(((unsigned int)(IP)&0x000001FF)<<3))
#if HITRATETEST
extern int flashcacheHit;
extern int flashcacheMiss;
#endif /* HITRATETEST */
#endif /* FASTBYTECODEFLASHVER */
#endif /* ENABLEFASTBYTECODES */
/*************************************************************************
* Platform-specific datatype definitions
*************************************************************************/
#if !COMPILER_SUPPORTS_LONG
#error "Compiler must support long long type"
#endif /* COMPILER_SUPPORTS_LONG */
typedef long Long;
typedef char Boolean;
#ifndef __MTK_TARGET__
typedef __int64 long64;
typedef unsigned __int64 ulong64;
typedef __int64 jlong;
#else
typedef long long long64; /* 64-bit signed integer type */
typedef unsigned long long ulong64; /* 64-bit unsigned integer type */
typedef long long jlong; /* Added for KNI */
#endif /* !__MTK_TARGET__ */
#ifndef Calendar_md
unsigned long *Calendar_md(void);
#endif /* !Calendar_md */
#define SLEEP_FOR(delta) kal_sleep_task((kal_uint32)(delta>>2))
/*************************************************************************
* Platform-specific function prototypes
*************************************************************************/
#define InitializeVM()
#define FinalizeVM()
#define RandomNumber_md() rand()
extern void InitializeWindowSystem(void);
extern void FinalizeWindowSystem(void);
/* Thread processing routines */
extern void releaseAsyncThread(void);
extern void processAcyncThread(void);
extern void Yield_md(void);
/*************************************************************************
* MIDP
*************************************************************************/
#define USING_LCD_SHADOW_BUFFER 1
#define USING_LCD_HIDE_SHADOW_BUFFER 0
#define USING_JAVAHEAP_AS_IMAGEBUFFER 1
#define FAST_KNI 1
#ifndef __MTK_TARGET__
#define __align(a)
#endif /* __MTK_TARGET__ */
/* 2003 0818 Hsu BackBuffer Data Structure */
typedef struct _MyImage_ {
int flag_mutable;
int prop;
unsigned char *imageMask;
unsigned short reserved1;
unsigned char TAG;
unsigned char TRNS;
unsigned short width;
unsigned short height;
/* M3G need PNG datatype to determine Image2D's type, and it use bit to determine datatype */
int data_type;
#if USING_JAVAHEAP_AS_IMAGEBUFFER
union {
unsigned short *datap;
unsigned short data[1];
}u;
#else
unsigned short *data;
#endif /* USING_JAVAHEAP_AS_IMAGEBUFFER */
}ImageGC, *pImageGC;
#ifndef COMPILING_ROMJAVA
#include "gui_data_types.h"
extern kal_int32 j2me_custom_lcd_rgb_to_hw(kal_uint32 r, kal_uint32 g, kal_uint32 b);
extern kal_int32 j2me_custom_lcd_rgb32_to_hw(kal_uint32 RGB32);
extern void j2me_custom_hw_to_mmi_color(kal_uint32 RGB, kal_int32 alpha, color* c);
#endif
extern kal_uint8 j2me_r_mask, j2me_g_mask, j2me_b_mask;
extern unsigned short j2me_color_depth;
extern unsigned short j2me_custom_lcd_hw_format(kal_uint8 r, kal_uint8 g, kal_uint8 b);
extern unsigned char j2me_custom_lcd_hw_color(int color, kal_uint16 value);
#define INTtoSHORT(i) j2me_custom_lcd_hw_format(((i>>16)&0xff), ((i>>8)&0xff), ((i)&0xff))
/*************************************************************************
* Audio
*************************************************************************/
extern void J2ME_StopPlayTone(void);
typedef struct {
kal_int32 *toneseq;
kal_int32 tonelen;
kal_int32 curTone;
kal_int32 curMTime;
kal_int32 thread;
kal_int32 playerid;
kal_int32 playid;
kal_uint8 play;
kal_uint8 volume;
kal_uint8 firsttime;
} TONESEQ;
/*************************************************************************
* JAM Event
*************************************************************************/
typedef struct j2me_keyevent_data_struct {
kal_uint8 ref_count;
kal_uint16 msg_len;
kal_uint16 keycode;
kal_uint16 keytype;
} j2me_keyevent_data;
/*************************************************************************
* Global Variable and Function Declaration
*************************************************************************/
/*************************************************************************
* The following are used in several different places, and its worthwhile
* to define them just once
*************************************************************************/
#if USESTATIC
extern void* allocateVirtualMemory_md(long size);
extern void freeVirtualMemory_md(void *address, long size);
enum {
PVM_NoAccess, PVM_ReadOnly, PVM_ReadWrite
};
extern void protectVirtualMemory_md(void *address, long size, int protection);
#endif /* USESTATIC */
extern void InitializeWindowSystem(void);
extern void FinalizeWindowSystem(void);
/*
* override IS_RESTRICTED_PACKAGE_NAME macro in main.h to add more
* restricted namespace.
*
* return type for checkRestrictedPackageName() is "unsigned char"
* instead of "jboolean" because trying to include kni.h causes
* compilation errors.
*/
extern unsigned char checkRestrictedPackageName(const char *name);
/* Added by Justin. Use the function To get MIDlet suite ID by
* it's storage name. Use it after initializeStorage() and
* midpInitializeMemory have been called
*/
extern int getStorageNumberFromName(char* MIDletStorageName);
extern java_mode_enum Java_mode;
extern kal_uint64 CurrentTime_md(void);
#endif /* _MACHINE_MD_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -