source: trunk/src/kernel32/hmsemaphore.h@ 6060

Last change on this file since 6060 was 6060, checked in by sandervl, 24 years ago

semaphore updates

File size: 4.0 KB
Line 
1/* $Id: hmsemaphore.h,v 1.4 2001-06-21 21:07:54 sandervl Exp $ */
2
3/*
4 * Project Odin Software License can be found in LICENSE.TXT
5 * Win32 Unified Handle Manager for OS/2
6 * 1999/06/17 PH Patrick Haller (phaller@gmx.net)
7 */
8
9#ifndef _HM_DEVICE_SEMAPHORE_H_
10#define _HM_DEVICE_SEMAPHORE_H_
11
12
13/*****************************************************************************
14 * Remark *
15 *****************************************************************************
16 */
17
18
19/*****************************************************************************
20 * Includes *
21 *****************************************************************************/
22
23#include "HMDevice.h"
24#include "HMOpen32.h"
25
26
27/*****************************************************************************
28 * Structures *
29 *****************************************************************************/
30
31#ifdef USE_OS2SEMAPHORES
32class HMDeviceSemaphoreClass : public HMDeviceHandler
33#else
34class HMDeviceSemaphoreClass : public HMDeviceOpen32Class
35#endif
36{
37public:
38#ifdef USE_OS2SEMAPHORES
39 HMDeviceSemaphoreClass(LPCSTR lpDeviceName) : HMDeviceHandler(lpDeviceName) {}
40#else
41 HMDeviceSemaphoreClass(LPCSTR lpDeviceName) : HMDeviceOpen32Class(lpDeviceName) {}
42#endif
43
44 /* this is a handler method for calls to CreateSemaphore() */
45 virtual DWORD CreateSemaphore (PHMHANDLEDATA pHMHandleData,
46 LPSECURITY_ATTRIBUTES lpsa,
47 LONG lInitialCount,
48 LONG lMaximumCount,
49 LPCTSTR lpszSemaphoreName);
50
51 /* this is a handler method for calls to OpenSemaphore() */
52 virtual DWORD OpenSemaphore (PHMHANDLEDATA pHMHandleData,
53 BOOL fInheritHandle,
54 LPCTSTR lpszSemaphoreName);
55
56#ifdef USE_OS2SEMAPHORES
57 virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
58
59 virtual BOOL DuplicateHandle(PHMHANDLEDATA pHMHandleData, HANDLE srcprocess,
60 PHMHANDLEDATA pHMSrcHandle,
61 HANDLE destprocess,
62 PHANDLE desthandle,
63 DWORD fdwAccess,
64 BOOL fInherit,
65 DWORD fdwOptions,
66 DWORD fdwOdinOptions);
67
68 /* this is a handler method for calls to WaitForSingleObject */
69 virtual DWORD WaitForSingleObject (PHMHANDLEDATA pHMHandleData,
70 DWORD dwTimeout);
71
72 /* this is a handler method for calls to WaitForSingleObjectEx */
73 virtual DWORD WaitForSingleObjectEx(PHMHANDLEDATA pHMHandleData,
74 DWORD dwTimeout,
75 BOOL fAlertable);
76
77 virtual DWORD MsgWaitForMultipleObjects(PHMHANDLEDATA pHMHandleData,
78 DWORD nCount,
79 PHANDLE pHandles,
80 BOOL fWaitAll,
81 DWORD dwMilliseconds,
82 DWORD dwWakeMask);
83
84 virtual DWORD WaitForMultipleObjects (PHMHANDLEDATA pHMHandleData,
85 DWORD cObjects,
86 PHANDLE lphObjects,
87 BOOL fWaitAll,
88 DWORD dwTimeout);
89
90#endif
91
92 /* this is a handle method for calls to ReleaseSemaphore() */
93 virtual BOOL ReleaseSemaphore(PHMHANDLEDATA pHMHandleData,
94 LONG cReleaseCount,
95 LPLONG lpPreviousCount);
96};
97
98
99#endif /* _HM_DEVICE_SEMAPHORE_H_ */
100
Note: See TracBrowser for help on using the repository browser.