📄 runtime_md.c
字号:
/*****************************************************************************
* 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) 2001
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* runtime_md.c
*
* Project:
* --------
* Maui_Software
*
* Description:
* ------------
* This file implements machine dependent system service APIs
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
/*************************************************************************
* Include files
*************************************************************************/
#ifdef SUPPORT_JSR_184
#ifdef M3D_SUPPORT
#include "m3d_class.h"
#else
#include "m3g_class.h"
#endif /* M3D_SUPPORT */
#endif /* SUPPORT_JSR_184 */
#include "jal.h"
#include "jvm_internal.h"
#include "jam_internal.h"
#include "machine_md.h"
#include "kni.h"
#include "global.h"
/*************************************************************************
* Global Definition and Declaration
*************************************************************************/
static kal_uint32 date[MAXCALENDARFLDS];
static ulong64 CurrentTIME;
#ifdef M3D_SUPPORT
extern kal_mutexid jm3d_mutex;
#else
extern kal_mutexid jm3g_mutex;
#endif /* M3D_SUPPORT */
static kal_uint32 KVM_Current_System_Time_Ticks;
static kal_uint32 saved_pausescreentime_ticks = 0;
extern j2me_custom_resource_info_struct g_jvm_resource_info;
extern kal_bool is_alert;
extern confpropty_setting_struct* Default_IMPL_PROPERTY_FILE;
extern confpropty_setting_struct* Default_APPL_PROPERTY_FILE;
extern void j2me_init_vm_eventq(void);
extern void j2me_mma_init_resource(void);
extern void j2me_mma_exit_resource(void);
extern void COMM_ReadInd_Handler(int port);
extern void COMM_WriteInd_Handler(int port);
/*************************************************************************
* FUNCTION
* alertUser
*
* DESCRIPTION
* Show an alert dialog to the user and wait for confirmation before
* continuing execution.
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void
AlertUser(const char* message)
{
extern int is_VMRuinning;
is_VMRuinning = 0;
Kputs((char*)message);
is_alert = KAL_TRUE;
/* suspend current thread */
/*len = strlen(message);
if(len >256) len = 256;
j2me_send_alertuser((char*)message, len);*/
}
/*************************************************************************
* FUNCTION
* allocateHeap
*
* DESCRIPTION
* System Heap allocation
*
* Note that "sizeptr" reflects the size of the "aligned" memory, and
* note the actual size of the memory that has been allocated.
*
* PARAMETERS
* *sizeptr: Pointer to size of heap to allocate
* Pointer to actually size of heap
* *realresultptr: Returns pointer to actual pointer than
* was allocated, before any adjustments for
* memory alignment. This is the value that
* must be passed to "free()"
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
kal_int32 jvm_runtime_mem_initialize(long* runtime_pool, kal_int32 size){
return midpInitializeMemory(runtime_pool, size);
}
void
set_jvm_heap_size(kal_uint32 size)
{
RequestedHeapSize = size;
}
cell *
allocateHeap(long *sizeptr, void **realresultptr)
{
long size = *sizeptr;
RequestedHeapSize = javaheap_size;
size = (RequestedHeapSize + sizeof(cell) - 1) & ~(sizeof(cell) - 1);
*sizeptr = size;
*realresultptr= (void*)jvm_allocate_heap(size);
return(void *)(*realresultptr);
}
/*************************************************************************
* FUNCTION
* InitializeSystemTime
*
* DESCRIPTION
* System time initializer: To transfer the date to long integer in mini-seconds uint.
*
* PARAMETERS
*
* RETURNS
* None
*
* GLOBALS AFFECTED
*
*************************************************************************/
void
InitializeSystemTime(void)
{
kal_uint32* calendar_time = (kal_uint32*)Calendar_md();
KVM_Current_System_Time_Ticks = jvm_get_currenttime_tick();
/* Refine for default timezone setting (8 hour offset)*/
CurrentTIME = getJulianOffsetTimeInMillis((kal_uint16)(calendar_time[YEAR] + 1900),
(kal_uint8)calendar_time[MONTH],
(kal_uint8)calendar_time[DAY_OF_MONTH],
(kal_uint8)calendar_time[HOUR],
(kal_uint8)calendar_time[MINUTE],
(kal_uint8)calendar_time[SECOND],
0);
/* adjust the timezone to GMT - local time offset, the TimeZone class will add local time offset*/
if (Java_mode != JAVA_MIDP_TCK_MODE)
CurrentTIME -= (ulong64)(((int)(jvm_get_timezone() * 60)) * 60 * 1000);
/* The CurrentTIME is not possible be less than TICK_2_MS */
ASSERT(CurrentTIME >= TICK_2_MS(KVM_Current_System_Time_Ticks));
CurrentTIME -= TICK_2_MS(KVM_Current_System_Time_Ticks);
}
/*************************************************************************
* FUNCTION
* CurrentTime_md()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -