Lines Matching refs:pClient
124 static void add_msg(struct r3964_client_info *pClient, int msg_id, int arg,
127 struct r3964_client_info *pClient);
129 struct r3964_client_info *pClient);
480 struct r3964_client_info *pClient; in on_receive_block() local
539 for (pClient = pInfo->firstClient; pClient; pClient = pClient->next) { in on_receive_block()
540 if (pClient->sig_flags & R3964_SIG_DATA) { in on_receive_block()
541 add_msg(pClient, R3964_MSG_DATA, length, R3964_OK, in on_receive_block()
740 struct r3964_client_info *pClient; in findClient() local
742 for (pClient = pInfo->firstClient; pClient; pClient = pClient->next) { in findClient()
743 if (pClient->pid == pid) { in findClient()
744 return pClient; in findClient()
752 struct r3964_client_info *pClient; in enable_signals() local
760 pClient = *ppClient; in enable_signals()
762 if (pClient->pid == pid) { in enable_signals()
765 *ppClient = pClient->next; in enable_signals()
766 while (pClient->msg_count) { in enable_signals()
767 pMsg = remove_msg(pInfo, pClient); in enable_signals()
774 put_pid(pClient->pid); in enable_signals()
775 kfree(pClient); in enable_signals()
776 TRACE_M("enable_signals - kfree %p", pClient); in enable_signals()
782 pClient = findClient(pInfo, pid); in enable_signals()
783 if (pClient) { in enable_signals()
785 pClient->sig_flags = arg; in enable_signals()
788 pClient = kmalloc(sizeof(struct r3964_client_info), in enable_signals()
790 TRACE_M("enable_signals - kmalloc %p", pClient); in enable_signals()
791 if (pClient == NULL) in enable_signals()
795 spin_lock_init(&pClient->lock); in enable_signals()
796 pClient->sig_flags = arg; in enable_signals()
797 pClient->pid = get_pid(pid); in enable_signals()
798 pClient->next = pInfo->firstClient; in enable_signals()
799 pClient->first_msg = NULL; in enable_signals()
800 pClient->last_msg = NULL; in enable_signals()
801 pClient->next_block_to_read = NULL; in enable_signals()
802 pClient->msg_count = 0; in enable_signals()
803 pInfo->firstClient = pClient; in enable_signals()
813 struct r3964_client_info *pClient; in read_telegram() local
820 pClient = findClient(pInfo, pid); in read_telegram()
821 if (pClient == NULL) { in read_telegram()
825 block = pClient->next_block_to_read; in read_telegram()
832 remove_client_block(pInfo, pClient); in read_telegram()
839 static void add_msg(struct r3964_client_info *pClient, int msg_id, int arg, in add_msg() argument
845 if (pClient->msg_count < R3964_MAX_MSG_COUNT - 1) { in add_msg()
855 spin_lock_irqsave(&pClient->lock, flags); in add_msg()
863 if (pClient->last_msg == NULL) { in add_msg()
864 pClient->first_msg = pClient->last_msg = pMsg; in add_msg()
866 pClient->last_msg->next = pMsg; in add_msg()
867 pClient->last_msg = pMsg; in add_msg()
870 pClient->msg_count++; in add_msg()
875 spin_unlock_irqrestore(&pClient->lock, flags); in add_msg()
877 if ((pClient->last_msg->msg_id == R3964_MSG_ACK) in add_msg()
878 && (pClient->last_msg->error_code == R3964_OVERFLOW)) { in add_msg()
879 pClient->last_msg->arg++; in add_msg()
891 if (pClient->sig_flags & R3964_USE_SIGIO) { in add_msg()
892 kill_pid(pClient->pid, SIGIO, 1); in add_msg()
897 struct r3964_client_info *pClient) in remove_msg() argument
902 if (pClient->first_msg) { in remove_msg()
903 spin_lock_irqsave(&pClient->lock, flags); in remove_msg()
905 pMsg = pClient->first_msg; in remove_msg()
906 pClient->first_msg = pMsg->next; in remove_msg()
907 if (pClient->first_msg == NULL) { in remove_msg()
908 pClient->last_msg = NULL; in remove_msg()
911 pClient->msg_count--; in remove_msg()
913 remove_client_block(pInfo, pClient); in remove_msg()
914 pClient->next_block_to_read = pMsg->block; in remove_msg()
916 spin_unlock_irqrestore(&pClient->lock, flags); in remove_msg()
922 struct r3964_client_info *pClient) in remove_client_block() argument
926 TRACE_PS("remove_client_block PID %d", pid_nr(pClient->pid)); in remove_client_block()
928 block = pClient->next_block_to_read; in remove_client_block()
935 pClient->next_block_to_read = NULL; in remove_client_block()
1006 struct r3964_client_info *pClient, *pNext; in r3964_close() local
1020 pClient = pInfo->firstClient; in r3964_close()
1021 while (pClient) { in r3964_close()
1022 pNext = pClient->next; in r3964_close()
1023 while (pClient->msg_count) { in r3964_close()
1024 pMsg = remove_msg(pInfo, pClient); in r3964_close()
1030 put_pid(pClient->pid); in r3964_close()
1031 kfree(pClient); in r3964_close()
1032 TRACE_M("r3964_close - client kfree %p", pClient); in r3964_close()
1033 pClient = pNext; in r3964_close()
1060 struct r3964_client_info *pClient; in r3964_read() local
1078 pClient = findClient(pInfo, task_pid(current)); in r3964_read()
1079 if (pClient) { in r3964_read()
1080 pMsg = remove_msg(pInfo, pClient); in r3964_read()
1089 (pMsg = remove_msg(pInfo, pClient))); in r3964_read()
1127 struct r3964_client_info *pClient; in r3964_write() local
1167 pClient = findClient(pInfo, task_pid(current)); in r3964_write()
1168 if (pClient) { in r3964_write()
1169 pHeader->owner = pClient; in r3964_write()
1225 struct r3964_client_info *pClient; in r3964_poll() local
1232 pClient = findClient(pInfo, task_pid(current)); in r3964_poll()
1233 if (pClient) { in r3964_poll()
1236 pMsg = pClient->first_msg; in r3964_poll()