Lines Matching refs:t
28 static void transport_unref(atransport *t);
66 kick_transport(atransport* t) in kick_transport() argument
68 if (t && !t->kicked) in kick_transport()
73 kicked = t->kicked; in kick_transport()
75 t->kicked = 1; in kick_transport()
79 t->kick(t); in kick_transport()
84 run_transport_disconnects(atransport* t) in run_transport_disconnects() argument
86 adisconnect* dis = t->disconnects.next; in run_transport_disconnects()
88 D("%s: run_transport_disconnects\n", t->serial); in run_transport_disconnects()
89 while (dis != &t->disconnects) { in run_transport_disconnects()
91 dis->func( dis->opaque, t ); in run_transport_disconnects()
200 atransport *t = _t; in transport_socket_events() local
204 if(read_packet(fd, t->serial, &p)){ in transport_socket_events()
205 D("%s: failed to read packet from transport socket on fd %d\n", t->serial, fd); in transport_socket_events()
212 void send_packet(apacket *p, atransport *t) in send_packet() argument
230 if (t == NULL) { in send_packet()
237 if(write_packet(t->transport_socket, t->serial, &p)){ in send_packet()
257 atransport *t = _t; in output_thread() local
261 t->serial, t->fd, t->sync_token + 1); in output_thread()
265 p->msg.arg1 = ++(t->sync_token); in output_thread()
267 if(write_packet(t->fd, t->serial, &p)) { in output_thread()
269 D("%s: failed to write SYNC packet\n", t->serial); in output_thread()
273 D("%s: data pump started\n", t->serial); in output_thread()
277 if(t->read_from_remote(p, t) == 0){ in output_thread()
279 t->serial); in output_thread()
280 if(write_packet(t->fd, t->serial, &p)){ in output_thread()
282 D("%s: failed to write apacket to transport\n", t->serial); in output_thread()
286 D("%s: remote read failed for transport\n", t->serial); in output_thread()
292 D("%s: SYNC offline for transport\n", t->serial); in output_thread()
298 if(write_packet(t->fd, t->serial, &p)) { in output_thread()
300 D("%s: failed to write SYNC apacket to transport", t->serial); in output_thread()
304 D("%s: transport output thread is exiting\n", t->serial); in output_thread()
305 kick_transport(t); in output_thread()
306 transport_unref(t); in output_thread()
312 atransport *t = _t; in input_thread() local
317 t->serial, t->fd); in input_thread()
320 if(read_packet(t->fd, t->serial, &p)) { in input_thread()
322 t->serial, t->fd ); in input_thread()
327 D("%s: transport SYNC offline\n", t->serial); in input_thread()
331 if(p->msg.arg1 == t->sync_token) { in input_thread()
332 D("%s: transport SYNC online\n", t->serial); in input_thread()
336 t->serial, p->msg.arg1, t->sync_token); in input_thread()
341 D("%s: transport got packet, sending to remote\n", t->serial); in input_thread()
342 t->write_to_remote(p, t); in input_thread()
344 D("%s: transport ignoring packet while offline\n", t->serial); in input_thread()
353 close_all_sockets(t); in input_thread()
355 D("%s: transport input thread is exiting, fd %d\n", t->serial, t->fd); in input_thread()
356 kick_transport(t); in input_thread()
357 transport_unref(t); in input_thread()
572 atransport *t; in transport_registration_func() local
582 t = m.transport; in transport_registration_func()
585 D("transport: %s removing and free'ing %d\n", t->serial, t->transport_socket); in transport_registration_func()
590 fdevent_remove(&(t->transport_fde)); in transport_registration_func()
591 adb_close(t->fd); in transport_registration_func()
594 t->next->prev = t->prev; in transport_registration_func()
595 t->prev->next = t->next; in transport_registration_func()
598 run_transport_disconnects(t); in transport_registration_func()
600 if (t->product) in transport_registration_func()
601 free(t->product); in transport_registration_func()
602 if (t->serial) in transport_registration_func()
603 free(t->serial); in transport_registration_func()
604 if (t->model) in transport_registration_func()
605 free(t->model); in transport_registration_func()
606 if (t->device) in transport_registration_func()
607 free(t->device); in transport_registration_func()
608 if (t->devpath) in transport_registration_func()
609 free(t->devpath); in transport_registration_func()
611 memset(t,0xee,sizeof(atransport)); in transport_registration_func()
612 free(t); in transport_registration_func()
619 if (t->connection_state != CS_NOPERM) { in transport_registration_func()
621 t->ref_count = 2; in transport_registration_func()
627 D("transport: %s (%d,%d) starting\n", t->serial, s[0], s[1]); in transport_registration_func()
629 t->transport_socket = s[0]; in transport_registration_func()
630 t->fd = s[1]; in transport_registration_func()
632 fdevent_install(&(t->transport_fde), in transport_registration_func()
633 t->transport_socket, in transport_registration_func()
635 t); in transport_registration_func()
637 fdevent_set(&(t->transport_fde), FDE_READ); in transport_registration_func()
639 if(adb_thread_create(&input_thread_ptr, input_thread, t)){ in transport_registration_func()
643 if(adb_thread_create(&output_thread_ptr, output_thread, t)){ in transport_registration_func()
650 t->next = &transport_list; in transport_registration_func()
651 t->prev = transport_list.prev; in transport_registration_func()
652 t->next->prev = t; in transport_registration_func()
653 t->prev->next = t; in transport_registration_func()
656 t->disconnects.next = t->disconnects.prev = &t->disconnects; in transport_registration_func()
704 static void transport_unref_locked(atransport *t) in transport_unref_locked() argument
706 t->ref_count--; in transport_unref_locked()
707 if (t->ref_count == 0) { in transport_unref_locked()
708 D("transport: %s unref (kicking and closing)\n", t->serial); in transport_unref_locked()
709 if (!t->kicked) { in transport_unref_locked()
710 t->kicked = 1; in transport_unref_locked()
711 t->kick(t); in transport_unref_locked()
713 t->close(t); in transport_unref_locked()
714 remove_transport(t); in transport_unref_locked()
716 D("transport: %s unref (count=%d)\n", t->serial, t->ref_count); in transport_unref_locked()
720 static void transport_unref(atransport *t) in transport_unref() argument
722 if (t) { in transport_unref()
724 transport_unref_locked(t); in transport_unref()
729 void add_transport_disconnect(atransport* t, adisconnect* dis) in add_transport_disconnect() argument
732 dis->next = &t->disconnects; in add_transport_disconnect()
739 void remove_transport_disconnect(atransport* t, adisconnect* dis) in remove_transport_disconnect() argument
788 atransport *t; in acquire_one_transport() local
797 for (t = transport_list.next; t != &transport_list; t = t->next) { in acquire_one_transport()
798 if (t->connection_state == CS_NOPERM) { in acquire_one_transport()
806 if ((t->serial && !strcmp(serial, t->serial)) || in acquire_one_transport()
807 (t->devpath && !strcmp(serial, t->devpath)) || in acquire_one_transport()
808 qual_match(serial, "product:", t->product, 0) || in acquire_one_transport()
809 qual_match(serial, "model:", t->model, 1) || in acquire_one_transport()
810 qual_match(serial, "device:", t->device, 0)) { in acquire_one_transport()
818 result = t; in acquire_one_transport()
821 if (ttype == kTransportUsb && t->type == kTransportUsb) { in acquire_one_transport()
829 result = t; in acquire_one_transport()
830 } else if (ttype == kTransportLocal && t->type == kTransportLocal) { in acquire_one_transport()
838 result = t; in acquire_one_transport()
847 result = t; in acquire_one_transport()
887 static const char *statename(atransport *t) in statename() argument
889 switch(t->connection_state){ in statename()
925 static size_t format_transport(atransport *t, char *buf, size_t bufsize, in format_transport() argument
928 const char* serial = t->serial; in format_transport()
933 return snprintf(buf, bufsize, "%s\t%s\n", serial, statename(t)); in format_transport()
937 len = snprintf(buf, remaining, "%-22s %s", serial, statename(t)); in format_transport()
941 add_qual(&buf, &remaining, " ", t->devpath, 0); in format_transport()
942 add_qual(&buf, &remaining, " product:", t->product, 0); in format_transport()
943 add_qual(&buf, &remaining, " model:", t->model, 1); in format_transport()
944 add_qual(&buf, &remaining, " device:", t->device, 0); in format_transport()
958 atransport *t; in list_transports() local
962 for(t = transport_list.next; t != &transport_list; t = t->next) { in list_transports()
963 len = format_transport(t, p, end - p, long_listing); in list_transports()
979 atransport *t; in close_usb_devices() local
982 for(t = transport_list.next; t != &transport_list; t = t->next) { in close_usb_devices()
983 if ( !t->kicked ) { in close_usb_devices()
984 t->kicked = 1; in close_usb_devices()
985 t->kick(t); in close_usb_devices()
994 atransport *t = calloc(1, sizeof(atransport)); in register_socket_transport() local
998 snprintf(buff, sizeof buff, "T-%p", t); in register_socket_transport()
1002 if ( init_socket_transport(t, s, port, local) < 0 ) { in register_socket_transport()
1004 free(t); in register_socket_transport()
1008 t->serial = strdup(serial); in register_socket_transport()
1010 register_transport(t); in register_socket_transport()
1016 atransport *t; in find_transport() local
1019 for(t = transport_list.next; t != &transport_list; t = t->next) { in find_transport()
1020 if (t->serial && !strcmp(serial, t->serial)) { in find_transport()
1026 if (t != &transport_list) in find_transport()
1027 return t; in find_transport()
1032 void unregister_transport(atransport *t) in unregister_transport() argument
1035 t->next->prev = t->prev; in unregister_transport()
1036 t->prev->next = t->next; in unregister_transport()
1039 kick_transport(t); in unregister_transport()
1040 transport_unref(t); in unregister_transport()
1046 atransport *t, *next; in unregister_all_tcp_transports() local
1048 for (t = transport_list.next; t != &transport_list; t = next) { in unregister_all_tcp_transports()
1049 next = t->next; in unregister_all_tcp_transports()
1050 if (t->type == kTransportLocal && t->adb_port == 0) { in unregister_all_tcp_transports()
1051 t->next->prev = t->prev; in unregister_all_tcp_transports()
1052 t->prev->next = next; in unregister_all_tcp_transports()
1054 if (!t->kicked) in unregister_all_tcp_transports()
1056 t->kicked = 1; in unregister_all_tcp_transports()
1057 t->kick(t); in unregister_all_tcp_transports()
1059 transport_unref_locked(t); in unregister_all_tcp_transports()
1070 atransport *t = calloc(1, sizeof(atransport)); in register_usb_transport() local
1071 D("transport: %p init'ing for usb_handle %p (sn='%s')\n", t, usb, in register_usb_transport()
1073 init_usb_transport(t, usb, (writeable ? CS_OFFLINE : CS_NOPERM)); in register_usb_transport()
1075 t->serial = strdup(serial); in register_usb_transport()
1078 t->devpath = strdup(devpath); in register_usb_transport()
1080 register_transport(t); in register_usb_transport()
1086 atransport *t; in unregister_usb_transport() local
1088 for(t = transport_list.next; t != &transport_list; t = t->next) { in unregister_usb_transport()
1089 if (t->usb == usb && t->connection_state == CS_NOPERM) { in unregister_usb_transport()
1090 t->next->prev = t->prev; in unregister_usb_transport()
1091 t->prev->next = t->next; in unregister_usb_transport()