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;
544 for (pClient = pInfo->firstClient; pClient; pClient = pClient->next) {
545 if (pClient->sig_flags & R3964_SIG_DATA) {
546 add_msg(pClient, R3964_MSG_DATA, length, R3964_OK,
744 struct r3964_client_info *pClient;
746 for (pClient = pInfo->firstClient; pClient; pClient = pClient->next) {
747 if (pClient->pid == pid) {
748 return pClient;
756 struct r3964_client_info *pClient;
764 pClient = *ppClient;
766 if (pClient->pid == pid) {
769 *ppClient = pClient->next;
770 while (pClient->msg_count) {
771 pMsg = remove_msg(pInfo, pClient);
778 put_pid(pClient->pid);
779 kfree(pClient);
780 TRACE_M("enable_signals - kfree %p", pClient);
786 pClient = findClient(pInfo, pid);
787 if (pClient) {
789 pClient->sig_flags = arg;
792 pClient = kmalloc(sizeof(struct r3964_client_info),
794 TRACE_M("enable_signals - kmalloc %p", pClient);
795 if (pClient == NULL)
799 spin_lock_init(&pClient->lock);
800 pClient->sig_flags = arg;
801 pClient->pid = get_pid(pid);
802 pClient->next = pInfo->firstClient;
803 pClient->first_msg = NULL;
804 pClient->last_msg = NULL;
805 pClient->next_block_to_read = NULL;
806 pClient->msg_count = 0;
807 pInfo->firstClient = pClient;
817 struct r3964_client_info *pClient;
824 pClient = findClient(pInfo, pid);
825 if (pClient == NULL) {
829 block = pClient->next_block_to_read;
836 remove_client_block(pInfo, pClient);
843 static void add_msg(struct r3964_client_info *pClient, int msg_id, int arg,
849 if (pClient->msg_count < R3964_MAX_MSG_COUNT - 1) {
859 spin_lock_irqsave(&pClient->lock, flags);
867 if (pClient->last_msg == NULL) {
868 pClient->first_msg = pClient->last_msg = pMsg;
870 pClient->last_msg->next = pMsg;
871 pClient->last_msg = pMsg;
874 pClient->msg_count++;
879 spin_unlock_irqrestore(&pClient->lock, flags);
881 if ((pClient->last_msg->msg_id == R3964_MSG_ACK)
882 && (pClient->last_msg->error_code == R3964_OVERFLOW)) {
883 pClient->last_msg->arg++;
895 if (pClient->sig_flags & R3964_USE_SIGIO) {
896 kill_pid(pClient->pid, SIGIO, 1);
901 struct r3964_client_info *pClient)
906 if (pClient->first_msg) {
907 spin_lock_irqsave(&pClient->lock, flags);
909 pMsg = pClient->first_msg;
910 pClient->first_msg = pMsg->next;
911 if (pClient->first_msg == NULL) {
912 pClient->last_msg = NULL;
915 pClient->msg_count--;
917 remove_client_block(pInfo, pClient);
918 pClient->next_block_to_read = pMsg->block;
920 spin_unlock_irqrestore(&pClient->lock, flags);
926 struct r3964_client_info *pClient)
930 TRACE_PS("remove_client_block PID %d", pid_nr(pClient->pid));
932 block = pClient->next_block_to_read;
939 pClient->next_block_to_read = NULL;
1010 struct r3964_client_info *pClient, *pNext;
1024 pClient = pInfo->firstClient;
1025 while (pClient) {
1026 pNext = pClient->next;
1027 while (pClient->msg_count) {
1028 pMsg = remove_msg(pInfo, pClient);
1034 put_pid(pClient->pid);
1035 kfree(pClient);
1036 TRACE_M("r3964_close - client kfree %p", pClient);
1037 pClient = pNext;
1065 struct r3964_client_info *pClient;
1083 pClient = findClient(pInfo, task_pid(current));
1084 if (pClient) {
1085 pMsg = remove_msg(pInfo, pClient);
1094 (pMsg = remove_msg(pInfo, pClient)));
1129 struct r3964_client_info *pClient;
1169 pClient = findClient(pInfo, task_pid(current));
1170 if (pClient) {
1171 pHeader->owner = pClient;
1242 struct r3964_client_info *pClient;
1249 pClient = findClient(pInfo, task_pid(current));
1250 if (pClient) {
1253 pMsg = pClient->first_msg;