aecef3f376ad8f434087a0887a9f55877ae2790e
[reactos.git] / reactos / lib / rtl / access.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: lib/rtl/access.c
5 * PURPOSE: Access rights handling functions
6 *
7 * PROGRAMMERS: Eric Kohl
8 */
9
10 /* INCLUDES *****************************************************************/
11
12 #include <ddk/ntddk.h>
13 #include <ntdll/rtl.h>
14
15 #define NDEBUG
16 #include <debug.h>
17
18 /* FUNCTIONS ***************************************************************/
19
20 /*
21 * @implemented
22 */
23 BOOLEAN STDCALL
24 RtlAreAllAccessesGranted(ACCESS_MASK GrantedAccess,
25 ACCESS_MASK DesiredAccess)
26 {
27 PAGED_CODE_RTL();
28 return ((GrantedAccess & DesiredAccess) == DesiredAccess);
29 }
30
31
32 /*
33 * @implemented
34 */
35 BOOLEAN STDCALL
36 RtlAreAnyAccessesGranted(ACCESS_MASK GrantedAccess,
37 ACCESS_MASK DesiredAccess)
38 {
39 PAGED_CODE_RTL();
40 return ((GrantedAccess & DesiredAccess) != 0);
41 }
42
43
44 /*
45 * @implemented
46 */
47 VOID STDCALL
48 RtlMapGenericMask(PACCESS_MASK AccessMask,
49 PGENERIC_MAPPING GenericMapping)
50 {
51 PAGED_CODE_RTL();
52
53 if (*AccessMask & GENERIC_READ)
54 *AccessMask |= GenericMapping->GenericRead;
55
56 if (*AccessMask & GENERIC_WRITE)
57 *AccessMask |= GenericMapping->GenericWrite;
58
59 if (*AccessMask & GENERIC_EXECUTE)
60 *AccessMask |= GenericMapping->GenericExecute;
61
62 if (*AccessMask & GENERIC_ALL)
63 *AccessMask |= GenericMapping->GenericAll;
64
65 *AccessMask &= ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
66 }
67
68 /* EOF */