epoc32/include/stdapis/_ansi.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100 (2010-03-31)
branchSymbian2
changeset 3 e1b950c65cb4
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
     1 /*
     2 * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     5 * under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:
    15 * Redistribution and use in source and binary forms, with or without 
    16 * modification, are permitted provided that the following conditions are met:
    17 * Redistributions of source code must retain the above copyright notice, this 
    18 * list of conditions and the following disclaimer. 
    19 * Redistributions in binary form must reproduce the above copyright notice, 
    20 * this list of conditions and the following disclaimer in the documentation 
    21 * and/or other materials provided with the distribution. 
    22 * Neither the name of the <ORGANIZATION> nor the names of its contributors 
    23 * may be used to endorse or promote products derived from this software 
    24 * without specific prior written permission. 
    25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
    26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
    27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
    28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
    29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
    30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
    31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
    32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
    34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    35 * To get a strict ANSI C environment, define macro _STRICT_ANSI.  This will
    36 * "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
    37 * files aren't affected).
    38 * 
    39 *
    40 */
    41 
    42 
    43 
    44 
    45 
    46 
    47 #ifndef	_ANSIDECL_H_
    48 #define	_ANSIDECL_H_
    49 
    50 /** 
    51 Epoc32 STDLIB is an ANSI environment and expects an ANSI C compiler 
    52 MSVC is however an environment which doesn't define __STDC__, so
    53 we fix it up in here...
    54 */
    55 
    56 #ifndef __STDC__
    57 #define __STDC__	1
    58 #endif
    59 
    60 #define _STRICT_ANSI
    61 
    62 /**
    63 From GCC 2.5 onwards it is possible to tell the compiler that functions
    64 don't return, which would stop some warnings while building STDLIB
    65 */
    66 #if 0
    67 #define _ATTRIBUTE(attrs) __attribute__ (attrs)
    68 #else
    69 #define _ATTRIBUTE(attrs)
    70 #endif
    71 
    72 /*
    73 
    74 */
    75  
    76 #ifndef EXPORT_C
    77 /**
    78 It is needed to annotate the functions which will be exported from the ESTLIB DLL,
    79 but mustn't conflict with the definitions in <e32std.h>
    80 */
    81 #ifdef __VC32__
    82 #define IMPORT_C __declspec(dllexport)
    83 #define EXPORT_C __declspec(dllexport)
    84 #endif
    85 
    86 #ifdef __CW32__
    87 #define IMPORT_C __declspec(dllexport)
    88 #define EXPORT_C __declspec(dllexport)
    89 #endif
    90 
    91 #ifdef __GCC32__
    92 #define IMPORT_C
    93 #define EXPORT_C __declspec(dllexport)
    94 #endif
    95 
    96 #ifdef __SYMBIAN32__
    97 #ifdef __cplusplus
    98 #include <e32def.h>
    99 #endif
   100 #else
   101 #define IMPORT_C
   102 #define EXPORT_C
   103 #endif
   104 
   105 #endif /* EXPORT_C */
   106 #endif /* _ANSIDECL_H_ */