Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5496 leency 1
/*******************************************************************
2
 *
3
 *  ttmutex.h                                                1.0
4
 *
5
 *    Mutual exclusion object / dummy generic interface.
6
 *
7
 *  Copyright 1996-1999 by
8
 *  David Turner, Robert Wilhelm, and Werner Lemberg.
9
 *
10
 *  This file is part of the FreeType project, and may only be used
11
 *  modified and distributed under the terms of the FreeType project
12
 *  license, LICENSE.TXT.  By continuing to use, modify, or distribute
13
 *  this file you indicate that you have read the license and
14
 *  understand and accept it fully.
15
 *
16
 *  Note:  This file provides a generic interface.  The implementation
17
 *         to compile depends on your system and the type of
18
 *         library you want to build (either singly-threaded,
19
 *         thread-safe or re-entrant).
20
 *
21
 *         Please read the technical documentation for more details.
22
 *
23
 ******************************************************************/
24
 
25
#ifndef TTMUTEX_H
26
#define TTMUTEX_H
27
 
28
#include "ttconfig.h"
29
 
30
 
31
  typedef  void*  TMutex;  /* typeless reference to a mutex */
32
 
33
#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* thread-safe and re-entrant builds */
34
 
35
#define MUTEX_Create( mutex )   TT_Mutex_Create ( &(mutex) )
36
#define MUTEX_Destroy( mutex )  TT_Mutex_Delete ( &(mutex) )
37
#define MUTEX_Lock( mutex )     TT_Mutex_Lock   ( &(mutex) )
38
#define MUTEX_Release( mutex )  TT_Mutex_Release( &(mutex) )
39
 
40
  LOCAL_DEF void  TT_Mutex_Create ( TMutex*  mutex ); /* Create a new mutex */
41
  LOCAL_DEF void  TT_Mutex_Delete ( TMutex*  mutex ); /* Delete a mutex     */
42
  LOCAL_DEF void  TT_Mutex_Lock   ( TMutex*  mutex ); /* Lock a mutex.      */
43
  LOCAL_DEF void  TT_Mutex_Release( TMutex*  mutex ); /* Release a mutex    */
44
 
45
#else  /* for the single-thread build */
46
 
47
#define MUTEX_Create( mutex )   /* nothing */
48
#define MUTEX_Destroy( mutex )  /* nothing */
49
#define MUTEX_Lock( mutex )     /* nothing */
50
#define MUTEX_Release( mutex )  /* nothing */
51
 
52
  /* No code will be generated for mutex operations */
53
 
54
#endif /* TT_CONFIG_OPTION_THREAD_SAFE */
55
 
56
#endif /* TTMUTEX_H */
57
 
58
 
59
/* END */