70 lines
1.8 KiB
C++
70 lines
1.8 KiB
C++
|
/*
|
||
|
* Copyright (C) 2015 The Android Open Source Project
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
* you may not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Implements ADB tracing inside the emulator.
|
||
|
*/
|
||
|
|
||
|
#include <stdarg.h>
|
||
|
|
||
|
#include "sysdeps.h"
|
||
|
#include "qemu_tracing.h"
|
||
|
|
||
|
/*
|
||
|
* Redefine open and write for qemu_pipe.h that contains inlined references
|
||
|
* to those routines. We will redifine them back after qemu_pipe.h inclusion.
|
||
|
*/
|
||
|
|
||
|
#undef open
|
||
|
#undef write
|
||
|
#define open adb_open
|
||
|
#define write adb_write
|
||
|
#include <hardware/qemu_pipe.h>
|
||
|
#undef open
|
||
|
#undef write
|
||
|
#define open ___xxx_open
|
||
|
#define write ___xxx_write
|
||
|
|
||
|
/* A handle to adb-debug qemud service in the emulator. */
|
||
|
int adb_debug_qemu = -1;
|
||
|
|
||
|
/* Initializes connection with the adb-debug qemud service in the emulator. */
|
||
|
int adb_qemu_trace_init(void)
|
||
|
{
|
||
|
char con_name[32];
|
||
|
|
||
|
if (adb_debug_qemu >= 0) {
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/* adb debugging QEMUD service connection request. */
|
||
|
snprintf(con_name, sizeof(con_name), "qemud:adb-debug");
|
||
|
adb_debug_qemu = qemu_pipe_open(con_name);
|
||
|
return (adb_debug_qemu >= 0) ? 0 : -1;
|
||
|
}
|
||
|
|
||
|
void adb_qemu_trace(const char* fmt, ...)
|
||
|
{
|
||
|
va_list args;
|
||
|
va_start(args, fmt);
|
||
|
char msg[1024];
|
||
|
|
||
|
if (adb_debug_qemu >= 0) {
|
||
|
vsnprintf(msg, sizeof(msg), fmt, args);
|
||
|
adb_write(adb_debug_qemu, msg, strlen(msg));
|
||
|
}
|
||
|
}
|