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

Last change on this file since 278 was 278, checked in by phaller, 26 years ago

Add: HandleManager support for kernel objects, various fixes

File size: 4.5 KB
Line 
1/* $Id: hmmutex.cpp,v 1.1 1999-07-06 15:48:47 phaller 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
34/*****************************************************************************
35 * Defines *
36 *****************************************************************************/
37
38/*****************************************************************************
39 * Structures *
40 *****************************************************************************/
41
42/*****************************************************************************
43 * Local Prototypes *
44 *****************************************************************************/
45
46
47/*****************************************************************************
48 * Name : HMCreateMutex
49 * Purpose : router function for CreateMutex
50 * Parameters:
51 * Variables :
52 * Result :
53 * Remark :
54 * Status :
55 *
56 * Author : Patrick Haller [Tue, 1999/07/06 20:44]
57 *****************************************************************************/
58
59DWORD HMDeviceMutexClass::CreateMutex(PHMHANDLEDATA pHMHandleData,
60 LPSECURITY_ATTRIBUTES lpsa,
61 BOOL fInitialOwner,
62 LPCTSTR lpszMutexName)
63{
64 HANDLE hOpen32;
65
66 dprintf(("KERNEL32: HandleManager::Mutex::CreateMutex(%08xh,%08xh,%08xh,%s)\n",
67 pHMHandleData,
68 lpsa,
69 fInitialOwner,
70 lpszMutexName));
71
72 hOpen32 = O32_CreateMutex(lpsa, // call Open32
73 fInitialOwner,
74 lpszMutexName);
75
76 if (INVALID_HANDLE_VALUE != hOpen32) // check success
77 {
78 pHMHandleData->hHMHandle = hOpen32; // save handle
79 return (NO_ERROR);
80 }
81 else
82 return (O32_GetLastError());
83}
84
85
86/*****************************************************************************
87 * Name : HMOpenMutex
88 * Purpose : router function for OpenMutex
89 * Parameters:
90 * Variables :
91 * Result :
92 * Remark :
93 * Status :
94 *
95 * Author : Patrick Haller [Tue, 1999/07/06 20:44]
96 *****************************************************************************/
97
98DWORD HMDeviceMutexClass::OpenMutex(PHMHANDLEDATA pHMHandleData,
99 BOOL fInheritHandle,
100 LPCTSTR lpszMutexName)
101{
102 HANDLE hOpen32;
103
104 dprintf(("KERNEL32: HandleManager::Mutex::OpenMutex(%08xh,%08xh,%s)\n",
105 pHMHandleData,
106 fInheritHandle,
107 lpszMutexName));
108
109 hOpen32 = O32_OpenMutex(pHMHandleData->dwAccess, // call Open32
110 fInheritHandle,
111 lpszMutexName);
112
113 if (INVALID_HANDLE_VALUE != hOpen32) // check success
114 {
115 pHMHandleData->hHMHandle = hOpen32; // save handle
116 return (NO_ERROR);
117 }
118 else
119 return (O32_GetLastError());
120}
121
122
123/*****************************************************************************
124 * Name : HMReleaseMutex
125 * Purpose : router function for ReleaseMutex
126 * Parameters:
127 * Variables :
128 * Result :
129 * Remark :
130 * Status :
131 *
132 * Author : Patrick Haller [Tue, 1999/07/06 20:44]
133 *****************************************************************************/
134
135BOOL HMDeviceMutexClass::ReleaseMutex(PHMHANDLEDATA pHMHandleData)
136{
137 dprintf(("KERNEL32: HandleManager::Mutex::ReleaseMutex(%08xh)\n",
138 pHMHandleData->hHMHandle));
139
140 return (O32_ReleaseMutex(pHMHandleData->hHMHandle));
141}
142
Note: See TracBrowser for help on using the repository browser.