/** 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); }
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(¶ms); first_time = 0; RPC_SYS_BindClientID(handle, EM_RPC_CLIENT_ID); _DBG_(RPC_TRACE("registerDrxEvent \r\n")); } }
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(¶ms); first_time = 0; } msg.msgId = MSG_ADC_DRX_SYNC_IND; RPC_SerializeRsp(&msg); }