OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-dev/] [fsf-gcc-snapshot-1-mar-12/] [or1k-gcc/] [libffi/] [include/] [ffi_common.h] - Diff between revs 732 and 783

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 732 Rev 783
/* -----------------------------------------------------------------------
/* -----------------------------------------------------------------------
   ffi_common.h - Copyright (c) 1996  Red Hat, Inc.
   ffi_common.h - Copyright (c) 1996  Red Hat, Inc.
   Copyright (C) 2007 Free Software Foundation, Inc
   Copyright (C) 2007 Free Software Foundation, Inc
 
 
   Common internal definitions and macros. Only necessary for building
   Common internal definitions and macros. Only necessary for building
   libffi.
   libffi.
   ----------------------------------------------------------------------- */
   ----------------------------------------------------------------------- */
 
 
#ifndef FFI_COMMON_H
#ifndef FFI_COMMON_H
#define FFI_COMMON_H
#define FFI_COMMON_H
 
 
#ifdef __cplusplus
#ifdef __cplusplus
extern "C" {
extern "C" {
#endif
#endif
 
 
#include <fficonfig.h>
#include <fficonfig.h>
 
 
/* Do not move this. Some versions of AIX are very picky about where
/* Do not move this. Some versions of AIX are very picky about where
   this is positioned. */
   this is positioned. */
#ifdef __GNUC__
#ifdef __GNUC__
/* mingw64 defines this already in malloc.h. */
/* mingw64 defines this already in malloc.h. */
#ifndef alloca
#ifndef alloca
# define alloca __builtin_alloca
# define alloca __builtin_alloca
#endif
#endif
# define MAYBE_UNUSED __attribute__((__unused__))
# define MAYBE_UNUSED __attribute__((__unused__))
#else
#else
# define MAYBE_UNUSED
# define MAYBE_UNUSED
# if HAVE_ALLOCA_H
# if HAVE_ALLOCA_H
#  include <alloca.h>
#  include <alloca.h>
# else
# else
#  ifdef _AIX
#  ifdef _AIX
 #pragma alloca
 #pragma alloca
#  else
#  else
#   ifndef alloca /* predefined by HP cc +Olibcalls */
#   ifndef alloca /* predefined by HP cc +Olibcalls */
#    ifdef _MSC_VER
#    ifdef _MSC_VER
#     define alloca _alloca
#     define alloca _alloca
#    else
#    else
char *alloca ();
char *alloca ();
#    endif
#    endif
#   endif
#   endif
#  endif
#  endif
# endif
# endif
#endif
#endif
 
 
/* Check for the existence of memcpy. */
/* Check for the existence of memcpy. */
#if STDC_HEADERS
#if STDC_HEADERS
# include <string.h>
# include <string.h>
#else
#else
# ifndef HAVE_MEMCPY
# ifndef HAVE_MEMCPY
#  define memcpy(d, s, n) bcopy ((s), (d), (n))
#  define memcpy(d, s, n) bcopy ((s), (d), (n))
# endif
# endif
#endif
#endif
 
 
#if defined(FFI_DEBUG)
#if defined(FFI_DEBUG)
#include <stdio.h>
#include <stdio.h>
#endif
#endif
 
 
#ifdef FFI_DEBUG
#ifdef FFI_DEBUG
void ffi_assert(char *expr, char *file, int line);
void ffi_assert(char *expr, char *file, int line);
void ffi_stop_here(void);
void ffi_stop_here(void);
void ffi_type_test(ffi_type *a, char *file, int line);
void ffi_type_test(ffi_type *a, char *file, int line);
 
 
#define FFI_ASSERT(x) ((x) ? (void)0 : ffi_assert(#x, __FILE__,__LINE__))
#define FFI_ASSERT(x) ((x) ? (void)0 : ffi_assert(#x, __FILE__,__LINE__))
#define FFI_ASSERT_AT(x, f, l) ((x) ? 0 : ffi_assert(#x, (f), (l)))
#define FFI_ASSERT_AT(x, f, l) ((x) ? 0 : ffi_assert(#x, (f), (l)))
#define FFI_ASSERT_VALID_TYPE(x) ffi_type_test (x, __FILE__, __LINE__)
#define FFI_ASSERT_VALID_TYPE(x) ffi_type_test (x, __FILE__, __LINE__)
#else
#else
#define FFI_ASSERT(x)
#define FFI_ASSERT(x)
#define FFI_ASSERT_AT(x, f, l)
#define FFI_ASSERT_AT(x, f, l)
#define FFI_ASSERT_VALID_TYPE(x)
#define FFI_ASSERT_VALID_TYPE(x)
#endif
#endif
 
 
#define ALIGN(v, a)  (((((size_t) (v))-1) | ((a)-1))+1)
#define ALIGN(v, a)  (((((size_t) (v))-1) | ((a)-1))+1)
#define ALIGN_DOWN(v, a) (((size_t) (v)) & -a)
#define ALIGN_DOWN(v, a) (((size_t) (v)) & -a)
 
 
/* Perform machine dependent cif processing */
/* Perform machine dependent cif processing */
ffi_status ffi_prep_cif_machdep(ffi_cif *cif);
ffi_status ffi_prep_cif_machdep(ffi_cif *cif);
 
 
/* Extended cif, used in callback from assembly routine */
/* Extended cif, used in callback from assembly routine */
typedef struct
typedef struct
{
{
  ffi_cif *cif;
  ffi_cif *cif;
  void *rvalue;
  void *rvalue;
  void **avalue;
  void **avalue;
} extended_cif;
} extended_cif;
 
 
/* Terse sized type definitions.  */
/* Terse sized type definitions.  */
#if defined(_MSC_VER) || defined(__sgi)
#if defined(_MSC_VER) || defined(__sgi)
typedef unsigned char UINT8;
typedef unsigned char UINT8;
typedef signed char   SINT8;
typedef signed char   SINT8;
typedef unsigned short UINT16;
typedef unsigned short UINT16;
typedef signed short   SINT16;
typedef signed short   SINT16;
typedef unsigned int UINT32;
typedef unsigned int UINT32;
typedef signed int   SINT32;
typedef signed int   SINT32;
# ifdef _MSC_VER
# ifdef _MSC_VER
typedef unsigned __int64 UINT64;
typedef unsigned __int64 UINT64;
typedef signed __int64   SINT64;
typedef signed __int64   SINT64;
# else
# else
# include <inttypes.h>
# include <inttypes.h>
typedef uint64_t UINT64;
typedef uint64_t UINT64;
typedef int64_t  SINT64;
typedef int64_t  SINT64;
# endif
# endif
#else
#else
typedef unsigned int UINT8  __attribute__((__mode__(__QI__)));
typedef unsigned int UINT8  __attribute__((__mode__(__QI__)));
typedef signed int   SINT8  __attribute__((__mode__(__QI__)));
typedef signed int   SINT8  __attribute__((__mode__(__QI__)));
typedef unsigned int UINT16 __attribute__((__mode__(__HI__)));
typedef unsigned int UINT16 __attribute__((__mode__(__HI__)));
typedef signed int   SINT16 __attribute__((__mode__(__HI__)));
typedef signed int   SINT16 __attribute__((__mode__(__HI__)));
typedef unsigned int UINT32 __attribute__((__mode__(__SI__)));
typedef unsigned int UINT32 __attribute__((__mode__(__SI__)));
typedef signed int   SINT32 __attribute__((__mode__(__SI__)));
typedef signed int   SINT32 __attribute__((__mode__(__SI__)));
typedef unsigned int UINT64 __attribute__((__mode__(__DI__)));
typedef unsigned int UINT64 __attribute__((__mode__(__DI__)));
typedef signed int   SINT64 __attribute__((__mode__(__DI__)));
typedef signed int   SINT64 __attribute__((__mode__(__DI__)));
#endif
#endif
 
 
typedef float FLOAT32;
typedef float FLOAT32;
 
 
 
 
#ifdef __cplusplus
#ifdef __cplusplus
}
}
#endif
#endif
 
 
#endif
#endif
 
 
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.