/* Copyright (C) 2007 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. */ #ifndef _qemu_android_h #define _qemu_android_h #define CONFIG_SHAPER 1 #include #include #include /** in vl.c */ /* emulated network up/down speeds, expressed in bits/seconds */ extern double qemu_net_upload_speed; extern double qemu_net_download_speed; /* emulated network min-max latency, expressed in ms */ extern int qemu_net_min_latency; extern int qemu_net_max_latency; /* global flag, when true, network is disabled */ extern int qemu_net_disable; /* list of supported network speed names and values in bits/seconds */ typedef struct { const char* name; const char* display; int upload; int download; } NetworkSpeed; extern const NetworkSpeed android_netspeeds[]; extern const size_t android_netspeeds_count; /* list of supported network latency names and min-max values in ms */ typedef struct { const char* name; const char* display; int min_ms; int max_ms; } NetworkLatency; extern const NetworkLatency android_netdelays[]; extern const size_t android_netdelays_count; /* default network settings for emulator */ #define DEFAULT_NETSPEED "full" #define DEFAULT_NETDELAY "none" /* enable/disable interrupt polling mode. the emulator will always use 100% * of host CPU time, but will get high-quality time measurments. this is * required for the tracing mode unless you can bear 10ms granularities */ extern void qemu_polling_enable(void); extern void qemu_polling_disable(void); /**in hw/goldfish_fb.c */ /* framebuffer dimensions in pixels, note these can change dynamically */ extern int android_framebuffer_w; extern int android_framebuffer_h; /* framebuffer dimensions in mm */ extern int android_framebuffer_phys_w; extern int android_framebuffer_phys_h; /* framebuffer rotation, relative to device */ typedef enum { ANDROID_ROTATION_0 = 0, ANDROID_ROTATION_90, ANDROID_ROTATION_180, ANDROID_ROTATION_270 } AndroidRotation; extern AndroidRotation android_framebuffer_rotation; /** in android_main.c */ /* this is the port used for the control console in this emulator instance. * starts at 5554, with increments of 2 */ extern int android_base_port; /* parses a network speed parameter and sets qemu_net_upload_speed and * qemu_net_download_speed accordingly. returns -1 on failure, 0 on success */ extern int android_parse_network_speed(const char* speed); /* parse a network delay parameter and sets qemu_net_min/max_latency * accordingly. returns -1 on error, 0 on success */ extern int android_parse_network_latency(const char* delay); /** in qemu_setup.c */ #define ANDROID_GLSTRING_BUF_SIZE 128 extern char android_gl_vendor[ANDROID_GLSTRING_BUF_SIZE]; extern char android_gl_renderer[ANDROID_GLSTRING_BUF_SIZE]; extern char android_gl_version[ANDROID_GLSTRING_BUF_SIZE]; extern void android_emulation_setup( void ); extern void android_emulation_teardown( void ); #endif /* _qemu_android_h */