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