LPCtarget/plc_LPC_main.c
changeset 30 9cd6bc93ed89
parent 29 86fb7dc2b54e
child 31 a9c9d1fc97d3
equal deleted inserted replaced
29:86fb7dc2b54e 30:9cd6bc93ed89
    29 	if(res == compared){
    29 	if(res == compared){
    30 		*atomicvar = exchange;
    30 		*atomicvar = exchange;
    31 	}
    31 	}
    32 	return res;
    32 	return res;
    33 }
    33 }
       
    34 
       
    35 long AtomicCompareExchange64(long long* atomicvar,long long compared, long long exchange)
       
    36 {
       
    37 	/* No need for real atomic op on LPC,
       
    38 	 * no possible preemption between debug and PLC */
       
    39 	long long res = *atomicvar;
       
    40 	if(res == compared){
       
    41 		*atomicvar = exchange;
       
    42 	}
       
    43 	return res;
       
    44 }
       
    45 
    34 
    46 
    35 void PLC_GetTime(IEC_TIME *CURRENT_TIME)
    47 void PLC_GetTime(IEC_TIME *CURRENT_TIME)
    36 {
    48 {
    37 	/* Call target GetTime function */
    49 	/* Call target GetTime function */
    38 	LPC_GetTime(CURRENT_TIME);
    50 	LPC_GetTime(CURRENT_TIME);