82 lines
1.7 KiB
C++
82 lines
1.7 KiB
C++
/*++
|
|
|
|
Copyright (C) Microsoft Corporation, 1994 - 1999
|
|
|
|
Module Name:
|
|
|
|
uuidsup.hxx
|
|
|
|
Abstract:
|
|
|
|
Data structures and functions avaliable in uuidsup.cxx
|
|
|
|
This file is shared between all systems.
|
|
|
|
Author:
|
|
|
|
Mario Goertzel (MarioGo) May 25, 1994
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef __UUIDSUP_HXX__
|
|
#define __UUIDSUP_HXX__
|
|
|
|
#define KERNEL_UUIDS
|
|
|
|
// This is the "true" OSF DCE format for Uuids. We use this
|
|
// when generating Uuids. The NodeId is faked on systems w/o
|
|
// a netcard.
|
|
|
|
typedef struct _RPC_UUID_GENERATE
|
|
{
|
|
unsigned long TimeLow;
|
|
unsigned short TimeMid;
|
|
unsigned short TimeHiAndVersion;
|
|
unsigned char ClockSeqHiAndReserved;
|
|
unsigned char ClockSeqLow;
|
|
unsigned char NodeId[6];
|
|
} RPC_UUID_GENERATE;
|
|
|
|
#ifdef MPPC
|
|
#define InterlockedDecrement(x) ((x)--)
|
|
#endif
|
|
|
|
#define RPC_UUID_TIME_HIGH_MASK 0x0FFF
|
|
#define RPC_UUID_VERSION 0x1000
|
|
#define RPC_RAND_UUID_VERSION 0x4000
|
|
#define RPC_UUID_RESERVED 0x80
|
|
#define RPC_UUID_CLOCK_SEQ_HI_MASK 0x3F
|
|
|
|
typedef struct _UUID_CACHED_VALUES_STRUCT
|
|
{
|
|
|
|
ULARGE_INTEGER Time; // Time of last uuid allocation
|
|
long AllocatedCount; // Number of UUIDs allocated
|
|
unsigned char ClockSeqHiAndReserved;
|
|
unsigned char ClockSeqLow;
|
|
|
|
unsigned char NodeId[6];
|
|
} UUID_CACHED_VALUES_STRUCT;
|
|
|
|
RPC_STATUS __RPC_API
|
|
UuidGlobalMutexRequest(void);
|
|
|
|
void __RPC_API
|
|
UuidGlobalMutexClear(void);
|
|
|
|
#ifdef KERNEL_UUIDS
|
|
#define UuidGlobalMutexRequest() RPC_S_OK
|
|
#define UuidGlobalMutexClear()
|
|
#endif
|
|
|
|
RPC_STATUS __RPC_API
|
|
GetNodeId(unsigned char __RPC_FAR *NodeId);
|
|
|
|
RPC_STATUS __RPC_API
|
|
UuidGetValues(UUID_CACHED_VALUES_STRUCT __RPC_FAR *);
|
|
|
|
#endif // __UUIDSUP_HXX__
|
|
|