Lines Matching refs:context
32 static void WFSi_NotifySegmentEvent(WFSServerContext *context, void *argument) in WFSi_NotifySegmentEvent() argument
34 if (context->thread_work) in WFSi_NotifySegmentEvent()
36 (*context->thread_hook)(context->thread_work, argument); in WFSi_NotifySegmentEvent()
38 else if (context->callback) in WFSi_NotifySegmentEvent()
40 (*context->callback)(context, WFS_EVENT_SERVER_SEGMENT_REQUEST, argument); in WFSi_NotifySegmentEvent()
250 void WFS_CallServerConnectHook(WFSServerContext *context, const WFSPeerInfo *peer) in WFS_CallServerConnectHook() argument
256 (void)context; in WFS_CallServerConnectHook()
270 void WFS_CallServerDisconnectHook(WFSServerContext *context, const WFSPeerInfo *peer) in WFS_CallServerDisconnectHook() argument
273 context->all_bitmap &= ~bit; in WFS_CallServerDisconnectHook()
274 (void)WBT_CancelCommand(context->wbt, bit); in WFS_CallServerDisconnectHook()
287 void WFS_CallServerPacketSendHook(WFSServerContext *context, WFSPacketBuffer *packet) in WFS_CallServerPacketSendHook() argument
290 if (!context->msg_busy) in WFS_CallServerPacketSendHook()
293 context->ack_bitmap &= context->all_bitmap; in WFS_CallServerPacketSendHook()
294 context->sync_bitmap &= context->all_bitmap; in WFS_CallServerPacketSendHook()
295 context->busy_bitmap &= context->all_bitmap; in WFS_CallServerPacketSendHook()
296 context->deny_bitmap &= context->all_bitmap; in WFS_CallServerPacketSendHook()
298 if (context->is_changing && !context->use_bitmap) in WFS_CallServerPacketSendHook()
301 context->is_changing = FALSE; in WFS_CallServerPacketSendHook()
302 (void)WBT_SetPacketLength(context->wbt, context->new_packet, WBT_PACKET_SIZE_MIN); in WFS_CallServerPacketSendHook()
304 if (context->deny_bitmap) in WFS_CallServerPacketSendHook()
306 …WFS_DEBUG_OUTPUT(("WBT-MSG(LOCK):deny [packet-length renewal] (BITMAP=%d)", context->deny_bitmap)); in WFS_CallServerPacketSendHook()
307 … (void)WFS_SendMessageLOCK_ACK(context->wbt, WFSi_WBTCallback, context->deny_bitmap, 0); in WFS_CallServerPacketSendHook()
308 context->msg_busy = TRUE; in WFS_CallServerPacketSendHook()
309 context->deny_bitmap = 0; in WFS_CallServerPacketSendHook()
313 else if (context->ack_bitmap) in WFS_CallServerPacketSendHook()
315 int bitmap = context->ack_bitmap; in WFS_CallServerPacketSendHook()
318 const int sync = context->sync_bitmap; in WFS_CallServerPacketSendHook()
343 msg = &context->recv_msg[i]; in WFS_CallServerPacketSendHook()
346 else if ((msg->type == context->recv_msg[i].type) && in WFS_CallServerPacketSendHook()
347 (msg->arg1 == context->recv_msg[i].arg1)) in WFS_CallServerPacketSendHook()
370 context->sync_bitmap = 0; in WFS_CallServerPacketSendHook()
380 (void)WFS_SendMessageLOCK_ACK(context->wbt, WFSi_WBTCallback, bitmap, in WFS_CallServerPacketSendHook()
384 (void)WFS_SendMessageUNLOCK_ACK(context->wbt, WFSi_WBTCallback, bitmap, in WFS_CallServerPacketSendHook()
386 context->busy_bitmap &= ~bitmap; in WFS_CallServerPacketSendHook()
389 context->msg_busy = TRUE; in WFS_CallServerPacketSendHook()
390 context->ack_bitmap &= ~bitmap; in WFS_CallServerPacketSendHook()
396 packet->length = WBT_CallPacketSendHook(context->wbt, packet->buffer, packet->length, TRUE); in WFS_CallServerPacketSendHook()
409 void WFS_CallServerPacketRecvHook(WFSServerContext *context, const WFSPacketBuffer *packet) in WFS_CallServerPacketRecvHook() argument
418 context->all_bitmap |= (1 << aid); in WFS_CallServerPacketRecvHook()
419 WBT_CallPacketRecvHook(context->wbt, aid, buffer, length); in WFS_CallServerPacketRecvHook()
436 void WFS_InitServer(WFSServerContext *context, in WFS_InitServer() argument
441 MI_CpuClear8(context, sizeof(*context)); in WFS_InitServer()
442 context->userdata = userdata; in WFS_InitServer()
443 context->callback = callback; in WFS_InitServer()
444 context->allocator = allocator; in WFS_InitServer()
447 context->new_packet = packet; in WFS_InitServer()
448 context->table->buffer = NULL; in WFS_InitServer()
449 context->table->length = 0; in WFS_InitServer()
450 context->sync_bitmap = 0; in WFS_InitServer()
451 context->ack_bitmap = 0; in WFS_InitServer()
452 context->msg_busy = FALSE; in WFS_InitServer()
453 context->all_bitmap = 1; in WFS_InitServer()
454 context->busy_bitmap = 0; in WFS_InitServer()
455 context->is_changing = FALSE; in WFS_InitServer()
456 context->deny_bitmap = 0; in WFS_InitServer()
457 context->use_bitmap = 0; in WFS_InitServer()
458 context->thread_work = NULL; in WFS_InitServer()
459 context->thread_hook = NULL; in WFS_InitServer()
462 WBT_InitContext(context->wbt, context, WFSi_WBTCallback); in WFS_InitServer()
463 WBT_AddCommandPool(context->wbt, context->wbt_list, in WFS_InitServer()
464 sizeof(context->wbt_list) / sizeof(*context->wbt_list)); in WFS_InitServer()
465 WBT_StartParent(context->wbt, packet, WBT_PACKET_SIZE_MIN); in WFS_InitServer()
477 void WFS_EndServer(WFSServerContext *context) in WFS_EndServer() argument
479 if (context->thread_work) in WFS_EndServer()
481 (*context->thread_hook)(context->thread_work, NULL); in WFS_EndServer()
482 MI_CallFree(context->allocator, context->thread_work); in WFS_EndServer()
483 context->thread_work = NULL; in WFS_EndServer()
485 WBT_ResetContext(context->wbt, NULL); in WFS_EndServer()
486 if (context->table->buffer) in WFS_EndServer()
488 MI_CallFree(context->allocator, context->table->buffer); in WFS_EndServer()
489 context->table->buffer = NULL; in WFS_EndServer()
490 context->table->length = 0; in WFS_EndServer()
509 BOOL WFS_RegisterServerTable(WFSServerContext *context, in WFS_RegisterServerTable() argument
514 if (context->table->buffer) in WFS_RegisterServerTable()
519 else if (WFS_LoadTable(context->table, context->allocator, device, fatbase, overlay)) in WFS_RegisterServerTable()
522 WBT_RegisterBlockInfo(context->wbt, context->table_info, in WFS_RegisterServerTable()
524 context->table->buffer, in WFS_RegisterServerTable()
525 (int)context->table->length); in WFS_RegisterServerTable()
540 int WFS_GetServerPacketLength(const WFSServerContext *context) in WFS_GetServerPacketLength() argument
542 return context->new_packet; in WFS_GetServerPacketLength()
555 void WFS_SetServerPacketLength(WFSServerContext *context, int length) in WFS_SetServerPacketLength() argument
560 context->new_packet = length; in WFS_SetServerPacketLength()
561 context->is_changing = TRUE; in WFS_SetServerPacketLength()
583 void WFS_SetServerSync(WFSServerContext *context, int bitmap) in WFS_SetServerSync() argument
586 context->sync_bitmap = (bitmap & ~1); in WFS_SetServerSync()