optee_examples/hello_world/host/main.c
//trigger timer on core 1,2,3
trigger timer on core 1,2,3
trigger timer on core 1 2 3
void trigger_timer_on_cores(int pin_core){
	cpu_set_t mask;
	CPU_ZERO(&mask);
    CPU_SET(pin_core, &mask);
    sched_setaffinity(0, sizeof(cpu_set_t), &mask);
	TEEC_Result res;
	TEEC_Context ctx;
	TEEC_Operation op;
	uint32_t err_origin;
	res = TEEC_InitializeContext(NULL, &ctx);
	if (res != TEEC_SUCCESS)
		errx(1, "TEEC_InitializeContext failed with code 0x%x", res);
	memset(&op, 0, sizeof(op));
	op.paramTypes = TEEC_PARAM_TYPES(TEEC_VALUE_INOUT, TEEC_NONE,
					 TEEC_NONE, TEEC_NONE);
	op.params[0].value.a = 42;
	res = TEEC_InvokeCommand(&sessions[0], PTA_RT_TEE_TRIGGER_TIMER, &op,
				 &err_origin);	
	if (res != TEEC_SUCCESS)
		errx(1, "TEEC_InvokeCommand failed with code 0x%x origin 0x%x",
			res, err_origin);
	return ;
}
void trigger_timer_on_cores ( int pin_core ) { cpu_set_t mask ; CPU_ZERO ( & mask ) ; CPU_SET ( pin_core , & mask ) ; sched_setaffinity ( 0 , sizeof ( cpu_set_t ) , & mask ) ; TEEC_Result res ; TEEC_Context ctx ; TEEC_Operation op ; uint32_t err_origin ; res = TEEC_InitializeContext ( NULL , & ctx ) ; if ( res != TEEC_SUCCESS ) errx ( 1 , " " , res ) ; memset ( & op , 0 , sizeof ( op ) ) ; op . paramTypes = TEEC_PARAM_TYPES ( TEEC_VALUE_INOUT , TEEC_NONE , TEEC_NONE , TEEC_NONE ) ; op . params [ 0 ] . value . a = 42 ; res = TEEC_InvokeCommand ( & sessions [ 0 ] , PTA_RT_TEE_TRIGGER_TIMER , & op , & err_origin ) ; if ( res != TEEC_SUCCESS ) errx ( 1 , " " , res , err_origin ) ; return ; }
trigger timer on core 1,2,3
trigger timer on core 1 2 3
/* code */