blob: 050da7fc5e513df4ada9f207399b6c40e81b1807 [file] [log] [blame]
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -08001/* Copyright (C) 2007 The Android Open Source Project
2**
3** This software is licensed under the terms of the GNU General Public
4** License version 2, as published by the Free Software Foundation, and
5** may be copied, distributed, and modified under those terms.
6**
7** This program is distributed in the hope that it will be useful,
8** but WITHOUT ANY WARRANTY; without even the implied warranty of
9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10** GNU General Public License for more details.
11*/
12#ifndef _qemu_android_h
13#define _qemu_android_h
14
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080015#define CONFIG_SHAPER 1
16
17#include <stdlib.h>
18#include <stdio.h>
19#include <string.h>
20
21/** in vl.c */
22
23/* emulated network up/down speeds, expressed in bits/seconds */
24extern double qemu_net_upload_speed;
25extern double qemu_net_download_speed;
26
27/* emulated network min-max latency, expressed in ms */
28extern int qemu_net_min_latency;
29extern int qemu_net_max_latency;
30
31/* global flag, when true, network is disabled */
32extern int qemu_net_disable;
33
34/* list of supported network speed names and values in bits/seconds */
35typedef struct {
36 const char* name;
37 const char* display;
38 int upload;
39 int download;
40} NetworkSpeed;
41
42extern const NetworkSpeed android_netspeeds[];
Vladimir Chtchetkine318f17a2010-08-27 09:09:45 -070043extern const size_t android_netspeeds_count;
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080044
45/* list of supported network latency names and min-max values in ms */
46typedef struct {
47 const char* name;
48 const char* display;
49 int min_ms;
50 int max_ms;
51} NetworkLatency;
52
53extern const NetworkLatency android_netdelays[];
Vladimir Chtchetkine318f17a2010-08-27 09:09:45 -070054extern const size_t android_netdelays_count;
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080055
Vladimir Chtchetkineeb838252010-07-15 12:27:56 -070056/* default network settings for emulator */
57#define DEFAULT_NETSPEED "full"
58#define DEFAULT_NETDELAY "none"
59
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080060/* enable/disable interrupt polling mode. the emulator will always use 100%
61 * of host CPU time, but will get high-quality time measurments. this is
62 * required for the tracing mode unless you can bear 10ms granularities
63 */
64extern void qemu_polling_enable(void);
65extern void qemu_polling_disable(void);
66
David 'Digit' Turner6ba28da2014-01-10 12:21:19 +010067/**in hw/android/goldfish/fb.c */
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080068
69/* framebuffer dimensions in pixels, note these can change dynamically */
70extern int android_framebuffer_w;
71extern int android_framebuffer_h;
72/* framebuffer dimensions in mm */
73extern int android_framebuffer_phys_w;
74extern int android_framebuffer_phys_h;
75
76/* framebuffer rotation, relative to device */
77typedef enum {
78 ANDROID_ROTATION_0 = 0,
79 ANDROID_ROTATION_90,
80 ANDROID_ROTATION_180,
81 ANDROID_ROTATION_270
82} AndroidRotation;
83
84extern AndroidRotation android_framebuffer_rotation;
85
86/** in android_main.c */
87
88/* this is the port used for the control console in this emulator instance.
89 * starts at 5554, with increments of 2 */
90extern int android_base_port;
91
92/* parses a network speed parameter and sets qemu_net_upload_speed and
93 * qemu_net_download_speed accordingly. returns -1 on failure, 0 on success */
94extern int android_parse_network_speed(const char* speed);
95
96/* parse a network delay parameter and sets qemu_net_min/max_latency
97 * accordingly. returns -1 on error, 0 on success */
98extern int android_parse_network_latency(const char* delay);
99
Jesse Hall733fffa2012-04-26 11:07:32 -0700100/** in qemu_setup.c */
101
102#define ANDROID_GLSTRING_BUF_SIZE 128
103extern char android_gl_vendor[ANDROID_GLSTRING_BUF_SIZE];
104extern char android_gl_renderer[ANDROID_GLSTRING_BUF_SIZE];
105extern char android_gl_version[ANDROID_GLSTRING_BUF_SIZE];
106
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -0800107extern void android_emulation_setup( void );
108extern void android_emulation_teardown( void );
109
110#endif /* _qemu_android_h */