update for HEAD-2003091401
[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 /*
32  * @implemented
33  */
34 BOOLEAN
35 STDCALL
36 RtlAreAnyAccessesGranted (
37         ACCESS_MASK     GrantedAccess,
38         ACCESS_MASK     DesiredAccess
39         )
40 {
41         return ((GrantedAccess & DesiredAccess) != 0);
42 }
43
44
45 /*
46  * @implemented
47  */
48 VOID
49 STDCALL
50 RtlMapGenericMask (
51         PACCESS_MASK            AccessMask,
52         PGENERIC_MAPPING        GenericMapping
53         )
54 {
55         if (*AccessMask & GENERIC_READ)
56                 *AccessMask |= GenericMapping->GenericRead;
57
58         if (*AccessMask & GENERIC_WRITE)
59                 *AccessMask |= GenericMapping->GenericWrite;
60
61         if (*AccessMask & GENERIC_EXECUTE)
62                 *AccessMask |= GenericMapping->GenericExecute;
63
64         if (*AccessMask & GENERIC_ALL)
65                 *AccessMask |= GenericMapping->GenericAll;
66
67         *AccessMask &= 0x0FFFFFFF;
68 }
69
70 /* EOF */