You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
hardware_samsung/exynos5/hal/include/malisw/mali_stdtypes.h

210 lines
5.7 KiB

/*
*
* (C) COPYRIGHT 2010-2011 ARM Limited. All rights reserved.
*
* This program is free software and is provided to you under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence.
*
* A copy of the licence is included with the program, and can also be obtained from Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
#ifndef _MALISW_STDTYPES_H_
#define _MALISW_STDTYPES_H_
/**
* @file mali_stdtypes.h
* This file defines the standard types used by the Mali codebase.
*/
/**
* @addtogroup malisw
* @{
*/
/**
* @defgroup malisw_stdtypes Mali software standard types
*
* Basic driver-wide types.
*/
/**
* @addtogroup malisw_stdtypes
* @{
*/
#include "arm_cstd/arm_cstd.h"
/**
* @name Scalar types.
* These are the scalar types used within the mali driver.
* @{
*/
/* Note: if compiling the Linux kernel then avoid redefining these. */
#if 0 == CSTD_OS_LINUX_KERNEL
typedef uint64_t u64;
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
typedef int64_t s64;
typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;
#endif
typedef double f64;
typedef float f32;
typedef u16 f16;
typedef u32 mali_fixed16_16;
/* @} */
/**
* @name Boolean types.
* The intended use is for bool8 to be used when storing boolean values in
* structures, casting to mali_bool to be used in code sections.
* @{
*/
typedef bool_t mali_bool;
typedef u8 mali_bool8;
#define MALI_FALSE FALSE
#define MALI_TRUE TRUE
/* @} */
/**
* @name Integer bounding values
* Maximum and minimum values for integer types
* @{
*/
#define U64_MAX UINT64_MAX
#define U32_MAX UINT32_MAX
#define U16_MAX UINT16_MAX
#define U8_MAX UINT8_MAX
#define S64_MAX INT64_MAX
#define S64_MIN INT64_MIN
#define S32_MAX INT32_MAX
#define S32_MIN INT32_MIN
#define S16_MAX INT16_MAX
#define S16_MIN INT16_MIN
#define S8_MAX INT8_MAX
#define S8_MIN INT8_MIN
/* @} */
/**
* @name GPU address types
* Types for integers which hold a GPU pointer or GPU pointer offsets.
* @{
*/
typedef u64 mali_addr64;
typedef u32 mali_addr32;
typedef u64 mali_size64;
typedef s64 mali_offset64;
/* 32 bit offsets and sizes are always for native types and so use ptrdiff_t and size_t respectively */
/* @} */
/**
* @name Mali error types
* @brief The common error type for the mali drivers
* The mali_error type, all driver error handling should be of this type unless
* it must deal with a specific APIs error type.
* @{
*/
typedef enum
{
/**
* @brief Common Mali errors for the entire driver
* MALI_ERROR_NONE is guaranteed to be 0.
* @{
*/
MALI_ERROR_NONE = 0,
MALI_ERROR_OUT_OF_GPU_MEMORY,
MALI_ERROR_OUT_OF_MEMORY,
MALI_ERROR_FUNCTION_FAILED,
/* @} */
/**
* @brief Mali errors for Client APIs to pass to EGL when creating EGLImages
* These errors must only be returned to EGL from one of the Client APIs as part of the
* (clientapi)_egl_image_interface.h
* @{
*/
MALI_ERROR_EGLP_BAD_ACCESS,
MALI_ERROR_EGLP_BAD_PARAMETER,
/* @} */
/**
* @brief Mali errors for the MCL module.
* These errors must only be used within the private components of the OpenCL implementation that report
* directly to API functions for cases where errors cannot be detected in the entrypoints file. They must
* not be passed between driver components.
* These are errors in the mali error space specifically for the MCL module, hence the MCLP prefix.
* @{
*/
MALI_ERROR_MCLP_DEVICE_NOT_FOUND,
MALI_ERROR_MCLP_DEVICE_NOT_AVAILABLE,
MALI_ERROR_MCLP_COMPILER_NOT_AVAILABLE,
MALI_ERROR_MCLP_MEM_OBJECT_ALLOCATION_FAILURE,
MALI_ERROR_MCLP_PROFILING_INFO_NOT_AVAILABLE,
MALI_ERROR_MCLP_MEM_COPY_OVERLAP,
MALI_ERROR_MCLP_IMAGE_FORMAT_MISMATCH,
MALI_ERROR_MCLP_IMAGE_FORMAT_NOT_SUPPORTED,
MALI_ERROR_MCLP_BUILD_PROGRAM_FAILURE,
MALI_ERROR_MCLP_MAP_FAILURE,
MALI_ERROR_MCLP_MISALIGNED_SUB_BUFFER_OFFSET,
MALI_ERROR_MCLP_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST,
MALI_ERROR_MCLP_INVALID_VALUE,
MALI_ERROR_MCLP_INVALID_DEVICE_TYPE,
MALI_ERROR_MCLP_INVALID_PLATFORM,
MALI_ERROR_MCLP_INVALID_DEVICE,
MALI_ERROR_MCLP_INVALID_CONTEXT,
MALI_ERROR_MCLP_INVALID_QUEUE_PROPERTIES,
MALI_ERROR_MCLP_INVALID_COMMAND_QUEUE,
MALI_ERROR_MCLP_INVALID_HOST_PTR,
MALI_ERROR_MCLP_INVALID_MEM_OBJECT,
MALI_ERROR_MCLP_INVALID_IMAGE_FORMAT_DESCRIPTOR,
MALI_ERROR_MCLP_INVALID_IMAGE_SIZE,
MALI_ERROR_MCLP_INVALID_SAMPLER,
MALI_ERROR_MCLP_INVALID_BINARY,
MALI_ERROR_MCLP_INVALID_BUILD_OPTIONS,
MALI_ERROR_MCLP_INVALID_PROGRAM,
MALI_ERROR_MCLP_INVALID_PROGRAM_EXECUTABLE,
MALI_ERROR_MCLP_INVALID_KERNEL_NAME,
MALI_ERROR_MCLP_INVALID_KERNEL_DEFINITION,
MALI_ERROR_MCLP_INVALID_KERNEL,
MALI_ERROR_MCLP_INVALID_ARG_INDEX,
MALI_ERROR_MCLP_INVALID_ARG_VALUE,
MALI_ERROR_MCLP_INVALID_ARG_SIZE,
MALI_ERROR_MCLP_INVALID_KERNEL_ARGS,
MALI_ERROR_MCLP_INVALID_WORK_DIMENSION,
MALI_ERROR_MCLP_INVALID_WORK_GROUP_SIZE,
MALI_ERROR_MCLP_INVALID_WORK_ITEM_SIZE,
MALI_ERROR_MCLP_INVALID_GLOBAL_OFFSET,
MALI_ERROR_MCLP_INVALID_EVENT_WAIT_LIST,
MALI_ERROR_MCLP_INVALID_EVENT,
MALI_ERROR_MCLP_INVALID_OPERATION,
MALI_ERROR_MCLP_INVALID_GL_OBJECT,
MALI_ERROR_MCLP_INVALID_BUFFER_SIZE,
MALI_ERROR_MCLP_INVALID_MIP_LEVEL,
MALI_ERROR_MCLP_INVALID_GLOBAL_WORK_SIZE,
/* @} */
/**
* @brief Mali errors for the BASE module
* These errors must only be used within the private components of the Base implementation. They will not
* passed to other modules by the base driver.
* These are errors in the mali error space specifically for the BASE module, hence the BASEP prefix.
* @{
*/
MALI_ERROR_BASEP_INVALID_FUNCTION
/* @} */
} mali_error;
/* @} */
/* @} */
/* @} */
#endif /* _MALISW_STDTYPES_H_ */