source: trunk/src/kernel32/hmmutex.cpp@ 2802

Last change on this file since 2802 was 2802, checked in by sandervl, 26 years ago

Added new logging feature

File size: 4.5 KB
Line 
1/* $Id: hmmutex.cpp,v 1.3 2000-02-16 14:24:00 sandervl Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 * Win32 Unified Handle Manager for OS/2
6 * Copyright 1999 Patrick Haller (haller@zebra.fh-weingarten.de)
7 */
8
9#undef DEBUG_LOCAL
10//#define DEBUG_LOCAL
11
12
13/*****************************************************************************
14 * Remark *
15 *****************************************************************************
16
17 */
18
19
20/*****************************************************************************
21 * Includes *
22 *****************************************************************************/
23
24#include <os2win.h>
25#include <stdlib.h>
26#include <string.h>
27#include "unicode.h"
28#include "misc.h"
29
30#include "HandleManager.H"
31#include "HMMutex.h"
32
33#define DBG_LOCALLOG DBG_hmmutex
34#include "dbglocal.h"
35
36/*****************************************************************************
37 * Defines *
38 *****************************************************************************/
39
40/*****************************************************************************
41 * Structures *
42 *****************************************************************************/
43
44/*****************************************************************************
45 * Local Prototypes *
46 *****************************************************************************/
47
48
49/*****************************************************************************
50 * Name : HMCreateMutex
51 * Purpose : router function for CreateMutex
52 * Parameters:
53 * Variables :
54 * Result :
55 * Remark :
56 * Status :
57 *
58 * Author : Patrick Haller [Tue, 1999/07/06 20:44]
59 *****************************************************************************/
60
61DWORD HMDeviceMutexClass::CreateMutex(PHMHANDLEDATA pHMHandleData,
62 LPSECURITY_ATTRIBUTES lpsa,
63 BOOL fInitialOwner,
64 LPCTSTR lpszMutexName)
65{
66 HANDLE hOpen32;
67
68 dprintf(("KERNEL32: HandleManager::Mutex::CreateMutex(%08xh,%08xh,%08xh,%s)\n",
69 pHMHandleData,
70 lpsa,
71 fInitialOwner,
72 lpszMutexName));
73
74 hOpen32 = O32_CreateMutex(lpsa, // call Open32
75 fInitialOwner,
76 lpszMutexName);
77
78 if (0 != hOpen32) // check success
79 {
80 pHMHandleData->hHMHandle = hOpen32; // save handle
81 return (NO_ERROR);
82 }
83 else
84 return (O32_GetLastError());
85}
86
87
88/*****************************************************************************
89 * Name : HMOpenMutex
90 * Purpose : router function for OpenMutex
91 * Parameters:
92 * Variables :
93 * Result :
94 * Remark :
95 * Status :
96 *
97 * Author : Patrick Haller [Tue, 1999/07/06 20:44]
98 *****************************************************************************/
99
100DWORD HMDeviceMutexClass::OpenMutex(PHMHANDLEDATA pHMHandleData,
101 BOOL fInheritHandle,
102 LPCTSTR lpszMutexName)
103{
104 HANDLE hOpen32;
105
106 dprintf(("KERNEL32: HandleManager::Mutex::OpenMutex(%08xh,%08xh,%s)\n",
107 pHMHandleData,
108 fInheritHandle,
109 lpszMutexName));
110
111 hOpen32 = O32_OpenMutex(pHMHandleData->dwAccess, // call Open32
112 fInheritHandle,
113 lpszMutexName);
114
115 if (0 != hOpen32) // check success
116 {
117 pHMHandleData->hHMHandle = hOpen32; // save handle
118 return (NO_ERROR);
119 }
120 else
121 return (O32_GetLastError());
122}
123
124
125/*****************************************************************************
126 * Name : HMReleaseMutex
127 * Purpose : router function for ReleaseMutex
128 * Parameters:
129 * Variables :
130 * Result :
131 * Remark :
132 * Status :
133 *
134 * Author : Patrick Haller [Tue, 1999/07/06 20:44]
135 *****************************************************************************/
136
137BOOL HMDeviceMutexClass::ReleaseMutex(PHMHANDLEDATA pHMHandleData)
138{
139 dprintf(("KERNEL32: HandleManager::Mutex::ReleaseMutex(%08xh)\n",
140 pHMHandleData->hHMHandle));
141
142 return (O32_ReleaseMutex(pHMHandleData->hHMHandle));
143}
144
Note: See TracBrowser for help on using the repository browser.