1 /* 2 (c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org) 3 (c) Copyright 2000-2004 Convergence (integrated media) GmbH 4 5 All rights reserved. 6 7 Written by Denis Oliver Kropp <dok@directfb.org>, 8 Andreas Hundt <andi@fischlustig.de>, 9 Sven Neumann <neo@directfb.org>, 10 Ville Syrjälä <syrjala@sci.fi> and 11 Claudio Ciccani <klan@users.sf.net>. 12 13 This library is free software; you can redistribute it and/or 14 modify it under the terms of the GNU Lesser General Public 15 License as published by the Free Software Foundation; either 16 version 2 of the License, or (at your option) any later version. 17 18 This library is distributed in the hope that it will be useful, 19 but WITHOUT ANY WARRANTY; without even the implied warranty of 20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21 Lesser General Public License for more details. 22 23 You should have received a copy of the GNU Lesser General Public 24 License along with this library; if not, write to the 25 Free Software Foundation, Inc., 59 Temple Place - Suite 330, 26 Boston, MA 02111-1307, USA. 27 */ 28 29 #ifndef __FUSION__TYPES_H__ 30 #define __FUSION__TYPES_H__ 31 32 #include <fusion/build.h> 33 34 #include <direct/types.h> 35 36 #if FUSION_BUILD_MULTI && FUSION_BUILD_KERNEL 37 38 #include <linux/fusion.h> 39 40 #define FUSION_API_MAJOR_REQUIRED 8 41 #define FUSION_API_MINOR_REQUIRED 8 42 43 #if FUSION_API_MAJOR_REQUIRED > FUSION_API_MAJOR_PROVIDED 44 #error Major version of Fusion Kernel Module too low! Upgrade your kernel. 45 #else 46 #if FUSION_API_MAJOR_REQUIRED == FUSION_API_MAJOR_PROVIDED 47 #if FUSION_API_MINOR_REQUIRED > FUSION_API_MINOR_PROVIDED 48 #error Minor version of Fusion Kernel Module too low! Upgrade your kernel. 49 #endif 50 #endif 51 #endif 52 53 54 #if FUSION_API_MAJOR_PROVIDED == 8 && FUSION_API_MINOR_PROVIDED == 8 && FUSION_API_MICRO_PROVIDED == 0 55 #define FCEF_QUEUE (0) 56 #endif 57 58 59 #else 60 typedef unsigned long FusionID; 61 62 #define FUSION_ID_MASTER 1L 63 64 typedef enum { 65 FCEF_NONE = 0x00000000, 66 FCEF_ONEWAY = 0x00000001, 67 FCEF_QUEUE = 0x00000002, 68 FCEF_ALL = 0x00000003 69 } FusionCallExecFlags; 70 71 #endif 72 73 #define FCEF_NODIRECT 0x80000000 74 75 #include <direct/types.h> 76 77 78 typedef struct __Fusion_FusionConfig FusionConfig; 79 80 typedef struct __Fusion_FusionArena FusionArena; 81 typedef struct __Fusion_FusionReactor FusionReactor; 82 typedef struct __Fusion_FusionWorld FusionWorld; 83 typedef struct __Fusion_FusionWorldShared FusionWorldShared; 84 85 typedef struct __Fusion_FusionObject FusionObject; 86 typedef struct __Fusion_FusionObjectPool FusionObjectPool; 87 88 typedef struct __Fusion_FusionSHM FusionSHM; 89 typedef struct __Fusion_FusionSHMShared FusionSHMShared; 90 91 typedef struct __Fusion_FusionSHMPool FusionSHMPool; 92 typedef struct __Fusion_FusionSHMPoolShared FusionSHMPoolShared; 93 typedef struct __Fusion_FusionHash FusionHash; 94 95 #endif 96 97