// Rowley C Compiler, runtime support.
//
// Copyright (c) 2001-2012 Rowley Associates Limited.
//
// This file may be distributed under the terms of the License Agreement
// provided with this software.
//
// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

#ifndef __crossworks_H
#define __crossworks_H

#if defined(__CROSSWORKS)
#define __SIZE_T unsigned
#define __PTRDIFF_T int
#define __WCHAR_T unsigned short
typedef unsigned char *__va_list;
#pragma intrinsic(__va_base)
#elif defined(__CROSSWORKS_ARM)
#ifdef __ARM_EABI__
#define __SIZE_T unsigned
#else
#define __SIZE_T unsigned long
#endif
#define __PTRDIFF_T int
typedef __builtin_va_list __va_list;
#define __WCHAR_T unsigned short
#endif

// Harvard machines need code-space access.
#ifndef __CODE
#if defined(__CROSSWORKS_AVR) || defined(__CROSSWORKS_MAXQ) || defined(__CROSSWORKS_MAXQ30)
#define __CODE __code
#else
#define __CODE
#endif
#endif

#endif