Lines Matching refs:dsInfo

28 static void WmDataSharingReceiveData(WMDataSharingInfo *dsInfo, u16 aid, u16 *data);
29 static void WmDataSharingSendDataSet(WMDataSharingInfo *dsInfo, BOOL delayed);
30 static u16 *WmGetSharedDataAddress(WMDataSharingInfo *dsInfo, u32 aidBitmap, u16 *receiveBuf,
61 WM_StartDataSharing(WMDataSharingInfo *dsInfo, u16 port, u16 aidBitmap, u16 dataLength, in WM_StartDataSharing() argument
73 if (dsInfo == NULL) in WM_StartDataSharing()
83 if ((u32)dsInfo & 0x01f) in WM_StartDataSharing()
102 MI_CpuClearFast(dsInfo, sizeof(WMDataSharingInfo)); in WM_StartDataSharing()
103 dsInfo->writeIndex = 0; in WM_StartDataSharing()
104 dsInfo->sendIndex = 0; in WM_StartDataSharing()
105 dsInfo->readIndex = 0; in WM_StartDataSharing()
106 dsInfo->dataLength = dataLength; in WM_StartDataSharing()
107 dsInfo->port = port; in WM_StartDataSharing()
108 dsInfo->aidBitmap = 0; in WM_StartDataSharing()
109 dsInfo->doubleMode = (u16)((doubleMode) ? TRUE : FALSE); in WM_StartDataSharing()
112 dsInfo->aidBitmap = aidBitmap; in WM_StartDataSharing()
116 dsInfo->stationNumber = count; in WM_StartDataSharing()
117 dsInfo->dataSetLength = (u16)(dataLength * count); in WM_StartDataSharing()
119 if (dsInfo->dataSetLength > WM_DS_DATA_SIZE) in WM_StartDataSharing()
122 dsInfo->aidBitmap = 0; in WM_StartDataSharing()
127 dsInfo->dataSetLength += 4; // aidBitmap, receivedBitmap in WM_StartDataSharing()
130 dsInfo->state = WM_DS_STATE_START; in WM_StartDataSharing()
139 dsInfo->ds[i].aidBitmap = (u16)(dsInfo->aidBitmap & (connectedAIDs | 0x0001)); in WM_StartDataSharing()
142 (void)WM_SetPortCallback(port, WmDataSharingReceiveCallback_Parent, (void *)dsInfo); in WM_StartDataSharing()
145 for (i = 0; i < ((dsInfo->doubleMode == TRUE) ? 2 : 1); i++) in WM_StartDataSharing()
149 dsInfo->writeIndex = WmDataSharingGetNextIndex(dsInfo->writeIndex); in WM_StartDataSharing()
151 WM_SetMPDataToPortEx(WmDataSharingSetDataCallback, dsInfo, (u16 *)&dsInfo->ds[i], in WM_StartDataSharing()
152 dsInfo->dataSetLength, in WM_StartDataSharing()
153 (u16)(dsInfo->aidBitmap & connectedAIDs), dsInfo->port, in WM_StartDataSharing()
157 dsInfo->seqNum[i] = 0xffff; in WM_StartDataSharing()
158 dsInfo->sendIndex = WmDataSharingGetNextIndex(dsInfo->sendIndex); in WM_StartDataSharing()
165 dsInfo->state = WM_DS_STATE_ERROR; in WM_StartDataSharing()
174 dsInfo->sendIndex = (u16)(WM_DS_DATASET_NUM - 1); in WM_StartDataSharing()
175 (void)WM_SetPortCallback(port, WmDataSharingReceiveCallback_Child, (void *)dsInfo); in WM_StartDataSharing()
190 WMErrCode WM_EndDataSharing(WMDataSharingInfo *dsInfo) in WM_EndDataSharing() argument
193 if (dsInfo == NULL) in WM_EndDataSharing()
200 if (dsInfo->aidBitmap == 0) in WM_EndDataSharing()
206 (void)WM_SetPortCallback(dsInfo->port, NULL, NULL); in WM_EndDataSharing()
207 dsInfo->aidBitmap = 0; in WM_EndDataSharing()
208 dsInfo->state = WM_DS_STATE_READY; in WM_EndDataSharing()
226 WMErrCode WM_StepDataSharing(WMDataSharingInfo *dsInfo, const u16 *sendData, WMDataSet *receiveData) in WM_StepDataSharing() argument
238 if (dsInfo == NULL) in WM_StepDataSharing()
262 state = dsInfo->state; in WM_StepDataSharing()
287 dsInfo->state = WM_DS_STATE_START; in WM_StepDataSharing()
291 oldWI = WmDataSharingGetPrevIndex(dsInfo->writeIndex); in WM_StepDataSharing()
293 WM_SetMPDataToPortEx(WmDataSharingSetDataCallback, dsInfo, in WM_StepDataSharing()
294 (u16 *)&dsInfo->ds[oldWI], dsInfo->dataSetLength, in WM_StepDataSharing()
295 (u16)(dsInfo->aidBitmap & connectedAIDs), dsInfo->port, in WM_StepDataSharing()
300 dsInfo->writeIndex, dsInfo->readIndex, dsInfo->sendIndex); in WM_StepDataSharing()
301 dsInfo->seqNum[oldWI] = 0xffff; in WM_StepDataSharing()
302 dsInfo->sendIndex = WmDataSharingGetNextIndex(dsInfo->sendIndex); in WM_StepDataSharing()
309 dsInfo->state = WM_DS_STATE_ERROR; in WM_StepDataSharing()
316 if (dsInfo->readIndex != dsInfo->sendIndex) in WM_StepDataSharing()
320 dsInfo->writeIndex, dsInfo->readIndex, dsInfo->sendIndex, in WM_StepDataSharing()
321 dsInfo->seqNum[dsInfo->readIndex]); in WM_StepDataSharing()
323dsInfo->ds[dsInfo->readIndex].aidBitmap |= 0x0001; // The lowest bit in the aidBitmap in the tran… in WM_StepDataSharing()
324 MI_CpuCopy16(&dsInfo->ds[dsInfo->readIndex], receiveData, sizeof(WMDataSet)); in WM_StepDataSharing()
325 dsInfo->currentSeqNum = dsInfo->seqNum[dsInfo->readIndex]; in WM_StepDataSharing()
326 dsInfo->readIndex = WmDataSharingGetNextIndex(dsInfo->readIndex); in WM_StepDataSharing()
330 if (dsInfo->doubleMode == FALSE && connectedAIDs != 0 in WM_StepDataSharing()
331 && dsInfo->ds[dsInfo->writeIndex].aidBitmap == 0x0001) in WM_StepDataSharing()
343 WmDataSharingSendDataSet(dsInfo, FALSE); in WM_StepDataSharing()
348 WM_DLOGF_DATASHARING("send data : write: %d, read: %d, send: %d", dsInfo->writeIndex, in WM_StepDataSharing()
349 dsInfo->readIndex, dsInfo->sendIndex); in WM_StepDataSharing()
351 …WmDataSharingReceiveData(dsInfo, 0, (u16 *)sendData); // Remove const because chained rewrit… in WM_StepDataSharing()
353 if (dsInfo->doubleMode == FALSE) in WM_StepDataSharing()
358 WmDataSharingSendDataSet(dsInfo, delayed); in WM_StepDataSharing()
371 dsInfo->state = WM_DS_STATE_START; in WM_StepDataSharing()
377 if (dsInfo->readIndex != dsInfo->writeIndex) in WM_StepDataSharing()
381 if (!(dsInfo->ds[dsInfo->readIndex].aidBitmap & 0x0001)) in WM_StepDataSharing()
383 dsInfo->ds[dsInfo->readIndex].aidBitmap |= 0x0001; in WM_StepDataSharing()
389 dsInfo->writeIndex, dsInfo->readIndex, dsInfo->sendIndex, in WM_StepDataSharing()
390 dsInfo->seqNum[dsInfo->readIndex]); in WM_StepDataSharing()
391 MI_CpuCopy16(&dsInfo->ds[dsInfo->readIndex], receiveData, sizeof(WMDataSet)); in WM_StepDataSharing()
392 dsInfo->currentSeqNum = dsInfo->seqNum[dsInfo->readIndex]; in WM_StepDataSharing()
393 dsInfo->readIndex = WmDataSharingGetNextIndex(dsInfo->readIndex); in WM_StepDataSharing()
406 …u16 *buf = (u16 *)(((u8 *)&dsInfo->ds[dsInfo->sendIndex]) + 32); // 32-byte alignment is requir… in WM_StepDataSharing()
408 WM_DLOGF_DATASHARING("send data : write: %d, read: %d, send: %d", dsInfo->writeIndex, in WM_StepDataSharing()
409 dsInfo->readIndex, dsInfo->sendIndex); in WM_StepDataSharing()
411 MI_CpuCopy16(sendData, buf, dsInfo->dataLength); in WM_StepDataSharing()
413 WM_SetMPDataToPortEx(WmDataSharingSetDataCallback, dsInfo, buf, dsInfo->dataLength, in WM_StepDataSharing()
414 dsInfo->aidBitmap, dsInfo->port, WM_PRIORITY_HIGH); in WM_StepDataSharing()
415 dsInfo->sendIndex = WmDataSharingGetNextIndex(dsInfo->sendIndex); in WM_StepDataSharing()
419 dsInfo->state = WM_DS_STATE_ERROR; in WM_StepDataSharing()
441 WMDataSharingInfo *dsInfo; in WmDataSharingSetDataCallback() local
445 dsInfo = (WMDataSharingInfo *)(p->portCallbackArgument[cb_Port->port]); in WmDataSharingSetDataCallback()
448 || dsInfo == NULL || dsInfo != (WMDataSharingInfo *)(cb_Port->arg)) in WmDataSharingSetDataCallback()
462 WM_DLOGF_DATASHARING("sent ds : write: %d, read: %d, send: %d", dsInfo->writeIndex, in WmDataSharingSetDataCallback()
463 dsInfo->readIndex, dsInfo->sendIndex); in WmDataSharingSetDataCallback()
465 dsInfo->seqNum[dsInfo->sendIndex] = (u16)(cb_Port->seqNo >> 1); in WmDataSharingSetDataCallback()
466 dsInfo->sendIndex = WmDataSharingGetNextIndex(dsInfo->sendIndex); in WmDataSharingSetDataCallback()
471 WM_DLOGF_DATASHARING("sent data : write: %d, read: %d, send: %d", dsInfo->writeIndex, in WmDataSharingSetDataCallback()
472 dsInfo->readIndex, dsInfo->sendIndex); in WmDataSharingSetDataCallback()
483 dsInfo->sendIndex = WmDataSharingGetPrevIndex(dsInfo->sendIndex); in WmDataSharingSetDataCallback()
485 dsInfo->state = WM_DS_STATE_RETRY_SEND; in WmDataSharingSetDataCallback()
492 dsInfo->state = WM_DS_STATE_ERROR; in WmDataSharingSetDataCallback()
509 WMDataSharingInfo *dsInfo = (WMDataSharingInfo *)cb_Port->arg; in WmDataSharingReceiveCallback_Parent() local
511 if (dsInfo == NULL) in WmDataSharingReceiveCallback_Parent()
523 WmDataSharingReceiveData(dsInfo, cb_Port->aid, cb_Port->data); in WmDataSharingReceiveCallback_Parent()
524 WmDataSharingSendDataSet(dsInfo, FALSE); in WmDataSharingReceiveCallback_Parent()
528 WmDataSharingSendDataSet(dsInfo, FALSE); // Should not be required in WmDataSharingReceiveCallback_Parent()
539 writeIndex = dsInfo->writeIndex; in WmDataSharingReceiveCallback_Parent()
540 dsInfo->ds[writeIndex].aidBitmap &= ~aidBit; in WmDataSharingReceiveCallback_Parent()
541 if (dsInfo->doubleMode == TRUE) in WmDataSharingReceiveCallback_Parent()
543 dsInfo->ds[WmDataSharingGetNextIndex(writeIndex)].aidBitmap &= ~aidBit; in WmDataSharingReceiveCallback_Parent()
546 WmDataSharingSendDataSet(dsInfo, FALSE); in WmDataSharingReceiveCallback_Parent()
547 if (dsInfo->doubleMode == TRUE) in WmDataSharingReceiveCallback_Parent()
549 WmDataSharingSendDataSet(dsInfo, FALSE); in WmDataSharingReceiveCallback_Parent()
562 dsInfo->state = WM_DS_STATE_ERROR; in WmDataSharingReceiveCallback_Parent()
578 WMDataSharingInfo *dsInfo = (WMDataSharingInfo *)cb_Port->arg; in WmDataSharingReceiveCallback_Child() local
580 if (dsInfo == NULL) in WmDataSharingReceiveCallback_Child()
598 dsInfo->writeIndex, dsInfo->readIndex, dsInfo->sendIndex); in WmDataSharingReceiveCallback_Child()
606 if (length != dsInfo->dataSetLength) in WmDataSharingReceiveCallback_Child()
609 length, dsInfo->dataSetLength); in WmDataSharingReceiveCallback_Child()
618 if (aidBitmap & ~(dsInfo->aidBitmap)) in WmDataSharingReceiveCallback_Child()
626 MI_CpuCopy16(dataSet, &dsInfo->ds[dsInfo->writeIndex], length); in WmDataSharingReceiveCallback_Child()
627 dsInfo->seqNum[dsInfo->writeIndex] = (u16)(cb_Port->seqNo >> 1); in WmDataSharingReceiveCallback_Child()
628 dsInfo->writeIndex = WmDataSharingGetNextIndex(dsInfo->writeIndex); in WmDataSharingReceiveCallback_Child()
643 dsInfo->state = WM_DS_STATE_ERROR; in WmDataSharingReceiveCallback_Child()
658 static void WmDataSharingReceiveData(WMDataSharingInfo *dsInfo, u16 aid, u16 *data) in WmDataSharingReceiveData() argument
662 WM_DLOGF_DATASHARING("recv data%d: write: %d, read: %d, send: %d", aid, dsInfo->writeIndex, in WmDataSharingReceiveData()
663 dsInfo->readIndex, dsInfo->sendIndex); in WmDataSharingReceiveData()
666 if (dsInfo->aidBitmap & aidBit) in WmDataSharingReceiveData()
672 if (!(dsInfo->ds[dsInfo->writeIndex].aidBitmap & aidBit)) in WmDataSharingReceiveData()
674 if (dsInfo->doubleMode == TRUE) in WmDataSharingReceiveData()
678 writeIndex = WmDataSharingGetNextIndex(dsInfo->writeIndex); in WmDataSharingReceiveData()
679 if (!(dsInfo->ds[writeIndex].aidBitmap & aidBit)) in WmDataSharingReceiveData()
696 writeIndex = dsInfo->writeIndex; in WmDataSharingReceiveData()
699 buf = WmGetSharedDataAddress(dsInfo, dsInfo->aidBitmap, dsInfo->ds[writeIndex].data, aid); in WmDataSharingReceiveData()
702 MI_CpuCopy16(data, buf, dsInfo->dataLength); in WmDataSharingReceiveData()
706 MI_CpuClear16(buf, dsInfo->dataLength); in WmDataSharingReceiveData()
711 dsInfo->ds[writeIndex].aidBitmap &= ~aidBit; in WmDataSharingReceiveData()
713 dsInfo->ds[writeIndex].receivedBitmap |= aidBit; in WmDataSharingReceiveData()
728 void WmDataSharingSendDataSet(WMDataSharingInfo *dsInfo, BOOL delayed) in WmDataSharingSendDataSet() argument
735 if (dsInfo->ds[dsInfo->writeIndex].aidBitmap == 0) in WmDataSharingSendDataSet()
741 WM_DLOGF_DATASHARING("send ds : write: %d, read: %d, send: %d", dsInfo->writeIndex, in WmDataSharingSendDataSet()
742 dsInfo->readIndex, dsInfo->sendIndex); in WmDataSharingSendDataSet()
745 oldWI = dsInfo->writeIndex; in WmDataSharingSendDataSet()
747 if (dsInfo->doubleMode == TRUE) in WmDataSharingSendDataSet()
755 SDK_ASSERT(newWI != dsInfo->readIndex && resetWI != dsInfo->readIndex); in WmDataSharingSendDataSet()
757 MI_CpuClear16(&dsInfo->ds[resetWI], sizeof(WMDataSet)); in WmDataSharingSendDataSet()
758 dsInfo->ds[resetWI].aidBitmap = (u16)(dsInfo->aidBitmap & (connectedAIDs | 0x0001)); in WmDataSharingSendDataSet()
759 dsInfo->writeIndex = newWI; in WmDataSharingSendDataSet()
760dsInfo->ds[oldWI].aidBitmap = dsInfo->aidBitmap; // Enter the original value in aidBitmap b… in WmDataSharingSendDataSet()
764 dsInfo->ds[oldWI].aidBitmap &= ~0x0001; in WmDataSharingSendDataSet()
768 WM_SetMPDataToPortEx(WmDataSharingSetDataCallback, dsInfo, (u16 *)&dsInfo->ds[oldWI], in WmDataSharingSendDataSet()
769 dsInfo->dataSetLength, (u16)(dsInfo->aidBitmap & connectedAIDs), in WmDataSharingSendDataSet()
770 dsInfo->port, WM_PRIORITY_HIGH); in WmDataSharingSendDataSet()
773 WM_DLOGF_DATASHARING("sent ds : write: %d, read: %d, send: %d", dsInfo->writeIndex, in WmDataSharingSendDataSet()
774 dsInfo->readIndex, dsInfo->sendIndex); in WmDataSharingSendDataSet()
776 dsInfo->seqNum[oldWI] = 0xffff; in WmDataSharingSendDataSet()
777 dsInfo->sendIndex = WmDataSharingGetNextIndex(dsInfo->sendIndex); in WmDataSharingSendDataSet()
784 dsInfo->state = WM_DS_STATE_ERROR; in WmDataSharingSendDataSet()
805 u16 *WM_GetSharedDataAddress(WMDataSharingInfo *dsInfo, WMDataSet *receiveData, u16 aid) in WM_GetSharedDataAddress() argument
812 if (dsInfo == NULL) in WM_GetSharedDataAddress()
836 return WmGetSharedDataAddress(dsInfo, aidBitmap, receiveData->data, aid); in WM_GetSharedDataAddress()
852 u16 *WmGetSharedDataAddress(WMDataSharingInfo *dsInfo, u32 aidBitmap, u16 *receiveBuf, u32 aid) in WmGetSharedDataAddress() argument
862 offset = dsInfo->dataLength * count; in WmGetSharedDataAddress()