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