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/systems/osx/osx.c | 263 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100755 Source/DirectFB/systems/osx/osx.c (limited to 'Source/DirectFB/systems/osx/osx.c') diff --git a/Source/DirectFB/systems/osx/osx.c b/Source/DirectFB/systems/osx/osx.c new file mode 100755 index 0000000..e051fb8 --- /dev/null +++ b/Source/DirectFB/systems/osx/osx.c @@ -0,0 +1,263 @@ +/* + (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. +*/ + +#include + +#include +#include +#include + +#include + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include + +#include "osx.h" +#include "primary.h" + +#include + +DFB_CORE_SYSTEM( osx ) + + +DFBOSX *dfb_osx = NULL; +CoreDFB *dfb_osx_core = NULL; + + +static void +system_get_info( CoreSystemInfo *info ) +{ + info->type = CORE_OSX; + + snprintf( info->name, DFB_CORE_SYSTEM_INFO_NAME_LENGTH, "OSX" ); +} + +static DFBResult +system_initialize( CoreDFB *core, void **data ) +{ + char *driver; + CoreScreen *screen; + + D_ASSERT( dfb_osx == NULL ); + + dfb_osx = (DFBOSX*) SHCALLOC( dfb_core_shmpool(dfb_osx_core), 1, sizeof(DFBOSX) ); + if (!dfb_osx) { + D_ERROR( "DirectFB/OSX: Couldn't allocate shared memory!\n" ); + return D_OOSHM(); + } + + dfb_osx_core = core; + + /* Initialize OSX */ + fusion_skirmish_init( &dfb_osx->lock, "OSX System", dfb_core_world(core) ); + + fusion_call_init( &dfb_osx->call, dfb_osx_call_handler, NULL, dfb_core_world(core) ); + + screen = dfb_screens_register( NULL, NULL, &osxPrimaryScreenFuncs ); + + dfb_layers_register( screen, NULL, &osxPrimaryLayerFuncs ); + + fusion_arena_add_shared_field( dfb_core_arena( core ), "OSX", dfb_osx ); + + *data = dfb_osx; + + return DFB_OK; +} + +static DFBResult +system_join( CoreDFB *core, void **data ) +{ + void *ret; + CoreScreen *screen; + + D_ASSERT( dfb_osx == NULL ); + + fusion_arena_get_shared_field( dfb_core_arena( core ), "OSX", &ret ); + + dfb_osx = ret; + dfb_osx_core = core; + + screen = dfb_screens_register( NULL, NULL, &osxPrimaryScreenFuncs ); + + dfb_layers_register( screen, NULL, &osxPrimaryLayerFuncs ); + + *data = dfb_osx; + + return DFB_OK; +} + +static DFBResult +system_shutdown( bool emergency ) +{ + D_ASSERT( dfb_osx != NULL ); + + fusion_call_destroy( &dfb_osx->call ); + + fusion_skirmish_prevail( &dfb_osx->lock ); + + fusion_skirmish_destroy( &dfb_osx->lock ); + + SHFREE( dfb_core_shmpool(dfb_osx_core), dfb_osx ); + dfb_osx = NULL; + dfb_osx_core = NULL; + + return DFB_OK; +} + +static DFBResult +system_leave( bool emergency ) +{ + D_ASSERT( dfb_osx != NULL ); + + dfb_osx = NULL; + dfb_osx_core = NULL; + + return DFB_OK; +} + +static DFBResult +system_suspend( void ) +{ + return DFB_UNIMPLEMENTED; +} + +static DFBResult +system_resume( void ) +{ + return DFB_UNIMPLEMENTED; +} + +static volatile void * +system_map_mmio( unsigned int offset, + int length ) +{ + return NULL; +} + +static void +system_unmap_mmio( volatile void *addr, + int length ) +{ +} + +static int +system_get_accelerator( void ) +{ + return -1; +} + +static VideoMode * +system_get_modes( void ) +{ + return NULL; +} + +static VideoMode * +system_get_current_mode( void ) +{ + return NULL; +} + +static DFBResult +system_thread_init( void ) +{ + return DFB_OK; +} + +static bool +system_input_filter( CoreInputDevice *device, + DFBInputEvent *event ) +{ + return false; +} + +static unsigned long +system_video_memory_physical( unsigned int offset ) +{ + return 0; +} + +static void * +system_video_memory_virtual( unsigned int offset ) +{ + return NULL; +} + +static unsigned int +system_videoram_length( void ) +{ + return 0; +} + +static unsigned long +system_aux_memory_physical( unsigned int offset ) +{ + return 0; +} + +static void * +system_aux_memory_virtual( unsigned int offset ) +{ + return NULL; +} + +static unsigned int +system_auxram_length( void ) +{ + return 0; +} + +static void +system_get_busid( int *ret_bus, int *ret_dev, int *ret_func ) +{ + return; +} + +static void +system_get_deviceid( unsigned int *ret_vendor_id, + unsigned int *ret_device_id ) +{ + return; +} + -- cgit