Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /****************************************************************************
  2. *
  3. *                            Open Watcom Project
  4. *
  5. *    Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
  6. *
  7. *  ========================================================================
  8. *
  9. *    This file contains Original Code and/or Modifications of Original
  10. *    Code as defined in and that are subject to the Sybase Open Watcom
  11. *    Public License version 1.0 (the 'License'). You may not use this file
  12. *    except in compliance with the License. BY USING THIS FILE YOU AGREE TO
  13. *    ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
  14. *    provided with the Original Code and Modifications, and is also
  15. *    available at www.sybase.com/developer/opensource.
  16. *
  17. *    The Original Code and all software distributed under the License are
  18. *    distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  19. *    EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
  20. *    ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
  21. *    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
  22. *    NON-INFRINGEMENT. Please see the License for the specific language
  23. *    governing rights and limitations under the License.
  24. *
  25. *  ========================================================================
  26. *
  27. * Description:  Far pointer support typedefs.
  28. *
  29. ****************************************************************************/
  30.  
  31.  
  32. #ifndef _FARSUPP_H_INCLUDED
  33. #define _FARSUPP_H_INCLUDED
  34.  
  35. #include "variety.h"
  36. #include "widechar.h"
  37. #ifdef __LONG_LONG_SUPPORT__
  38.   #include "clibi64.h"
  39. #endif
  40.  
  41. /* Only support near/far pointers on 16-bit targets, extended DOS
  42.  * and Win386. Ideally we might want to test for non-flat memory model.
  43.  */
  44. #if defined( _M_I86 ) || defined( __DOS__ ) || defined( __WINDOWS__ )
  45.   #define __FAR_SUPPORT__
  46.   typedef CHAR_TYPE     _WCFAR *FAR_STRING;
  47.   typedef char          _WCFAR *FAR_ASCII_STRING;
  48.   typedef wchar_t       _WCFAR *FAR_UNI_STRING;
  49.   typedef int           _WCFAR *FAR_INT;
  50.   typedef signed char   _WCFAR *FAR_CHAR;
  51.   typedef short         _WCFAR *FAR_SHORT;
  52.   typedef long          _WCFAR *FAR_LONG;
  53.   typedef float         _WCFAR *FAR_FLOAT;
  54.   typedef double        _WCFAR *FAR_DOUBLE;
  55.   #ifdef __LONG_LONG_SUPPORT__
  56.     typedef UINT64_TYPE _WCFAR *FAR_INT64;
  57.   #endif
  58. #else
  59.   #undef __FAR_SUPPORT__
  60.   typedef CHAR_TYPE     *FAR_STRING;
  61.   typedef char          *FAR_ASCII_STRING;
  62.   typedef wchar_t       *FAR_UNI_STRING;
  63.   typedef int           *FAR_INT;
  64.   typedef signed char   *FAR_CHAR;
  65.   typedef short         *FAR_SHORT;
  66.   typedef long          *FAR_LONG;
  67.   typedef float         *FAR_FLOAT;
  68.   typedef double        *FAR_DOUBLE;
  69.   #ifdef __LONG_LONG_SUPPORT__
  70.     typedef UINT64_TYPE *FAR_INT64;
  71.   #endif
  72. #endif
  73.  
  74. #endif
  75.