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

📄 runtime_md.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
*  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 + -