1555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/*
2555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Simple DirectMedia Layer
3555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
4555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
5555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  This software is provided 'as-is', without any express or implied
6555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  warranty.  In no event will the authors be held liable for any damages
7555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  arising from the use of this software.
8555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
9555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  Permission is granted to anyone to use this software for any purpose,
10555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  including commercial applications, and to alter it and redistribute it
11555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  freely, subject to the following restrictions:
12555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
13555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  1. The origin of this software must not be misrepresented; you must not
14555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     claim that you wrote the original software. If you use this software
15555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     in a product, an acknowledgment in the product documentation would be
16555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     appreciated but is not required.
17555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  2. Altered source versions must be plainly marked as such, and must not be
18555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     misrepresented as being the original software.
19555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot  3. This notice may not be removed or altered from any source distribution.
20555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot*/
21555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
22555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
23555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \file SDL_stdinc.h
24555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
25555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  This is a general header that includes C language support.
26555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
27555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
28555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifndef _SDL_stdinc_h
29555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define _SDL_stdinc_h
30555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
31555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "SDL_config.h"
32555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
33555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef HAVE_SYS_TYPES_H
34555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <sys/types.h>
35555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
36555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef HAVE_STDIO_H
37555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <stdio.h>
38555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
39555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(STDC_HEADERS)
40555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <stdlib.h>
41555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <stddef.h>
42555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <stdarg.h>
43555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#else
44555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# if defined(HAVE_STDLIB_H)
45555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <stdlib.h>
46555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# elif defined(HAVE_MALLOC_H)
47555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <malloc.h>
48555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# endif
49555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# if defined(HAVE_STDDEF_H)
50555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <stddef.h>
51555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# endif
52555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# if defined(HAVE_STDARG_H)
53555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <stdarg.h>
54555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# endif
55555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
56555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef HAVE_STRING_H
57555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
58555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <memory.h>
59555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# endif
60555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <string.h>
61555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
62555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef HAVE_STRINGS_H
63555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <strings.h>
64555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
65555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(HAVE_INTTYPES_H)
66555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <inttypes.h>
67555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#elif defined(HAVE_STDINT_H)
68555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <stdint.h>
69555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
70555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef HAVE_CTYPE_H
71555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <ctype.h>
72555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
73555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef HAVE_MATH_H
74555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <math.h>
75555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
76555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H)
77555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# include <iconv.h>
78555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
79555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
80555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
81555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  The number of elements in an array.
82555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
83555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_arraysize(array)    (sizeof(array)/sizeof(array[0]))
84555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_TABLESIZE(table)    SDL_arraysize(table)
85555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
86555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
87555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \name Cast operators
88555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *
89555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  Use proper C++ casts when compiled as C++ to be compatible with the option
90555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above).
91555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
92555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* @{ */
93555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __cplusplus
94555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression)
95555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_static_cast(type, expression) static_cast<type>(expression)
96555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_const_cast(type, expression) const_cast<type>(expression)
97555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#else
98555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_reinterpret_cast(type, expression) ((type)(expression))
99555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_static_cast(type, expression) ((type)(expression))
100555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_const_cast(type, expression) ((type)(expression))
101555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
102555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* @} *//* Cast operators */
103555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
104555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Define a four character code as a Uint32 */
105555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_FOURCC(A, B, C, D) \
106555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \
107555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \
108555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \
109555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot     (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24))
110555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
111555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
112555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  \name Basic data types
113555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
114555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* @{ */
115555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
116555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef enum
117555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot{
118555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_FALSE = 0,
119555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    SDL_TRUE = 1
120555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot} SDL_bool;
121555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
122555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
123555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * \brief A signed 8-bit integer type.
124555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
125555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef int8_t Sint8;
126555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
127555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * \brief An unsigned 8-bit integer type.
128555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
129555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef uint8_t Uint8;
130555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
131555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * \brief A signed 16-bit integer type.
132555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
133555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef int16_t Sint16;
134555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
135555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * \brief An unsigned 16-bit integer type.
136555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
137555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef uint16_t Uint16;
138555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
139555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * \brief A signed 32-bit integer type.
140555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
141555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef int32_t Sint32;
142555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
143555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * \brief An unsigned 32-bit integer type.
144555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
145555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef uint32_t Uint32;
146555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
147555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
148555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * \brief A signed 64-bit integer type.
149555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
150555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef int64_t Sint64;
151555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
152555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot * \brief An unsigned 64-bit integer type.
153555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
154555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef uint64_t Uint64;
155555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
156555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* @} *//* Basic data types */
157555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
158555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
159555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_COMPILE_TIME_ASSERT(name, x)               \
160555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot       typedef int SDL_dummy_ ## name[(x) * 2 - 1]
161555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/** \cond */
162555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifndef DOXYGEN_SHOULD_IGNORE_THIS
163555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
164555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);
165555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
166555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);
167555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);
168555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
169555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
170555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
171555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif /* DOXYGEN_SHOULD_IGNORE_THIS */
172555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/** \endcond */
173555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
174555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Check to make sure enums are the size of ints, for structure packing.
175555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot   For both Watcom C/C++ and Borland C/C++ the compiler option that makes
176555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot   enums having the size of an int must be enabled.
177555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot   This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11).
178555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot*/
179555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
180555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/** \cond */
181555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifndef DOXYGEN_SHOULD_IGNORE_THIS
182555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if !defined(__ANDROID__)
183555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot   /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
184555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef enum
185555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot{
186555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    DUMMY_ENUM_VALUE
187555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot} SDL_DUMMY_ENUM;
188555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
189555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
190555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
191555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif /* DOXYGEN_SHOULD_IGNORE_THIS */
192555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/** \endcond */
193555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
194555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "begin_code.h"
195555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Set up for C function definitions, even when using C++ */
196555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __cplusplus
197555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern "C" {
198555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
199555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
200555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(HAVE_ALLOCA) && !defined(alloca)
201555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# if defined(HAVE_ALLOCA_H)
202555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <alloca.h>
203555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# elif defined(__GNUC__)
204555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  define alloca __builtin_alloca
205555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# elif defined(_MSC_VER)
206555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <malloc.h>
207555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  define alloca _alloca
208555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# elif defined(__WATCOMC__)
209555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <malloc.h>
210555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# elif defined(__BORLANDC__)
211555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <malloc.h>
212555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# elif defined(__DMC__)
213555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#  include <stdlib.h>
214555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# elif defined(__AIX__)
215555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#pragma alloca
216555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# elif defined(__MRC__)
217555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotvoid *alloca(unsigned);
218555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# else
219555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotchar *alloca();
220555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot# endif
221555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
222555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef HAVE_ALLOCA
223555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_stack_alloc(type, count)    (type*)alloca(sizeof(type)*(count))
224555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_stack_free(data)
225555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#else
226555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_stack_alloc(type, count)    (type*)SDL_malloc(sizeof(type)*(count))
227555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_stack_free(data)            SDL_free(data)
228555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
229555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
230555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void *SDLCALL SDL_malloc(size_t size);
231555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size);
232555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size);
233555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void SDLCALL SDL_free(void *mem);
234555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
235555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
236555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite);
237555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
238555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, int (*compare) (const void *, const void *));
239555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
240555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_abs(int x);
241555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
242555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* !!! FIXME: these have side effects. You probably shouldn't use them. */
243555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* !!! FIXME: Maybe we do forceinline functions of SDL_mini, SDL_minf, etc? */
244555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_min(x, y) (((x) < (y)) ? (x) : (y))
245555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_max(x, y) (((x) > (y)) ? (x) : (y))
246555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
247555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_isdigit(int x);
248555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_isspace(int x);
249555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_toupper(int x);
250555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_tolower(int x);
251555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
252555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len);
253555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
254555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
255555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
256555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
257555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */
258555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
259555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot{
260555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#if defined(__GNUC__) && defined(i386)
261555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    int u0, u1, u2;
262555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    __asm__ __volatile__ (
263555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        "cld \n\t"
264555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        "rep ; stosl \n\t"
265555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        : "=&D" (u0), "=&a" (u1), "=&c" (u2)
266555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, dwords))
267555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        : "memory"
268555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    );
269555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#else
270555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    size_t _n = (dwords + 3) / 4;
271555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    Uint32 *_p = SDL_static_cast(Uint32 *, dst);
272555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    Uint32 _val = (val);
273555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    if (dwords == 0)
274555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        return;
275555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    switch (dwords % 4)
276555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    {
277555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        case 0: do {    *_p++ = _val;
278555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        case 3:         *_p++ = _val;
279555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        case 2:         *_p++ = _val;
280555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        case 1:         *_p++ = _val;
281555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot        } while ( --_n );
282555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    }
283555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
284555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot}
285555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
286555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
287555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src, size_t len);
288555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
289555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team RobotSDL_FORCE_INLINE void *SDL_memcpy4(void *dst, const void *src, size_t dwords)
290555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot{
291555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot    return SDL_memcpy(dst, src, dwords * 4);
292555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot}
293555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
294555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC void *SDLCALL SDL_memmove(void *dst, const void *src, size_t len);
295555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
296555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
297555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr);
298555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC size_t SDLCALL SDL_wcslcpy(wchar_t *dst, const wchar_t *src, size_t maxlen);
299555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC size_t SDLCALL SDL_wcslcat(wchar_t *dst, const wchar_t *src, size_t maxlen);
300555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
301555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC size_t SDLCALL SDL_strlen(const char *str);
302555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src, size_t maxlen);
303555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC size_t SDLCALL SDL_utf8strlcpy(char *dst, const char *src, size_t dst_bytes);
304555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src, size_t maxlen);
305555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_strdup(const char *str);
306555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_strrev(char *str);
307555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_strupr(char *str);
308555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_strlwr(char *str);
309555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c);
310555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c);
311555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle);
312555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
313555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix);
314555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix);
315555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix);
316555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix);
317555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix);
318555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix);
319555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
320555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_atoi(const char *str);
321555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_atof(const char *str);
322555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base);
323555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base);
324555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base);
325555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base);
326555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp);
327555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
328555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2);
329555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen);
330555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
331555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len);
332555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
333555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, ...);
334555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, const char *fmt, va_list ap);
335555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...);
336555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap);
337555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
338555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifndef HAVE_M_PI
339555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifndef M_PI
340555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define M_PI    3.14159265358979323846264338327950288   /* pi */
341555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
342555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
343555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
344555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_acos(double x);
345555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_asin(double x);
346555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_atan(double x);
347555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_atan2(double x, double y);
348555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_ceil(double x);
349555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_copysign(double x, double y);
350555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_cos(double x);
351555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC float SDLCALL SDL_cosf(float x);
352555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_fabs(double x);
353555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_floor(double x);
354555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_log(double x);
355555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_pow(double x, double y);
356555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_scalbn(double x, int n);
357555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_sin(double x);
358555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC float SDLCALL SDL_sinf(float x);
359555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC double SDLCALL SDL_sqrt(double x);
360555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
361555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* The SDL implementation of iconv() returns these error codes */
362555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_ICONV_ERROR     (size_t)-1
363555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_ICONV_E2BIG     (size_t)-2
364555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_ICONV_EILSEQ    (size_t)-3
365555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_ICONV_EINVAL    (size_t)-4
366555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
367555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* SDL_iconv_* are now always real symbols/types, not macros or inlined. */
368555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robottypedef struct _SDL_iconv_t *SDL_iconv_t;
369555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode,
370555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                                   const char *fromcode);
371555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd);
372555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf,
373555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                         size_t * inbytesleft, char **outbuf,
374555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                         size_t * outbytesleft);
375555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/**
376555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  This function converts a string between encodings in one pass, returning a
377555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot *  string that must be freed with SDL_free() or NULL on error.
378555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot */
379555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotextern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
380555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                               const char *fromcode,
381555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                               const char *inbuf,
382555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot                                               size_t inbytesleft);
383555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_iconv_utf8_locale(S)    SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1)
384555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_iconv_utf8_ucs2(S)      (Uint16 *)SDL_iconv_string("UCS-2-INTERNAL", "UTF-8", S, SDL_strlen(S)+1)
385555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#define SDL_iconv_utf8_ucs4(S)      (Uint32 *)SDL_iconv_string("UCS-4-INTERNAL", "UTF-8", S, SDL_strlen(S)+1)
386555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
387555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* Ends C function definitions when using C++ */
388555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef __cplusplus
389555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot}
390555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif
391555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include "close_code.h"
392555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
393555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif /* _SDL_stdinc_h */
394555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot
395555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot/* vi: set ts=4 sw=4 expandtab: */
396