示例#1
0
/*
 * aed process daemon and other command line may access me 
 * concurrently
 */
static long monitor_hang_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
	int ret = 0;
	if (cmd == AEEIOCTL_WDT_KICK_POWERKEY) {
		if ((int)arg == WDT_SETBY_WMS_DISABLE_PWK_MONITOR) {
			/* pwk_start_monitor=0; */
			/* wdt_kick_status=0; */
			/* hwt_kick_times=0; */
		} else if ((int)arg == WDT_SETBY_WMS_ENABLE_PWK_MONITOR) {
			/* pwk_start_monitor=1; */
			/* wdt_kick_status=0; */
			/* hwt_kick_times=0; */
		} else if ((int)arg < 0xf) {
			aee_kernel_wdt_kick_Powkey_api("Powerkey ioctl",(int)arg);
		}
		
		LOGE("AEEIOCTL_WDT_Kick_Powerkey ( 0x%x)\n", (int)arg);
		
		return ret;

	}	
	
	if (cmd == AEEIOCTL_RT_MON_Kick) {
		#ifdef CONFIG_MTK_AEE_POWERKEY_HANG_DETECT
		LOGE("AEEIOCTL_RT_MON_Kick ( %d)\n", (int)arg);
		aee_kernel_RT_Monitor_api((int)arg);
		#endif
		return ret;
	}

	return ret;
}
/*
 * aed process daemon and other command line may access me
 * concurrently
 */
static long monitor_hang_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
	int ret = 0;
	static long long monitor_status;
	if (cmd == AEEIOCTL_WDT_KICK_POWERKEY) {
#ifdef CONFIG_MTK_AEE_POWERKEY_HANG_DETECT
		if ((int)arg == WDT_SETBY_WMS_DISABLE_PWK_MONITOR) {
			/* pwk_start_monitor=0; */
			/* wdt_kick_status=0; */
			/* hwt_kick_times=0; */
		} else if ((int)arg == WDT_SETBY_WMS_ENABLE_PWK_MONITOR) {
			/* pwk_start_monitor=1; */
			/* wdt_kick_status=0; */
			/* hwt_kick_times=0; */
		} else if ((int)arg < 0xf) {
			aee_kernel_wdt_kick_Powkey_api("Powerkey ioctl", (int)arg);
		}

		LOGE("AEEIOCTL_WDT_Kick_Powerkey ( 0x%x)\n", (int)arg);
#endif

		return ret;

	}
/* QHQ RT Monitor */
	if (cmd == AEEIOCTL_RT_MON_Kick) {
		LOGE("AEEIOCTL_RT_MON_Kick ( %d)\n", (int)arg);
		aee_kernel_RT_Monitor_api((int)arg);
		return ret;
	}
//	LOGE("AEEIOCTL_RT_MON_Kick unknown cmd :(%d)( %d)\n",(int)cmd, (int)arg);
//	LOGE("AEEIOCTL_RT_MON_Kick known cmd :(%d)( %d)\n",(int)AEEIOCTL_WDT_KICK_POWERKEY, (int)AEEIOCTL_RT_MON_Kick);
/* QHQ RT Monitor end */

	if (cmd == AEEIOCTL_SET_SF_STATE) {
		if (copy_from_user(&monitor_status, (void __user *)arg, sizeof(long long)))
			ret = -1;
		LOGE("AEE_MONITOR_SET[status]: 0x%llx", monitor_status);
		return ret;
	} else if (cmd == AEEIOCTL_GET_SF_STATE) {
		if (copy_to_user((void __user *)arg, &monitor_status, sizeof(long long)))
			ret = -1;
		return ret;
	}

	return -1;
}
/*
 * aed process daemon and other command line may access me 
 * concurrently
 */
static long monitor_hang_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
	int ret = 0;
	if(cmd == AEEIOCTL_WDT_KICK_POWERKEY)
	{
		#ifdef CONFIG_MTK_AEE_POWERKEY_HANG_DETECT
		if((int)arg==WDT_SETBY_WMS_DISABLE_PWK_MONITOR)
		{
			//pwk_start_monitor=0;
			//wdt_kick_status=0;
			//hwt_kick_times=0;
		}
		else if((int)arg==WDT_SETBY_WMS_ENABLE_PWK_MONITOR)
		{
			//pwk_start_monitor=1;
			//wdt_kick_status=0;
			//hwt_kick_times=0;
		}
		else if( (int)arg < 0xf )
		{
			aee_kernel_wdt_kick_Powkey_api("Powerkey ioctl",(int)arg);
		}
		
		xlog_printk(ANDROID_LOG_DEBUG, AEK_LOG_TAG, "AEEIOCTL_WDT_Kick_Powerkey ( 0x%x)\n", (int)arg);
		#endif
		
		return ret;

	}	
	
// QHQ RT Monitor    
	if(cmd == AEEIOCTL_RT_MON_Kick)
	{
		xlog_printk(ANDROID_LOG_DEBUG, AEK_LOG_TAG, "AEEIOCTL_RT_MON_Kick ( %d)\n", (int)arg);
		aee_kernel_RT_Monitor_api((int)arg);
		return ret;
	}
// QHQ RT Monitor end
	return ret;
}
示例#4
0
/******************************************************************************
 * hang detect File operations
 *****************************************************************************/
static int monitor_hang_open(struct inode *inode, struct file *filp)
{
	LOGD("%s\n", __func__);
	aee_kernel_RT_Monitor_api (600) ;
	return 0;
}