Standardize comment headers. Patch by Trevor McCort
[reactos.git] / reactos / ntoskrnl / se / luid.c
1 /* $Id$
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/se/luid.c
6 * PURPOSE: Security manager
7 *
8 * PROGRAMMERS: No programmer listed.
9 */
10
11 /* INCLUDES *****************************************************************/
12
13 #include <ntoskrnl.h>
14 #include <internal/debug.h>
15
16 /* GLOBALS *******************************************************************/
17
18 static KSPIN_LOCK LuidLock;
19 static LARGE_INTEGER LuidIncrement;
20 static LARGE_INTEGER LuidValue;
21
22 /* FUNCTIONS *****************************************************************/
23
24 VOID INIT_FUNCTION
25 SepInitLuid(VOID)
26 {
27 LARGE_INTEGER DummyLuidValue = SYSTEM_LUID;
28
29 KeInitializeSpinLock(&LuidLock);
30 LuidValue = DummyLuidValue;
31 LuidIncrement.QuadPart = 1;
32 }
33
34
35 /*
36 * @implemented
37 */
38 NTSTATUS STDCALL
39 NtAllocateLocallyUniqueId(OUT LUID *LocallyUniqueId)
40 {
41 LARGE_INTEGER ReturnedLuid;
42 KIRQL Irql;
43
44 KeAcquireSpinLock(&LuidLock,
45 &Irql);
46 ReturnedLuid = LuidValue;
47 LuidValue = RtlLargeIntegerAdd(LuidValue,
48 LuidIncrement);
49 KeReleaseSpinLock(&LuidLock,
50 Irql);
51
52 LocallyUniqueId->LowPart = ReturnedLuid.u.LowPart;
53 LocallyUniqueId->HighPart = ReturnedLuid.u.HighPart;
54
55 return(STATUS_SUCCESS);
56 }
57
58
59 /*
60 * @implemented
61 */
62 VOID STDCALL
63 RtlCopyLuid(IN PLUID LuidDest,
64 IN PLUID LuidSrc)
65 {
66 LuidDest->LowPart = LuidSrc->LowPart;
67 LuidDest->HighPart = LuidSrc->HighPart;
68 }
69
70
71 /*
72 * @implemented
73 */
74 BOOLEAN STDCALL
75 RtlEqualLuid(IN PLUID Luid1,
76 IN PLUID Luid2)
77 {
78 return (Luid1->LowPart == Luid2->LowPart &&
79 Luid1->HighPart == Luid2->HighPart);
80 }
81
82 /* EOF */