Home | History | Annotate | Download | only in ulinux

Lines Matching defs:ch_id

118 static int uipc_close_ch_locked(tUIPC_CH_ID ch_id);
277 static int uipc_check_fd_locked(tUIPC_CH_ID ch_id)
279 if (ch_id >= UIPC_CH_NUM)
282 //BTIF_TRACE_EVENT("CHECK SRVFD %d (ch %d)", uipc_main.ch[ch_id].srvfd, ch_id);
284 if (SAFE_FD_ISSET(uipc_main.ch[ch_id].srvfd, &uipc_main.read_set))
286 BTIF_TRACE_EVENT("INCOMING CONNECTION ON CH %d", ch_id);
288 uipc_main.ch[ch_id].fd = accept_server_socket(uipc_main.ch[ch_id].srvfd);
290 BTIF_TRACE_EVENT("NEW FD %d", uipc_main.ch[ch_id].fd);
292 if ((uipc_main.ch[ch_id].fd > 0) && uipc_main.ch[ch_id].cback)
296 BTIF_TRACE_EVENT("ADD FD %d TO ACTIVE SET", uipc_main.ch[ch_id].fd);
297 FD_SET(uipc_main.ch[ch_id].fd, &uipc_main.active_set);
298 uipc_main.max_fd = MAX(uipc_main.max_fd, uipc_main.ch[ch_id].fd);
301 if (uipc_main.ch[ch_id].fd < 0)
303 BTIF_TRACE_ERROR("FAILED TO ACCEPT CH %d (%s)", ch_id, strerror(errno));
307 if (uipc_main.ch[ch_id].cback)
308 uipc_main.ch[ch_id].cback(ch_id, UIPC_OPEN_EVT);
311 //BTIF_TRACE_EVENT("CHECK FD %d (ch %d)", uipc_main.ch[ch_id].fd, ch_id);
313 if (SAFE_FD_ISSET(uipc_main.ch[ch_id].fd, &uipc_main.read_set))
315 //BTIF_TRACE_EVENT("INCOMING DATA ON CH %d", ch_id);
317 if (uipc_main.ch[ch_id].cback)
318 uipc_main.ch[ch_id].cback(ch_id, UIPC_RX_DATA_READY_EVT);
340 static int uipc_setup_server_locked(tUIPC_CH_ID ch_id, char *name, tUIPC_RCV_CBACK *cback)
344 BTIF_TRACE_EVENT("SETUP CHANNEL SERVER %d", ch_id);
346 if (ch_id >= UIPC_CH_NUM)
364 uipc_main.ch[ch_id].srvfd = fd;
365 uipc_main.ch[ch_id].cback = cback;
366 uipc_main.ch[ch_id].read_poll_tmo_ms = DEFAULT_READ_POLL_TMO_MS;
376 static void uipc_flush_ch_locked(tUIPC_CH_ID ch_id)
383 pfd.fd = uipc_main.ch[ch_id].fd;
385 if (uipc_main.ch[ch_id].fd == UIPC_DISCONNECTED)
416 static void uipc_flush_locked(tUIPC_CH_ID ch_id)
418 if (ch_id >= UIPC_CH_NUM)
421 switch(ch_id)
434 static int uipc_close_ch_locked(tUIPC_CH_ID ch_id)
438 BTIF_TRACE_EVENT("CLOSE CHANNEL %d", ch_id);
440 if (ch_id >= UIPC_CH_NUM)
443 if (uipc_main.ch[ch_id].srvfd != UIPC_DISCONNECTED)
445 BTIF_TRACE_EVENT("CLOSE SERVER (FD %d)", uipc_main.ch[ch_id].srvfd);
446 close(uipc_main.ch[ch_id].srvfd);
447 FD_CLR(uipc_main.ch[ch_id].srvfd, &uipc_main.active_set);
448 uipc_main.ch[ch_id].srvfd = UIPC_DISCONNECTED;
452 if (uipc_main.ch[ch_id].fd != UIPC_DISCONNECTED)
454 BTIF_TRACE_EVENT("CLOSE CONNECTION (FD %d)", uipc_main.ch[ch_id].fd);
455 close(uipc_main.ch[ch_id].fd);
456 FD_CLR(uipc_main.ch[ch_id].fd, &uipc_main.active_set);
457 uipc_main.ch[ch_id].fd = UIPC_DISCONNECTED;
462 if (uipc_main.ch[ch_id].cback)
463 uipc_main.ch[ch_id].cback(ch_id, UIPC_CLOSE_EVT);
473 void uipc_close_locked(tUIPC_CH_ID ch_id)
475 if (uipc_main.ch[ch_id].srvfd == UIPC_DISCONNECTED)
477 BTIF_TRACE_EVENT("CHANNEL %d ALREADY CLOSED", ch_id);
482 uipc_main.ch[ch_id].task_evt_flags |= UIPC_TASK_FLAG_DISCONNECT_CHAN;
489 int ch_id;
526 for (ch_id = 0; ch_id < UIPC_CH_NUM; ch_id++)
528 if (ch_id != UIPC_CH_ID_AV_AUDIO)
529 uipc_check_fd_locked(ch_id);
604 UDRV_API BOOLEAN UIPC_Open(tUIPC_CH_ID ch_id, tUIPC_RCV_CBACK *p_cback)
606 BTIF_TRACE_DEBUG("UIPC_Open : ch_id %d, p_cback %x", ch_id, p_cback);
610 if (ch_id >= UIPC_CH_NUM)
616 if (uipc_main.ch[ch_id].srvfd != UIPC_DISCONNECTED)
618 BTIF_TRACE_EVENT("CHANNEL %d ALREADY OPEN", ch_id);
623 switch(ch_id)
626 uipc_setup_server_locked(ch_id, A2DP_CTRL_PATH, p_cback);
630 uipc_setup_server_locked(ch_id
649 UDRV_API void UIPC_Close(tUIPC_CH_ID ch_id)
651 BTIF_TRACE_DEBUG("UIPC_Close : ch_id %d", ch_id);
654 if (ch_id != UIPC_CH_ID_ALL)
657 uipc_close_locked(ch_id);
678 UDRV_API BOOLEAN UIPC_SendBuf(tUIPC_CH_ID ch_id, BT_HDR *p_msg)
682 BTIF_TRACE_DEBUG("UIPC_SendBuf : ch_id %d NOT IMPLEMENTED", ch_id);
702 UDRV_API BOOLEAN UIPC_Send(tUIPC_CH_ID ch_id, UINT16 msg_evt, UINT8 *p_buf,
708 BTIF_TRACE_DEBUG("UIPC_Send : ch_id:%d %d bytes", ch_id, msglen);
712 if (write(uipc_main.ch[ch_id].fd, p_buf, msglen) < 0)
731 UDRV_API void UIPC_ReadBuf(tUIPC_CH_ID ch_id, BT_HDR *p_msg)
735 BTIF_TRACE_DEBUG("UIPC_ReadBuf : ch_id:%d NOT IMPLEMENTED", ch_id);
751 UDRV_API UINT32 UIPC_Read(tUIPC_CH_ID ch_id, UINT16 *p_msg_evt, UINT8 *p_buf, UINT32 len)
755 int fd = uipc_main.ch[ch_id].fd;
759 if (ch_id >= UIPC_CH_NUM)
761 BTIF_TRACE_ERROR("UIPC_Read : invalid ch id %d", ch_id);
767 BTIF_TRACE_ERROR("UIPC_Read : channel %d closed", ch_id);
771 //BTIF_TRACE_DEBUG("UIPC_Read : ch_id %d, len %d, fd %d, polltmo %d", ch_id, len,
772 // fd, uipc_main.ch[ch_id].read_poll_tmo_ms);
781 if (poll(&pfd, 1, uipc_main.ch[ch_id].read_poll_tmo_ms) == 0)
783 BTIF_TRACE_EVENT("poll timeout (%d ms)", uipc_main.ch[ch_id].read_poll_tmo_ms);
793 uipc_close_locked(ch_id);
806 uipc_close_locked(ch_id);
834 UDRV_API extern BOOLEAN UIPC_Ioctl(tUIPC_CH_ID ch_id, UINT32 request, void *param)
836 BTIF_TRACE_DEBUG("#### UIPC_Ioctl : ch_id %d, request %d ####", ch_id, request);
843 uipc_flush_locked(ch_id);
847 //BTIF_TRACE_EVENT("register callback ch %d srvfd %d, fd %d", ch_id, uipc_main.ch[ch_id].srvfd, uipc_main.ch[ch_id].fd);
848 uipc_main.ch[ch_id].cback = (tUIPC_RCV_CBACK*)param;
854 if (uipc_main.ch[ch_id].fd != UIPC_DISCONNECTED)
857 FD_CLR(uipc_main.ch[ch_id].fd, &uipc_main.active_set);
865 uipc_main.ch[ch_id].read_poll_tmo_ms = (intptr_t)param;
866 BTIF_TRACE_EVENT("UIPC_SET_READ_POLL_TMO : CH %d, TMO %d ms", ch_id, uipc_main.ch[ch_id].read_poll_tmo_ms );