📄 img_types.h
字号:
/******************************************************************************
* Name : img_types.h
* Title : Global types for use by IMG APIs
* Author(s) : Imagination Technologies
* Created : 1st August 2003
*
* Copyright : 2003 by Imagination Technologies Limited.
* All rights reserved. No part of this software, either
* material or conceptual may be copied or distributed,
* transmitted, transcribed, stored in a retrieval system
* or translated into any human or computer language in any
* form by any means, electronic, mechanical, manual or
* other-wise, or disclosed to third parties without the
* express written permission of Imagination Technologies
* Limited, Unit 8, HomePark Industrial Estate,
* King's Langley, Hertfordshire, WD4 8LZ, U.K.
*
* Description : Defines type aliases for use by IMG APIs
*
* Platform : Generic
*
* Modifications:-
* $Log: img_types.h $
*
* --- Revision Logs Removed ---
*
* --- Revision Logs Removed ---
*
* --- Revision Logs Removed ---
*
* --- Revision Logs Removed ---
*
* --- Revision Logs Removed ---
*
*
******************************************************************************/
#if !defined(__IMG_TYPES_H__)
#define __IMG_TYPES_H__
typedef unsigned int IMG_UINT, *IMG_PUINT;
typedef signed int IMG_INT, *IMG_PINT;
typedef unsigned char IMG_UINT8, *IMG_PUINT8;
typedef unsigned char IMG_BYTE, *IMG_PBYTE;
typedef signed char IMG_INT8, *IMG_PINT8;
typedef char IMG_CHAR, *IMG_PCHAR;
typedef unsigned short IMG_UINT16, *IMG_PUINT16;
typedef signed short IMG_INT16, *IMG_PINT16;
typedef unsigned long IMG_UINT32, *IMG_PUINT32;
typedef signed long IMG_INT32, *IMG_PINT32;
#ifndef __KERNEL__
/* Linux kernel mode does not use floating point */
typedef float IMG_FLOAT, *IMG_PFLOAT;
#endif
typedef enum tag_img_bool
{
IMG_FALSE = 0,
IMG_TRUE = 1,
IMG_FORCE_ALIGN = 0x7FFFFFFF
} IMG_BOOL, *IMG_PBOOL;
typedef void IMG_VOID, *IMG_PVOID;
typedef IMG_INT32 IMG_RESULT;
typedef IMG_UINT32 IMG_UINTPTR_T;
typedef IMG_PVOID IMG_HANDLE;
typedef IMG_UINT32 IMG_SIZE_T;
#define IMG_NULL 0
/*
* Address types.
* All types used to refer to a block of memory are wrapped in structures
* to enforce some type degree of type safety. i.e. a IMG_DEV_VIRTADDR cannot
* be assigned to a variable of type IMG_DEV_PHYSADDR because they are not the
* same thing.
*
* There is an assumption that the system contains at most one non-cpu mmu,
* and a memory block is only mapped by the MMU once.
*
* Different devices could have offset views of the physical address space.
*
*/
/*
*
* +------------+ +------------+ +------------+ +------------+
* | CPU | | DEV | | DEV | | DEV |
* +------------+ +------------+ +------------+ +------------+
* | | | |
* | PVOID |IMG_DEV_VIRTADDR |IMG_DEV_VIRTADDR |
* | \-------------------/ |
* | | |
* +------------+ +------------+ |
* | MMU | | MMU | |
* +------------+ +------------+ |
* | | |
* | | |
* | | |
* +--------+ +---------+ +--------+
* | Offset | | (Offset)| | Offset |
* +--------+ +---------+ +--------+
* | | IMG_DEV_PHYADDR |
* | | |
* | | IMG_DEV_PHYADDR |
* +---------------------------------------------------------------------+
* | System Address bus |
* +---------------------------------------------------------------------+
*
*/
typedef IMG_PVOID IMG_CPU_VIRTADDR;
/* cpu physical address */
typedef struct {IMG_UINT32 uiAddr;} IMG_CPU_PHYADDR;
/* device virtual address */
typedef struct {IMG_UINT32 uiAddr;} IMG_DEV_VIRTADDR;
/* device physical address */
typedef struct {IMG_UINT32 uiAddr;} IMG_DEV_PHYADDR;
/* system physical address */
typedef struct {IMG_UINT32 uiAddr;} IMG_SYS_PHYADDR;
#endif /* __IMG_TYPES_H__ */
/*****************************************************************************
End of file (img_types.h)
*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -