]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - tools/quake3/common/mutex.c
fix invalid use of <glib/...> headers
[xonotic/netradiant.git] / tools / quake3 / common / mutex.c
index bd699bf9bd4f5802c35a60eed2e0bfdc583a7cff..d128a03145a822c5ceb598d10e2233ad2c26020b 100644 (file)
-/*\r
-Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
-For a list of contributors, see the accompanying CONTRIBUTORS file.\r
-\r
-This file is part of GtkRadiant.\r
-\r
-GtkRadiant is free software; you can redistribute it and/or modify\r
-it under the terms of the GNU General Public License as published by\r
-the Free Software Foundation; either version 2 of the License, or\r
-(at your option) any later version.\r
-\r
-GtkRadiant is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-GNU General Public License for more details.\r
-\r
-You should have received a copy of the GNU General Public License\r
-along with GtkRadiant; if not, write to the Free Software\r
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
-*/\r
-\r
-\r
-#include "cmdlib.h"\r
-#include "qthreads.h"\r
-#include "mutex.h"\r
-\r
-/*\r
-===================================================================\r
-\r
-WIN32\r
-\r
-===================================================================\r
-*/\r
-#ifdef _WIN32\r
-\r
-#define        USED\r
-\r
-#include <windows.h>\r
-\r
-void MutexLock (mutex_t *m)\r
-{\r
-       CRITICAL_SECTION *crit;\r
-\r
-       if (!m)\r
-               return;\r
-       crit = (CRITICAL_SECTION *) m;\r
-       EnterCriticalSection (crit);\r
-}\r
-\r
-void MutexUnlock (mutex_t *m)\r
-{\r
-       CRITICAL_SECTION *crit;\r
-\r
-       if (!m)\r
-               return;\r
-       crit = (CRITICAL_SECTION *) m;\r
-       LeaveCriticalSection (crit);\r
-}\r
-\r
-mutex_t *MutexAlloc(void)\r
-{\r
-       CRITICAL_SECTION *crit;\r
-\r
-       if (numthreads == 1)\r
-               return NULL;\r
-       crit = (CRITICAL_SECTION *) safe_malloc(sizeof(CRITICAL_SECTION));\r
-       InitializeCriticalSection (crit);\r
-       return (void *) crit;\r
-}\r
-\r
-#endif\r
-\r
-/*\r
-===================================================================\r
-\r
-OSF1\r
-\r
-===================================================================\r
-*/\r
-\r
-#ifdef __osf__\r
-#define        USED\r
-\r
-#include <pthread.h>\r
-\r
-void MutexLock (mutex_t *m)\r
-{\r
-       pthread_mutex_t *my_mutex;\r
-\r
-       if (!m)\r
-               return;\r
-       my_mutex = (pthread_mutex_t *) m;\r
-       pthread_mutex_lock (my_mutex);\r
-}\r
-\r
-void MutexUnlock (mutex_t *m)\r
-{\r
-       pthread_mutex_t *my_mutex;\r
-\r
-       if (!m)\r
-               return;\r
-       my_mutex = (pthread_mutex_t *) m;\r
-       pthread_mutex_unlock (my_mutex);\r
-}\r
-\r
-mutex_t *MutexAlloc(void)\r
-{\r
-       pthread_mutex_t *my_mutex;\r
-       pthread_mutexattr_t     mattrib;\r
-\r
-       if (numthreads == 1)\r
-               return NULL;\r
-       my_mutex = safe_malloc (sizeof(*my_mutex));\r
-       if (pthread_mutexattr_create (&mattrib) == -1)\r
-               Error ("pthread_mutex_attr_create failed");\r
-       if (pthread_mutexattr_setkind_np (&mattrib, MUTEX_FAST_NP) == -1)\r
-               Error ("pthread_mutexattr_setkind_np failed");\r
-       if (pthread_mutex_init (my_mutex, mattrib) == -1)\r
-               Error ("pthread_mutex_init failed");\r
-       return (void *) my_mutex;\r
-}\r
-\r
-#endif\r
-\r
-/*\r
-===================================================================\r
-\r
-IRIX\r
-\r
-===================================================================\r
-*/\r
-\r
-#ifdef _MIPS_ISA \r
-#define        USED\r
-\r
-#include <task.h>\r
-#include <abi_mutex.h>\r
-#include <sys/types.h>\r
-#include <sys/prctl.h>\r
-\r
-void MutexLock (mutex_t *m)\r
-{\r
-       abilock_t *lck;\r
-\r
-       if (!m)\r
-               return;\r
-       lck = (abilock_t *) m;\r
-       spin_lock (lck);\r
-}\r
-\r
-void MutexUnlock (mutex_t *m)\r
-{\r
-       abilock_t *lck;\r
-\r
-       if (!m)\r
-               return;\r
-       lck = (abilock_t *) m;\r
-       release_lock (lck);\r
-}\r
-\r
-mutex_t *MutexAlloc(void)\r
-{\r
-       abilock_t *lck;\r
-\r
-       if (numthreads == 1)\r
-               return NULL;\r
-       lck = (abilock_t *) safe_malloc(sizeof(abilock_t));\r
-       init_lock (lck);\r
-       return (void *) lck;\r
-}\r
-\r
-#endif\r
-\r
-/*\r
-=======================================================================\r
-\r
-  SINGLE THREAD\r
-\r
-=======================================================================\r
-*/\r
-\r
-#ifndef USED\r
-\r
-void MutexLock (mutex_t *m)\r
-{\r
-}\r
-\r
-void MutexUnlock (mutex_t *m)\r
-{\r
-}\r
-\r
-mutex_t *MutexAlloc(void)\r
-{\r
-       return NULL;\r
-}\r
-\r
-#endif\r
+/*
+   Copyright (C) 1999-2006 Id Software, Inc. and contributors.
+   For a list of contributors, see the accompanying CONTRIBUTORS file.
+
+   This file is part of GtkRadiant.
+
+   GtkRadiant is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   GtkRadiant 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GtkRadiant; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+
+#include "cmdlib.h"
+#include "qthreads.h"
+#include "mutex.h"
+
+/*
+   ===================================================================
+
+   WIN32
+
+   ===================================================================
+ */
+#ifdef WIN32
+
+#define USED
+
+#include <windows.h>
+
+void MutexLock( mutex_t *m ){
+       CRITICAL_SECTION *crit;
+
+       if ( !m ) {
+               return;
+       }
+       crit = (CRITICAL_SECTION *) m;
+       EnterCriticalSection( crit );
+}
+
+void MutexUnlock( mutex_t *m ){
+       CRITICAL_SECTION *crit;
+
+       if ( !m ) {
+               return;
+       }
+       crit = (CRITICAL_SECTION *) m;
+       LeaveCriticalSection( crit );
+}
+
+mutex_t *MutexAlloc( void ){
+       CRITICAL_SECTION *crit;
+
+       if ( numthreads == 1 ) {
+               return NULL;
+       }
+       crit = (CRITICAL_SECTION *) safe_malloc( sizeof( CRITICAL_SECTION ) );
+       InitializeCriticalSection( crit );
+       return (void *) crit;
+}
+
+#endif
+
+/*
+   ===================================================================
+
+   OSF1
+
+   ===================================================================
+ */
+
+#ifdef __osf__
+#define USED
+
+#include <pthread.h>
+
+void MutexLock( mutex_t *m ){
+       pthread_mutex_t *my_mutex;
+
+       if ( !m ) {
+               return;
+       }
+       my_mutex = (pthread_mutex_t *) m;
+       pthread_mutex_lock( my_mutex );
+}
+
+void MutexUnlock( mutex_t *m ){
+       pthread_mutex_t *my_mutex;
+
+       if ( !m ) {
+               return;
+       }
+       my_mutex = (pthread_mutex_t *) m;
+       pthread_mutex_unlock( my_mutex );
+}
+
+mutex_t *MutexAlloc( void ){
+       pthread_mutex_t *my_mutex;
+       pthread_mutexattr_t mattrib;
+
+       if ( numthreads == 1 ) {
+               return NULL;
+       }
+       my_mutex = safe_malloc( sizeof( *my_mutex ) );
+       if ( pthread_mutexattr_create( &mattrib ) == -1 ) {
+               Error( "pthread_mutex_attr_create failed" );
+       }
+       if ( pthread_mutexattr_setkind_np( &mattrib, MUTEX_FAST_NP ) == -1 ) {
+               Error( "pthread_mutexattr_setkind_np failed" );
+       }
+       if ( pthread_mutex_init( my_mutex, mattrib ) == -1 ) {
+               Error( "pthread_mutex_init failed" );
+       }
+       return (void *) my_mutex;
+}
+
+#endif
+
+/*
+   ===================================================================
+
+   IRIX
+
+   ===================================================================
+ */
+
+#ifdef _MIPS_ISA
+#define USED
+
+#include <task.h>
+#include <abi_mutex.h>
+#include <sys/types.h>
+#include <sys/prctl.h>
+
+void MutexLock( mutex_t *m ){
+       abilock_t *lck;
+
+       if ( !m ) {
+               return;
+       }
+       lck = (abilock_t *) m;
+       spin_lock( lck );
+}
+
+void MutexUnlock( mutex_t *m ){
+       abilock_t *lck;
+
+       if ( !m ) {
+               return;
+       }
+       lck = (abilock_t *) m;
+       release_lock( lck );
+}
+
+mutex_t *MutexAlloc( void ){
+       abilock_t *lck;
+
+       if ( numthreads == 1 ) {
+               return NULL;
+       }
+       lck = (abilock_t *) safe_malloc( sizeof( abilock_t ) );
+       init_lock( lck );
+       return (void *) lck;
+}
+
+#endif
+
+/*
+   =======================================================================
+
+   SINGLE THREAD
+
+   =======================================================================
+ */
+
+#ifndef USED
+
+void MutexLock( mutex_t *m ){
+}
+
+void MutexUnlock( mutex_t *m ){
+}
+
+mutex_t *MutexAlloc( void ){
+       return NULL;
+}
+
+#endif