/*
 * ex: set ro:
 * DO NOT EDIT THIS FILE
 * Generated by Parrot::Configure::Compiler from config/gen/config_h/config_h.in
 */

/* Copyright (C) 2001-2011, Parrot Foundation.
 */

/* config.h
 *
 * Platform-specific config file
 *
 */

#ifndef PARROT_CONFIG_H_GUARD
#define PARROT_CONFIG_H_GUARD

/*
** ONLY PUT EMBEDDER-ACCESSIBLE SYMBOLS UP HERE!!!
** Other symbols may go below.
*/

#define PARROT_VERSION          "4.6.0"
#define PARROT_CONFIG_DATE      "Sat Jun 22 21:42:34 2013 GMT"
#define PARROT_MAJOR_VERSION    4
#define PARROT_MINOR_VERSION    6
#define PARROT_PATCH_VERSION    0
#define PARROT_ARCHNAME         "amd64-freebsd"
#define PARROT_SHARE_EXT        ".so"
#define PARROT_LOAD_EXT         ".so"
#define PARROT_OBJ_EXT          ".o"

typedef long                    Parrot_Int;
typedef unsigned long           Parrot_UInt;
typedef double                    Parrot_Float;
typedef long              Parrot_Opcode;
typedef void *                  Parrot_Pointer;

typedef signed char             Parrot_Int1;
typedef unsigned char           Parrot_UInt1;
typedef short                Parrot_Int2;
typedef unsigned short       Parrot_UInt2;
typedef int                Parrot_Int4;
typedef unsigned int       Parrot_UInt4;
#if 1
typedef long                Parrot_Int8;
typedef unsigned long       Parrot_UInt8;
#endif

typedef float              Parrot_Float4;
typedef double              Parrot_Float8;

/* Required for proper compilation of StructView PMC */
#define HAS_LONGLONG            1
#define HAS_INT64               1

#ifndef PARROT_INTVAL_MIN
#  define PARROT_INTVAL_MIN              LONG_MIN
#endif
#ifndef PARROT_INTVAL_MAX
#  define PARROT_INTVAL_MAX              LONG_MAX
#endif

#ifndef PARROT_FLOATVAL_MIN
#  define PARROT_FLOATVAL_MIN            DBL_MIN
#endif
#ifndef PARROT_FLOATVAL_MAX
#  define PARROT_FLOATVAL_MAX            DBL_MAX
#endif

/* Symbol export and import decoration. At the time of writing, note that
 * PARROT_IN_CORE won't always imply !PARROT_IN_EXTENSION. */
#if defined(PARROT_IN_EXTENSION)
#if defined(__cplusplus)
#  define PARROT_EXPORT extern "C" 
#  define PARROT_DATA extern "C" 
#  define PARROT_DYNEXT_EXPORT extern "C" __attribute__ ((visibility("default")))
#else
#  define PARROT_EXPORT 
#  define PARROT_DATA extern 
#  define PARROT_DYNEXT_EXPORT __attribute__ ((visibility("default")))
#endif
#else
#if defined(__cplusplus)
#  define PARROT_EXPORT extern "C" __attribute__ ((visibility("default")))
#  define PARROT_DATA extern "C" __attribute__ ((visibility("default")))
#else
#  define PARROT_EXPORT __attribute__ ((visibility("default")))
#  define PARROT_DATA extern __attribute__ ((visibility("default")))
#endif
#endif

#define PARROT_NOINLINE __attribute__ ((noinline))

/*
 * GC_DEFAULT_TYPE selection
 * MS  -- stop-the-world mark & sweep
 * INF -- infinite memory "collector"
 * MS2 -- new style mark & sweep
 * GMS -- Generational M&S based on MS2
 */
#ifndef PARROT_GC_DEFAULT_TYPE
#  define PARROT_GC_DEFAULT_TYPE GMS
#endif

#if defined(PARROT_IN_CORE)

/* Put any other symbols here. */

#include <stddef.h>

#define PARROT_CPU_ARCH         "amd64"
#define PARROT_BYTEORDER        0x12345678
#define PARROT_BIGENDIAN        0

#define PARROT_LITTLEENDIAN	!(PARROT_BIGENDIAN)

typedef Parrot_Int INTVAL;
typedef Parrot_UInt UINTVAL;
typedef Parrot_Float FLOATVAL;

typedef long long HUGEINTVAL;
typedef unsigned long long UHUGEINTVAL;
typedef long double HUGEFLOATVAL;

#define INTVAL_SIZE 8
#define NUMVAL_SIZE 8
#define OPCODE_T_SIZE 8
#define PTR_SIZE 8
#define SHORT_SIZE 2
#define INT_SIZE 4
#define LONG_SIZE 8
#if 1
#  define LONGLONG_SIZE 8
#endif
#define HUGEINTVAL_SIZE 8
#define DOUBLE_SIZE 8

typedef Parrot_Opcode opcode_t;
typedef unsigned long ptrcast_t;

typedef struct _vtable VTABLE;
typedef void DPOINTER;

/* Oplib and dynamic ops related. */
#define PARROT_CORE_OPLIB_NAME    "core_ops"
#define PARROT_CORE_OPLIB_INIT    Parrot_DynOp_core_4_6_0

#define  PARROT_GET_CORE_OPLIB(i)  PARROT_CORE_OPLIB_INIT((i), 1)

/* ICU. */
#define PARROT_HAS_ICU 1

/* Int and float formats. */
#define INTVAL_FMT "%ld"
#define FLOATVAL_FMT "%.15g"

#include "parrot/has_header.h"
#include "parrot/feature.h"

#endif

#endif /* PARROT_CONFIG_H_GUARD */

/*
 * Local variables:
 *   c-file-style: "parrot"
 * End:
 * vim: expandtab shiftwidth=4 cinoptions='\:2=2' :
 */

