blob: f0cdebefde036b934d773dc3b395fcccc3aac14a [file] [log] [blame]
// Copyright 2015 The Android Open Source Project
//
// This software is licensed under the terms of the GNU General Public
// License version 2, as published by the Free Software Foundation, and
// may be copied, distributed, and modified under those terms.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
#pragma once
#include "android/emulation/serial_line.h"
#include "android/utils/compiler.h"
ANDROID_BEGIN_HEADER
// NOTE: Do not include "qemu-common.h" here because this fails
// to compile when included from a C++ file due to other
// issues in include/qemu/int28.h. Instead, use the
typedef struct CharDriverState CharDriverState;
// Call this during setup to inject QEMU2-specific SerialLine
// implementation into the process.
void qemu2_android_serialline_init(void);
// Create a new CSerialLine instance that wraps a CharDriverState |cs|.
CSerialLine* android_serialline_from_cs(CharDriverState* cs);
// Extract the QEMU1 CharDriverState instance wrapped by a CSerialLine
// instance |sl|.
CharDriverState* android_serialline_get_cs(CSerialLine* sl);
// Extract the CharDriverState instance wrapped by |sl|, but also
// destroys the CSerialLine instance.
CharDriverState* android_serialline_release_cs(CSerialLine* sl);
ANDROID_END_HEADER