Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cfe72e29 authored by Josh Gao's avatar Josh Gao
Browse files

adb: add tracing to transport.cpp.

Bug: http://b/31289465
Test: systrace
Change-Id: I41968f447b61ef1eea2b933a5fd8623605c4dea6
parent 1290fbf5
Loading
Loading
Loading
Loading
+18 −8
Original line number Original line Diff line number Diff line
@@ -37,6 +37,7 @@


#include "adb.h"
#include "adb.h"
#include "adb_auth.h"
#include "adb_auth.h"
#include "adb_trace.h"
#include "adb_utils.h"
#include "adb_utils.h"
#include "diagnose_usb.h"
#include "diagnose_usb.h"


@@ -88,6 +89,7 @@ static std::string dump_packet(const char* name, const char* func, apacket* p) {
}
}


static int read_packet(int fd, const char* name, apacket** ppacket) {
static int read_packet(int fd, const char* name, apacket** ppacket) {
    ATRACE_NAME("read_packet");
    char buff[8];
    char buff[8];
    if (!name) {
    if (!name) {
        snprintf(buff, sizeof buff, "fd=%d", fd);
        snprintf(buff, sizeof buff, "fd=%d", fd);
@@ -111,6 +113,7 @@ static int read_packet(int fd, const char* name, apacket** ppacket) {
}
}


static int write_packet(int fd, const char* name, apacket** ppacket) {
static int write_packet(int fd, const char* name, apacket** ppacket) {
    ATRACE_NAME("write_packet");
    char buff[8];
    char buff[8];
    if (!name) {
    if (!name) {
        snprintf(buff, sizeof buff, "fd=%d", fd);
        snprintf(buff, sizeof buff, "fd=%d", fd);
@@ -194,20 +197,24 @@ static void read_transport_thread(void* _t) {


    D("%s: data pump started", t->serial);
    D("%s: data pump started", t->serial);
    for (;;) {
    for (;;) {
        ATRACE_NAME("read_transport loop");
        p = get_apacket();
        p = get_apacket();


        if (t->read_from_remote(p, t) == 0) {
        {
            ATRACE_NAME("read_transport read_remote");
            if (t->read_from_remote(p, t) != 0) {
                D("%s: remote read failed for transport", t->serial);
                put_apacket(p);
                break;
            }
        }

        D("%s: received remote packet, sending to transport", t->serial);
        D("%s: received remote packet, sending to transport", t->serial);
        if (write_packet(t->fd, t->serial, &p)) {
        if (write_packet(t->fd, t->serial, &p)) {
            put_apacket(p);
            put_apacket(p);
            D("%s: failed to write apacket to transport", t->serial);
            D("%s: failed to write apacket to transport", t->serial);
            goto oops;
            goto oops;
        }
        }
        } else {
            D("%s: remote read failed for transport", t->serial);
            put_apacket(p);
            break;
        }
    }
    }


    D("%s: SYNC offline for transport", t->serial);
    D("%s: SYNC offline for transport", t->serial);
@@ -239,10 +246,12 @@ static void write_transport_thread(void* _t) {
    D("%s: starting write_transport thread, reading from fd %d", t->serial, t->fd);
    D("%s: starting write_transport thread, reading from fd %d", t->serial, t->fd);


    for (;;) {
    for (;;) {
        ATRACE_NAME("write_transport loop");
        if (read_packet(t->fd, t->serial, &p)) {
        if (read_packet(t->fd, t->serial, &p)) {
            D("%s: failed to read apacket from transport on fd %d", t->serial, t->fd);
            D("%s: failed to read apacket from transport on fd %d", t->serial, t->fd);
            break;
            break;
        }
        }

        if (p->msg.command == A_SYNC) {
        if (p->msg.command == A_SYNC) {
            if (p->msg.arg0 == 0) {
            if (p->msg.arg0 == 0) {
                D("%s: transport SYNC offline", t->serial);
                D("%s: transport SYNC offline", t->serial);
@@ -259,6 +268,7 @@ static void write_transport_thread(void* _t) {
        } else {
        } else {
            if (active) {
            if (active) {
                D("%s: transport got packet, sending to remote", t->serial);
                D("%s: transport got packet, sending to remote", t->serial);
                ATRACE_NAME("write_transport write_remote");
                t->write_to_remote(p, t);
                t->write_to_remote(p, t);
            } else {
            } else {
                D("%s: transport ignoring packet while offline", t->serial);
                D("%s: transport ignoring packet while offline", t->serial);