aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationFlags.cs
blob: f0e43e023622acbf98f2bb1a72633b763d7b5287 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Diagnostics.CodeAnalysis;

namespace Ryujinx.HLE.HOS.Kernel.Process
{
    [Flags]
    [SuppressMessage("Design", "CA1069: Enums values should not be duplicated")]
    enum ProcessCreationFlags
    {
        Is64Bit = 1 << 0,

        AddressSpaceShift = 1,
        AddressSpace32Bit = 0 << AddressSpaceShift,
        AddressSpace64BitDeprecated = 1 << AddressSpaceShift,
        AddressSpace32BitWithoutAlias = 2 << AddressSpaceShift,
        AddressSpace64Bit = 3 << AddressSpaceShift,
        AddressSpaceMask = 7 << AddressSpaceShift,

        EnableDebug = 1 << 4,
        EnableAslr = 1 << 5,
        IsApplication = 1 << 6,
        DeprecatedUseSecureMemory = 1 << 7,

        PoolPartitionShift = 7,
        PoolPartitionApplication = 0 << PoolPartitionShift,
        PoolPartitionApplet = 1 << PoolPartitionShift,
        PoolPartitionSystem = 2 << PoolPartitionShift,
        PoolPartitionSystemNonSecure = 3 << PoolPartitionShift,
        PoolPartitionMask = 0xf << PoolPartitionShift,

        OptimizeMemoryAllocation = 1 << 11,

        All =
            Is64Bit |
            AddressSpaceMask |
            EnableDebug |
            EnableAslr |
            IsApplication |
            DeprecatedUseSecureMemory |
            PoolPartitionMask |
            OptimizeMemoryAllocation,
    }
}