blob: d5408cf9c9f3cd952497b844f9f8e1cb9f627990 [file] [log] [blame]
/**********************************************************************
*
* Copyright (C) Imagination Technologies Ltd. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful but, except
* as otherwise stated in writing, without any warranty; without even the
* implied warranty of merchantability or fitness for a particular purpose.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*
* The full GNU General Public License is included in this distribution in
* the file called "COPYING".
*
* Contact Information:
* Imagination Technologies Ltd. <gpl-support@imgtec.com>
* Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
*
*******************************************************************************/
#if !defined (__IMG_DEFS_H__)
#define __IMG_DEFS_H__
#include "img_types.h"
typedef enum img_tag_TriStateSwitch
{
IMG_ON = 0x00,
IMG_OFF,
IMG_IGNORE
} img_TriStateSwitch, * img_pTriStateSwitch;
#define IMG_SUCCESS 0
#define IMG_NO_REG 1
#if defined (NO_INLINE_FUNCS)
#define INLINE
#define FORCE_INLINE
#else
#if defined (__cplusplus)
#define INLINE inline
#define FORCE_INLINE inline
#else
#if !defined(INLINE)
#define INLINE __inline
#endif
#define FORCE_INLINE static __inline
#endif
#endif
/* Use this in any file, or use attributes under GCC - see below */
#ifndef PVR_UNREFERENCED_PARAMETER
#define PVR_UNREFERENCED_PARAMETER(param) (param) = (param)
#endif
/* The best way to supress unused parameter warnings using GCC is to use a
* variable attribute. Place the unref__ between the type and name of an
* unused parameter in a function parameter list, eg `int unref__ var'. This
* should only be used in GCC build environments, for example, in files that
* compile only on Linux. Other files should use UNREFERENCED_PARAMETER */
#ifdef __GNUC__
#define unref__ __attribute__ ((unused))
#else
#define unref__
#endif
/*
Wide character definitions
*/
#ifndef _TCHAR_DEFINED
#if defined(UNICODE)
typedef unsigned short TCHAR, *PTCHAR, *PTSTR;
#else /* #if defined(UNICODE) */
typedef char TCHAR, *PTCHAR, *PTSTR;
#endif /* #if defined(UNICODE) */
#define _TCHAR_DEFINED
#endif /* #ifndef _TCHAR_DEFINED */
#if defined(__linux__) || defined(__METAG)
#define IMG_CALLCONV
#define IMG_INTERNAL __attribute__((visibility("hidden")))
#define IMG_EXPORT __attribute__((visibility("default")))
#define IMG_IMPORT
#define IMG_RESTRICT __restrict__
#else
#error("define an OS")
#endif
// Use default definition if not overridden
#ifndef IMG_ABORT
#define IMG_ABORT() abort()
#endif
#ifndef IMG_MALLOC
#define IMG_MALLOC(A) malloc (A)
#endif
#ifndef IMG_FREE
#define IMG_FREE(A) free (A)
#endif
#define IMG_CONST const
#if defined(__GNUC__)
#define IMG_FORMAT_PRINTF(x,y) __attribute__((format(printf,x,y)))
#else
#define IMG_FORMAT_PRINTF(x,y)
#endif
/*
* Cleanup request defines
*/
#define CLEANUP_WITH_POLL IMG_FALSE
#define FORCE_CLEANUP IMG_TRUE
#if defined (_WIN64)
#define IMG_UNDEF (~0ULL)
#else
#define IMG_UNDEF (~0UL)
#endif
#endif /* #if !defined (__IMG_DEFS_H__) */
/*****************************************************************************
End of file (IMG_DEFS.H)
*****************************************************************************/