source: trunk/src/kernel32/hmsemaphore.h

Last change on this file was 9748, checked in by sandervl, 23 years ago

Support DuplicateHandle for threads; cleaned up semaphore code

File size: 2.6 KB
RevLine 
[9748]1/* $Id: hmsemaphore.h,v 1.6 2003-02-04 11:29:00 sandervl Exp $ */
[278]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"
[768]24#include "HMOpen32.h"
[278]25
26
27/*****************************************************************************
28 * Structures *
29 *****************************************************************************/
30
[768]31class HMDeviceSemaphoreClass : public HMDeviceOpen32Class
[278]32{
33public:
[768]34 HMDeviceSemaphoreClass(LPCSTR lpDeviceName) : HMDeviceOpen32Class(lpDeviceName) {}
[278]35
[6049]36 /* this is a handler method for calls to CreateSemaphore() */
[278]37 virtual DWORD CreateSemaphore (PHMHANDLEDATA pHMHandleData,
38 LPSECURITY_ATTRIBUTES lpsa,
39 LONG lInitialCount,
40 LONG lMaximumCount,
41 LPCTSTR lpszSemaphoreName);
42
[6049]43 /* this is a handler method for calls to OpenSemaphore() */
[278]44 virtual DWORD OpenSemaphore (PHMHANDLEDATA pHMHandleData,
45 BOOL fInheritHandle,
46 LPCTSTR lpszSemaphoreName);
47
[6049]48 /* this is a handle method for calls to ReleaseSemaphore() */
[278]49 virtual BOOL ReleaseSemaphore(PHMHANDLEDATA pHMHandleData,
50 LONG cReleaseCount,
51 LPLONG lpPreviousCount);
52};
53
54
[6084]55DWORD HMSemWaitForMultipleObjects (DWORD cObjects,
56 PHANDLE lphObjects,
57 BOOL fWaitAll,
58 DWORD dwTimeout);
59
60DWORD HMSemMsgWaitForMultipleObjects (DWORD cObjects,
61 PHANDLE lphObjects,
62 BOOL fWaitAll,
63 DWORD dwTimeout,
64 DWORD dwWakeMask);
65
66
[278]67#endif /* _HM_DEVICE_SEMAPHORE_H_ */
68
Note: See TracBrowser for help on using the repository browser.