Lines Matching refs:pClient
122 static void add_msg(struct r3964_client_info *pClient, int msg_id, int arg,
125 struct r3964_client_info *pClient);
127 struct r3964_client_info *pClient);
485 struct r3964_client_info *pClient; in on_receive_block() local
544 for (pClient = pInfo->firstClient; pClient; pClient = pClient->next) { in on_receive_block()
545 if (pClient->sig_flags & R3964_SIG_DATA) { in on_receive_block()
546 add_msg(pClient, R3964_MSG_DATA, length, R3964_OK, in on_receive_block()
744 struct r3964_client_info *pClient; in findClient() local
746 for (pClient = pInfo->firstClient; pClient; pClient = pClient->next) { in findClient()
747 if (pClient->pid == pid) { in findClient()
748 return pClient; in findClient()
756 struct r3964_client_info *pClient; in enable_signals() local
764 pClient = *ppClient; in enable_signals()
766 if (pClient->pid == pid) { in enable_signals()
769 *ppClient = pClient->next; in enable_signals()
770 while (pClient->msg_count) { in enable_signals()
771 pMsg = remove_msg(pInfo, pClient); in enable_signals()
778 put_pid(pClient->pid); in enable_signals()
779 kfree(pClient); in enable_signals()
780 TRACE_M("enable_signals - kfree %p", pClient); in enable_signals()
786 pClient = findClient(pInfo, pid); in enable_signals()
787 if (pClient) { in enable_signals()
789 pClient->sig_flags = arg; in enable_signals()
792 pClient = kmalloc(sizeof(struct r3964_client_info), in enable_signals()
794 TRACE_M("enable_signals - kmalloc %p", pClient); in enable_signals()
795 if (pClient == NULL) in enable_signals()
799 spin_lock_init(&pClient->lock); in enable_signals()
800 pClient->sig_flags = arg; in enable_signals()
801 pClient->pid = get_pid(pid); in enable_signals()
802 pClient->next = pInfo->firstClient; in enable_signals()
803 pClient->first_msg = NULL; in enable_signals()
804 pClient->last_msg = NULL; in enable_signals()
805 pClient->next_block_to_read = NULL; in enable_signals()
806 pClient->msg_count = 0; in enable_signals()
807 pInfo->firstClient = pClient; in enable_signals()
817 struct r3964_client_info *pClient; in read_telegram() local
824 pClient = findClient(pInfo, pid); in read_telegram()
825 if (pClient == NULL) { in read_telegram()
829 block = pClient->next_block_to_read; in read_telegram()
836 remove_client_block(pInfo, pClient); in read_telegram()
843 static void add_msg(struct r3964_client_info *pClient, int msg_id, int arg, in add_msg() argument
849 if (pClient->msg_count < R3964_MAX_MSG_COUNT - 1) { in add_msg()
859 spin_lock_irqsave(&pClient->lock, flags); in add_msg()
867 if (pClient->last_msg == NULL) { in add_msg()
868 pClient->first_msg = pClient->last_msg = pMsg; in add_msg()
870 pClient->last_msg->next = pMsg; in add_msg()
871 pClient->last_msg = pMsg; in add_msg()
874 pClient->msg_count++; in add_msg()
879 spin_unlock_irqrestore(&pClient->lock, flags); in add_msg()
881 if ((pClient->last_msg->msg_id == R3964_MSG_ACK) in add_msg()
882 && (pClient->last_msg->error_code == R3964_OVERFLOW)) { in add_msg()
883 pClient->last_msg->arg++; in add_msg()
895 if (pClient->sig_flags & R3964_USE_SIGIO) { in add_msg()
896 kill_pid(pClient->pid, SIGIO, 1); in add_msg()
901 struct r3964_client_info *pClient) in remove_msg() argument
906 if (pClient->first_msg) { in remove_msg()
907 spin_lock_irqsave(&pClient->lock, flags); in remove_msg()
909 pMsg = pClient->first_msg; in remove_msg()
910 pClient->first_msg = pMsg->next; in remove_msg()
911 if (pClient->first_msg == NULL) { in remove_msg()
912 pClient->last_msg = NULL; in remove_msg()
915 pClient->msg_count--; in remove_msg()
917 remove_client_block(pInfo, pClient); in remove_msg()
918 pClient->next_block_to_read = pMsg->block; in remove_msg()
920 spin_unlock_irqrestore(&pClient->lock, flags); in remove_msg()
926 struct r3964_client_info *pClient) in remove_client_block() argument
930 TRACE_PS("remove_client_block PID %d", pid_nr(pClient->pid)); in remove_client_block()
932 block = pClient->next_block_to_read; in remove_client_block()
939 pClient->next_block_to_read = NULL; in remove_client_block()
1010 struct r3964_client_info *pClient, *pNext; in r3964_close() local
1024 pClient = pInfo->firstClient; in r3964_close()
1025 while (pClient) { in r3964_close()
1026 pNext = pClient->next; in r3964_close()
1027 while (pClient->msg_count) { in r3964_close()
1028 pMsg = remove_msg(pInfo, pClient); in r3964_close()
1034 put_pid(pClient->pid); in r3964_close()
1035 kfree(pClient); in r3964_close()
1036 TRACE_M("r3964_close - client kfree %p", pClient); in r3964_close()
1037 pClient = pNext; in r3964_close()
1064 struct r3964_client_info *pClient; in r3964_read() local
1082 pClient = findClient(pInfo, task_pid(current)); in r3964_read()
1083 if (pClient) { in r3964_read()
1084 pMsg = remove_msg(pInfo, pClient); in r3964_read()
1093 (pMsg = remove_msg(pInfo, pClient))); in r3964_read()
1131 struct r3964_client_info *pClient; in r3964_write() local
1171 pClient = findClient(pInfo, task_pid(current)); in r3964_write()
1172 if (pClient) { in r3964_write()
1173 pHeader->owner = pClient; in r3964_write()
1244 struct r3964_client_info *pClient; in r3964_poll() local
1251 pClient = findClient(pInfo, task_pid(current)); in r3964_poll()
1252 if (pClient) { in r3964_poll()
1255 pMsg = pClient->first_msg; in r3964_poll()