diff options
Diffstat (limited to 'android.h')
-rw-r--r-- | android.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/android.h b/android.h new file mode 100644 index 0000000..8d304f5 --- /dev/null +++ b/android.h @@ -0,0 +1,105 @@ +/* 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 ANDROID_VERSION_MAJOR 1 +#define ANDROID_VERSION_MINOR 7 + +// Used to know where to store the user data image. +// Note: this *must* match the similar-named constant in the ADT plugin, +// defined in tools/androidprefs/src/com/android/prefs/AndroidLocation.java +#define ANDROID_SDK_VERSION "SDK-1.0" + +#define CONFIG_SHAPER 1 + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +/** 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[]; + +/* 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[]; + +/* 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); + +extern void android_emulation_setup( void ); +extern void android_emulation_teardown( void ); + +#endif /* _qemu_android_h */ |