Example #1
0
/**
	Register new RPC client.  
	@return		Client ID 
**/
RPC_Handle_t RPC_SyncRegisterClient(RPC_InitParams_t *initParams,
				    RPC_SyncInitParams_t *syncInitParams)
{
	RPC_SyncParams_t *internalParam =
	    (RPC_SyncParams_t *) OSHEAP_Alloc(sizeof(RPC_SyncParams_t));
	if (!internalParam) {
		panic("RPC_SyncRegisterClient: OSHEAP_Alloc failed");
		return 0;
	}
	/* **FIXME** MAG - need special CP reset handler in here? Release all
	   semaphores for pending requests?
	 */
	internalParam->clientParams = *initParams;
	internalParam->SyncRpcParams = *initParams;

	internalParam->SyncRpcParams.respCb = RPC_SyncHandleResponse;
	internalParam->SyncRpcParams.ackCb = RPC_SyncHandleAck;
	internalParam->SyncRpcParams.userData = (UInt32)internalParam;
	internalParam->SyncRpcParams.rpcNtfFn = RPC_SyncNotification;

	internalParam->syncInitParams = *syncInitParams;
	pr_info("RPC_SyncRegisterClient: calling RPC_SYS_RegisterClient\n");

	return RPC_SYS_RegisterClient(&internalParam->SyncRpcParams);
}
Example #2
0
void registerDrxEvent(void)
{
	static int first_time = 1;

	if(first_time)
	{
		RPC_InitParams_t params={0};
		RPC_Handle_t handle;

		params.iType = INTERFACE_RPC_TELEPHONY;
		params.table_size = (sizeof(ADC_Prim_dscrm)/sizeof(RPC_XdrInfo_t));
		params.xdrtbl = ADC_Prim_dscrm;
		params.respCb = HandleDrxEventRspCb;
		
		handle = RPC_SYS_RegisterClient(&params);
		first_time = 0;
		
		RPC_SYS_BindClientID(handle, EM_RPC_CLIENT_ID);
	
		_DBG_(RPC_TRACE("registerDrxEvent \r\n"));
	}
}
Example #3
0
void sendDrxSignal(void)
{
	static int first_time = 1;
	RPC_Msg_t msg;

	memset(&msg,0,sizeof(RPC_Msg_t));

	if(first_time)
	{
		RPC_InitParams_t params={0};

		params.iType = INTERFACE_RPC_TELEPHONY;
		params.table_size = (sizeof(ADC_Prim_dscrm)/sizeof(RPC_XdrInfo_t));
		params.xdrtbl = ADC_Prim_dscrm;
		
		RPC_SYS_RegisterClient(&params);
		first_time = 0;
	}

	msg.msgId = MSG_ADC_DRX_SYNC_IND;
	RPC_SerializeRsp(&msg);
}