From 7fe60435bce6595a9c58a9bfd8244d74b5320e96 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Tue, 15 Jan 2013 08:46:13 +0100 Subject: Import DirectFB141_2k11R3_beta5 --- Source/DirectFB/lib/direct/types.h | 169 +++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100755 Source/DirectFB/lib/direct/types.h (limited to 'Source/DirectFB/lib/direct/types.h') diff --git a/Source/DirectFB/lib/direct/types.h b/Source/DirectFB/lib/direct/types.h new file mode 100755 index 0000000..2677e00 --- /dev/null +++ b/Source/DirectFB/lib/direct/types.h @@ -0,0 +1,169 @@ +/* + (c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org) + (c) Copyright 2000-2004 Convergence (integrated media) GmbH + + All rights reserved. + + Written by Denis Oliver Kropp , + Andreas Hundt , + Sven Neumann , + Ville Syrjälä and + Claudio Ciccani . + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +#ifndef __DIRECT__TYPES_H__ +#define __DIRECT__TYPES_H__ + +#include + +/* + * Define the bool type by including stdbool.h (preferably)... + */ +#if DIRECT_BUILD_STDBOOL +# include +/* + * ...or defining it ourself, if not using C++ or another definition + */ +#elif !defined(__cplusplus) && !defined(__bool_true_false_are_defined) +# warning Fallback definition of bool using u8! Checking for 'flags & 0x100' or higher bits will be false :( + typedef u8 bool; +# ifndef false +# define false (0) +# endif +# ifndef true +# define true (!false) +# endif +#endif /* DIRECT_BUILD_STDBOOL */ + + +#ifdef USE_KOS + +#include + +typedef uint8 u8; +typedef uint16 u16; +typedef uint32 u32; +typedef uint64 u64; + +typedef sint8 s8; +typedef sint16 s16; +typedef sint32 s32; +typedef sint64 s64; + +#else + +#include + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; + +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef int64_t s64; + +#endif + + +typedef enum { + DR_OK = 0x00000000, /* No error occured. */ + DR_FAILURE, /* A general or unknown error occured. */ + DR_INIT, /* A general initialization error occured. */ + DR_BUG, /* Internal bug or inconsistency has been detected. */ + DR_DEAD, /* Interface has a zero reference counter (available in debug mode). */ + DR_UNSUPPORTED, /* The requested operation or an argument is (currently) not supported. */ + DR_UNIMPLEMENTED, /* The requested operation is not implemented, yet. */ + DR_ACCESSDENIED, /* Access to the resource is denied. */ + DR_INVAREA, /* An invalid area has been specified or detected. */ + DR_INVARG, /* An invalid argument has been specified. */ + DR_NOLOCALMEMORY, /* There's not enough local system memory. */ + DR_NOSHAREDMEMORY, /* There's not enough shared system memory. */ + DR_LOCKED, /* The resource is (already) locked. */ + DR_BUFFEREMPTY, /* The buffer is empty. */ + DR_FILENOTFOUND, /* The specified file has not been found. */ + DR_IO, /* A general I/O error occured. */ + DR_BUSY, /* The resource or device is busy. */ + DR_NOIMPL, /* No implementation for this interface or content type has been found. */ + DR_TIMEOUT, /* The operation timed out. */ + DR_THIZNULL, /* 'thiz' pointer is NULL. */ + DR_IDNOTFOUND, /* No resource has been found by the specified id. */ + DR_DESTROYED, /* The requested object has been destroyed. */ + DR_FUSION, /* Internal fusion error detected, most likely related to IPC resources. */ + DR_BUFFERTOOLARGE, /* Buffer is too large. */ + DR_INTERRUPTED, /* The operation has been interrupted. */ + DR_NOCONTEXT, /* No context available. */ + DR_TEMPUNAVAIL, /* Temporarily unavailable. */ + DR_LIMITEXCEEDED, /* Attempted to exceed limit, i.e. any kind of maximum size, count etc. */ + DR_NOSUCHMETHOD, /* Requested method is not known. */ + DR_NOSUCHINSTANCE, /* Requested instance is not known. */ + DR_ITEMNOTFOUND, /* No such item found. */ + DR_VERSIONMISMATCH, /* Some versions didn't match. */ + DR_EOF, /* Reached end of file. */ + DR_SUSPENDED, /* The requested object is suspended. */ + DR_INCOMPLETE, /* The operation has been executed, but not completely. */ + DR_NOCORE /* Core part not available. */ +} DirectResult; + +/* + * Generate result code base for API 'A','B','C', e.g. 'D','F','B'. + */ +#define D_RESULT_TYPE_BASE( a,b,c ) ((((unsigned)(a)&0x7f) * 0x02000000) + \ + (((unsigned)(b)&0x7f) * 0x00040000) + \ + (((unsigned)(c)&0x7f) * 0x00000800)) + +/* + * Generate result code maximum for API 'A','B','C', e.g. 'D','F','B'. + */ +#define D_RESULT_TYPE_MAX( a,b,c ) (D_RESULT_TYPE_BASE(a,b,c) + 0x7ff) + +/* + * Check if given result code belongs to API 'A','B','C', e.g. 'D','F','B'. + */ +#define D_RESULT_TYPE_IS( code,a,b,c ) ((code) >= D_RESULT_TYPE_BASE(a,b,c) && (code) <= D_RESULT_TYPE_MAX(a,b,c)) + + +/* + * Return value of enumeration callbacks + */ +typedef enum { + DENUM_OK = 0x00000000, /* Proceed with enumeration */ + DENUM_CANCEL = 0x00000001 /* Cancel enumeration */ +} DirectEnumerationResult; + + +typedef u32 unichar; + +typedef struct __D_DirectCleanupHandler DirectCleanupHandler; +typedef struct __D_DirectConfig DirectConfig; +typedef struct __D_DirectHash DirectHash; +typedef struct __D_DirectLink DirectLink; +typedef struct __D_DirectLog DirectLog; +typedef struct __D_DirectModuleDir DirectModuleDir; +typedef struct __D_DirectModuleEntry DirectModuleEntry; +typedef struct __D_DirectSerial DirectSerial; +typedef struct __D_DirectSignalHandler DirectSignalHandler; +typedef struct __D_DirectStream DirectStream; +typedef struct __D_DirectTraceBuffer DirectTraceBuffer; +typedef struct __D_DirectTree DirectTree; +typedef struct __D_DirectThread DirectThread; +typedef struct __D_DirectThreadInitHandler DirectThreadInitHandler; + +#endif + -- cgit