e97440a54dfb391fff4d470f8c7392b193e62b43
[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 "rtl.h"
13
14 #define NDEBUG
15 #include <debug.h>
16
17 /* FUNCTIONS ***************************************************************/
18
19 /*
20 * @implemented
21 */
22 BOOLEAN STDCALL
23 RtlAreAllAccessesGranted(ACCESS_MASK GrantedAccess,
24 ACCESS_MASK DesiredAccess)
25 {
26 PAGED_CODE_RTL();
27 return ((GrantedAccess & DesiredAccess) == DesiredAccess);
28 }
29
30
31 /*
32 * @implemented
33 */
34 BOOLEAN STDCALL
35 RtlAreAnyAccessesGranted(ACCESS_MASK GrantedAccess,
36 ACCESS_MASK DesiredAccess)
37 {
38 PAGED_CODE_RTL();
39 return ((GrantedAccess & DesiredAccess) != 0);
40 }
41
42
43 /*
44 * @implemented
45 */
46 VOID STDCALL
47 RtlMapGenericMask(PACCESS_MASK AccessMask,
48 PGENERIC_MAPPING GenericMapping)
49 {
50 PAGED_CODE_RTL();
51
52 if (*AccessMask & GENERIC_READ)
53 *AccessMask |= GenericMapping->GenericRead;
54
55 if (*AccessMask & GENERIC_WRITE)
56 *AccessMask |= GenericMapping->GenericWrite;
57
58 if (*AccessMask & GENERIC_EXECUTE)
59 *AccessMask |= GenericMapping->GenericExecute;
60
61 if (*AccessMask & GENERIC_ALL)
62 *AccessMask |= GenericMapping->GenericAll;
63
64 *AccessMask &= ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
65 }
66
67 /* EOF */