1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ftconfig.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ANSI-specific configuration file (specification only). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 79c745321260bb728ab1cd1c8fd5f075854b2ad49Behdad Esfahbod/* Copyright 1996-2004, 2006-2008, 2010-2011, 2013, 2014 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This header file contains a number of macro definitions that are used */ 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* by the rest of the engine. Most of the macros here are automatically */ 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* determined at compile time, and you should not need to change it to */ 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* port FreeType, except to compile the library with a non-ANSI */ 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* compiler. */ 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Note however that if some specific modifications are needed, we */ 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* advise you to place a modified copy in your build directory. */ 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 30ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease /* The build directory is usually `builds/<system>', and contains */ 31ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease /* system-specific files that are always included first when building */ 32ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease /* the library. */ 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 34ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease /* This ANSI version should stay in `include/config/'. */ 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FTCONFIG_H__ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTCONFIG_H__ 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_CONFIG_OPTIONS_H 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_CONFIG_STANDARD_LIBRARY_H 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 450a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 480a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* These macros can be toggled to suit a specific system. The current */ 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* ones are defaults used to compile FreeType in an ANSI C environment */ 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* (16bit compilers are also supported). Copy this file to your own */ 56ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease /* `builds/<system>' directory, and edit it to port the engine. */ 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* There are systems (like the Texas Instruments 'C54x) where a `char' */ 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */ 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */ 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* is probably unexpected. */ 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */ 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* `char' type. */ 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_CHAR_BIT 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_CHAR_BIT CHAR_BIT 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The size of an `int' type. */ 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if FT_UINT_MAX == 0xFFFFUL 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_SIZEOF_INT (16 / FT_CHAR_BIT) 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif FT_UINT_MAX == 0xFFFFFFFFUL 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_SIZEOF_INT (32 / FT_CHAR_BIT) 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_SIZEOF_INT (64 / FT_CHAR_BIT) 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Unsupported size of `int' type!" 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The size of a `long' type. A five-byte `long' (as used e.g. on the */ 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* DM642) is recognized but avoided. */ 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if FT_ULONG_MAX == 0xFFFFFFFFUL 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT) 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Unsupported size of `long' type!" 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UNUSED is a macro used to indicate that a given parameter is not */ 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* used -- this is only used to get rid of unpleasant compiler warnings */ 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_UNUSED 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_UNUSED( arg ) ( (arg) = (arg) ) 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* AUTOMATIC CONFIGURATION MACROS */ 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* These macros are computed from the ones defined above. Don't touch */ 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* their definition, unless you know precisely what you are doing. No */ 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* porter should need to mess with them. */ 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Mac support */ 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This is the only necessary change, so it is defined here instead */ 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* providing a new configuration file. */ 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 12341371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) ) 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* no Carbon frameworks for 64bit 10.4.x */ 125aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner /* AvailabilityMacros.h is available since Mac OS X 10.2, */ 126aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner /* so guess the system version by maximum errno before inclusion */ 127aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner#include <errno.h> 128aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner#ifdef ECANCELED /* defined since 10.2 */ 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "AvailabilityMacros.h" 130aeb407daf3711a10a27f3bc2223c5eb05158076eDavid 'Digit' Turner#endif 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if defined( __LP64__ ) && \ 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 ) 13341371e1e39c8528eb0c4bc40683c736e6683e60cEric Vannier#undef FT_MACINTOSH 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 1350a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project 1360a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#elif defined( __SC__ ) || defined( __MRC__ ) 1370a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* Classic MacOS compilers */ 1380a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#include "ConditionalMacros.h" 1390a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#if TARGET_OS_MAC 1400a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#define FT_MACINTOSH 1 1410a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#endif 1420a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* basic_types */ 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Int16 */ 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for a 16bit signed integer type. */ 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed short FT_Int16; 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UInt16 */ 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for a 16bit unsigned integer type. */ 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned short FT_UInt16; 1740a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* this #if 0 ... #endif clause is for documentation purposes */ 179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if 0 180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 181049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Int32 */ 185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for a 32bit signed integer type. The size depends on */ 188049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* the configuration. */ 189049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed XXX FT_Int32; 191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Type> */ 196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_UInt32 */ 197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A typedef for a 32bit unsigned integer type. The size depends on */ 199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* the configuration. */ 200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned XXX FT_UInt32; 202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 203727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 204727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /*************************************************************************/ 205727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* */ 206727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* <Type> */ 207727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* FT_Int64 */ 208727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* */ 209727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* A typedef for a 64bit signed integer type. The size depends on */ 210727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* the configuration. Only defined if there is real 64bit support; */ 211727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* otherwise, it gets emulated with a structure (if necessary). */ 212727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* */ 213727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef signed XXX FT_Int64; 214727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 215727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 216727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /*************************************************************************/ 217727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* */ 218727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* <Type> */ 219727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* FT_UInt64 */ 220727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* */ 221727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* A typedef for a 64bit unsigned integer type. The size depends on */ 222727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* the configuration. Only defined if there is real 64bit support; */ 223727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* otherwise, it gets emulated with a structure (if necessary). */ 224727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease /* */ 225727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef unsigned XXX FT_UInt64; 226727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT) 232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed int FT_Int32; 234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned int FT_UInt32; 235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT) 237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 238049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef signed long FT_Int32; 239049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned long FT_UInt32; 240049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 241049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 242049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "no 32bit type found -- please check your configuration files" 243049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 2450a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project 246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* look up an integer type that is at least 32 bits */ 247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) 248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef int FT_Fast; 250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned int FT_UFast; 251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT) 253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 254049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef long FT_Fast; 255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef unsigned long FT_UFast; 256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 257049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 258049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 259049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 260049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* determine whether we have a 64-bit int type for platforms without */ 261049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Autoconf */ 262049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) 263049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 264049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_LONG64 must be defined if a 64-bit type is available */ 265049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LONG64 266727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_INT64 long 267727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_UINT64 unsigned long 268049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 269049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ 270049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 271049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* this compiler provides the __int64 type */ 272049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LONG64 273727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_INT64 __int64 274727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_UINT64 unsigned __int64 275049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 276049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif defined( __BORLANDC__ ) /* Borland C++ */ 277049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 278049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* XXXX: We should probably check the value of __BORLANDC__ in order */ 279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* to test the compiler version. */ 280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* this compiler provides the __int64 type */ 282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LONG64 283727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_INT64 __int64 284727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_UINT64 unsigned __int64 285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif defined( __WATCOMC__ ) /* Watcom C++ */ 287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 288049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Watcom doesn't provide 64-bit data types */ 289049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 290049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ 291049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 292049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LONG64 293727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_INT64 long long int 294727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_UINT64 unsigned long long int 295049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 296049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#elif defined( __GNUC__ ) 297049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 298049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* GCC provides the `long long' type */ 299049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LONG64 300727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_INT64 long long int 301727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#define FT_UINT64 unsigned long long int 302049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 303049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ 304049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 305049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 306049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 307049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 308049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* A 64-bit data type will create compilation problems if you compile */ 3090a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* in strict ANSI mode. To avoid them, we disable its use if __STDC__ */ 3100a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* is defined. You can however ignore this rule by defining the */ 3110a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ 312049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 313049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 ) 314049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 315049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __STDC__ 316049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 317049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* undefine the 64-bit macros in strict ANSI compilation mode */ 318049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#undef FT_LONG64 319049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#undef FT_INT64 320049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 321049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __STDC__ */ 322049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 323049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */ 324049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 325727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#ifdef FT_LONG64 326727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef FT_INT64 FT_Int64; 327727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease typedef FT_UINT64 FT_UInt64; 328727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#endif 329727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 330049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 3310a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#define FT_BEGIN_STMNT do { 3320a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#define FT_END_STMNT } while ( 0 ) 3330a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT 3340a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project 3350a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project 336049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FT_MAKE_OPTION_SINGLE_OBJECT 337049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 338049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LOCAL( x ) static x 339049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LOCAL_DEF( x ) static x 340049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 341049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 342049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 343049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __cplusplus 344049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LOCAL( x ) extern "C" x 345049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LOCAL_DEF( x ) extern "C" x 346049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 347049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LOCAL( x ) extern x 348049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_LOCAL_DEF( x ) x 349049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 350049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 351049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */ 352049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 353ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease#define FT_LOCAL_ARRAY( x ) extern const x 354ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease#define FT_LOCAL_ARRAY_DEF( x ) const x 355ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease 356049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 357049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_BASE 358049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 359049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __cplusplus 360049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_BASE( x ) extern "C" x 361049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 362049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_BASE( x ) extern x 363049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 364049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 365049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* !FT_BASE */ 366049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 367049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 368049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_BASE_DEF 369049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 370049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __cplusplus 3710a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#define FT_BASE_DEF( x ) x 372049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 373049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_BASE_DEF( x ) x 374049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 375049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 376049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* !FT_BASE_DEF */ 377049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 378049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 379049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_EXPORT 380049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 381049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __cplusplus 382049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_EXPORT( x ) extern "C" x 383049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 384049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_EXPORT( x ) extern x 385049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 386049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 387049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* !FT_EXPORT */ 388049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 389049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 390049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_EXPORT_DEF 391049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 392049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __cplusplus 393049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_EXPORT_DEF( x ) extern "C" x 394049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 395049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_EXPORT_DEF( x ) extern x 396049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 397049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 398049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* !FT_EXPORT_DEF */ 399049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 400049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 401049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_EXPORT_VAR 402049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 403049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __cplusplus 404049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_EXPORT_VAR( x ) extern "C" x 405049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 406049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_EXPORT_VAR( x ) extern x 407049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 408049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 409049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* !FT_EXPORT_VAR */ 410049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 411049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The following macros are needed to compile the library with a */ 412049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* C++ compiler and with 16bit compilers. */ 413049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 414049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 415049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This is special. Within C++, you must specify `extern "C"' for */ 416049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* functions which are used via function pointers, and you also */ 417049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* must do that for structures which contain function pointers to */ 418049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* assure C linkage -- it's not possible to have (local) anonymous */ 419049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* functions which are accessed by (global) function pointers. */ 420049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 421049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 422049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_CALLBACK_DEF is used to _define_ a callback function. */ 423049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 424049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ 425049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* contains pointers to callback functions. */ 426049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 427049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ 428049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* that contains pointers to callback functions. */ 429049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 430049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 431049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Some 16bit compilers have to redefine these macros to insert */ 432049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* the infamous `_cdecl' or `__fastcall' declarations. */ 433049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 434049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_CALLBACK_DEF 435049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __cplusplus 436049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_CALLBACK_DEF( x ) extern "C" x 437049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 438049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_CALLBACK_DEF( x ) static x 439049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 440049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* FT_CALLBACK_DEF */ 441049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 442049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef FT_CALLBACK_TABLE 443049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef __cplusplus 444049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_CALLBACK_TABLE extern "C" 445049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_CALLBACK_TABLE_DEF extern "C" 446049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else 447049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_CALLBACK_TABLE extern 448049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_CALLBACK_TABLE_DEF /* nothing */ 449049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 450049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* FT_CALLBACK_TABLE */ 451049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 452049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 453049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 454049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 455049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 456049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTCONFIG_H__ */ 457049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 458049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 459049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 460