Beispiel #1
0
void win32k_entry_point( void *lParam){

	unsigned int len = INI();
	char * data = INI();
	//..
	PMY_STRUCT my_struct = (PMY_STRUCT)lParam;

	/*fake function to simulate data transfer from user to kernel in Windows*/
	__get_user(data, &my_struct->lpData); // fetch of another value, but didn't cause disturbance

	if(data != NULL){

		__get_user(len, &my_struct->cbData);// first fetch

		unsigned int cbCapture = sizeof(MY_STRUCT) + len;

		char* my_allocation = UserAllocPoolWithQuota(cbCapture, TAG_SMS_CAPTURE);

		if (my_allocation != NULL){
			//..
			__get_user(len, &my_struct->cbData);         //second fetch

			RtlCopyMemory(my_allocation, data, len);    //use
		}

	}

	//...

}
Beispiel #2
0
int PIController::InitStage(const std::string& axisName, const std::string& stageType)
{
    if (HasCST() && !stageType.empty())
    {
        std::string stageType_local = stageType;
        if (onlyIDSTAGEvalid_)
        {
            if (strcmp(stageType.c_str(), "NOSTAGE") != 0)
            {
                stageType_local = "ID-STAGE";
            }
        }
        if (!CST(axisName, stageType_local))
        {
            return GetTranslatedError();
        }
    }
    if (HasINI())
    {
        if (!INI(axisName))
        {
            return GetTranslatedError();
        }

    }
    if (HasSVO())
    {
        if (!SVO(axisName, TRUE))
        {
            return GetTranslatedError();
        }
    }
    return DEVICE_OK;
}
int PIController::InitStage(const std::string& axisName, const std::string& stageType)
{
   if (HasCST())
   {
      std::string stageType_local = stageType;
      if (onlyIDSTAGEvalid_)
      {
         if (strcmp(stageType.c_str(), "NOSTAGE") != 0)
         {
            stageType_local = "ID-STAGE";
         }
      }
      
      if (!CST(axisName, stageType_local))
         return DEVICE_INVALID_PROPERTY_VALUE;
	}
	if (HasINI())
	{
		if (!INI(axisName))
			return DEVICE_ERR;
	}
	if (HasSVO())
	{
		if (!SVO(axisName, TRUE))
			return DEVICE_ERR;
	}
	return DEVICE_OK;
}
void RMANAGER::TimeStep()
{
	VESSEL * v = NULL;
	OBJHANDLE hVes = NULL;

	char ini[255];
	for (int i = 0; i < oapiGetVesselCount(); i++)
	{
		hVes = oapiGetVesselByIndex(i);
		if (!oapiIsVessel(hVes))
			continue;
		v    = oapiGetVesselInterface(hVes);
		if (isAttended(v))
			continue;
		if (!hasConfig(v))
			continue;
		sprintf(ini,"./Config/orbReentryStream/%s.ini",INI(v));
		atList.push_back(ReadAndAssign(ini,v));
	}
	VOBJ * vbj = NULL;
	for (int i = 0; i < atList.size(); i++)
	{
		if (!atList[i])
			continue;
		if (!oapiIsVessel(atList[i]->hook))
			continue;
		vbj  = atList[i];
		v    = oapiGetVesselInterface(vbj->hook);
		hVes = v->GetHandle();
		if (calcFlux(v) > vbj->flux)
		{
			if (!vbj->th)
				CreateResourceAndStreams(vbj);
			v->SetThrusterLevel(vbj->th,1);
		}else if (vbj->th)
			v->SetThrusterLevel(vbj->th,0);
	}
}
Beispiel #5
0
/*INI*/
static void op_ED_0xa2(Z80EX_CONTEXT *cpu)
{
	INI(/*rd*/6, /*wr*/9);
	T_WAIT_UNTIL(12);
	return;
}
Beispiel #6
0
int main(int argc, char *argv[]) {
	E_RT_init(argc, argv);
JMP(begin);
Label0: R005=ADD(R000,2);
STI(R001, R000);
R000=SUB(R000,1);
MOVI(R000, R001);
LDI(R005, R008);
R005=ADD(R005,1);
LDF(R005, F001);
R005=ADD(R005,1);
MOVIF(R008, F003);
MOVIF(R008, F006);
F005=FADD(F006,F001);
MOVF(F005, F008);
R010=ADD(R008,1);
MOVI(R010, R011);
MOVI(R010, R012);
MOVIF(R008, F010);
MOVF(F005, F011);
while_1_start: JMPC(GT(1000, R008), while_1_begin);
JMP(while_1_end);
while_1_begin: MOVIF(R008, F013);
MOVIF(R008, F014);
F008=FADD(F014,F001);
F001=FMUL(F001,2.0);
R008=ADD(R008,100);
JMP(while_1_start);
while_1_end: PRTF(F008);
PRTS(R007);
MOVI(R008, R002);
JMP(Label1);
Label1: MOVI(R001, R000);
R000=ADD(R000,1);
LDI(R000, R001);
R000=ADD(R000,1);
LDI(R000, R004);
R000=ADD(R000,2);
JMPI(R004);
eventLabel_a: INI(R010);
INF(F013);
STI(R010, R000);
R000=SUB(R000,1);
STF(F013, R000);
R000=SUB(R000,1);
STF(F013, R000);
R000=SUB(R000,1);
STI(R010, R000);
R000=SUB(R000,1);
MOVL(Label2, R004);
STI(R004, R000);
R000=SUB(R000,1);
JMP(Label0);
Label2: MOVI(R002, R006);
R000=ADD(R000,1);
LDF(R000, F013);
R000=ADD(R000,1);
LDI(R000, R010);
JMP(EventMStart);
begin: MOVI(10000, R000);
MOVI(0, R006);
MOVS("\n", R007);
IN(R010);
IN(R010);
IN(R010);
EventMStart: IN(R010);
JMPC(GT(64, R010), EventMOut);
JMPC(EQ(97, R010), eventLabel_a);
JMP(EventMStart);
EventMOut: PRTS("\nDone\n");

	E_RT_exit(); return 0;
}
Beispiel #7
0
/*INI*/
static void op_ED_0xa2(void)
{
	INI(/*rd*/6, /*wr*/9);
	T_WAIT_UNTIL(12);
	return;
}