mirror of
				https://github.com/ryujinx-mirror/ryujinx.git
				synced 2025-11-04 03:18:58 -06:00 
			
		
		
		
	Horizon: Implement arp:r and arp:w services (#5802)
* Horizon: Implement arp:r and arp:w services * Fix formatting * Remove HLE arp services * Revert "Remove HLE arp services" This reverts commit c576fcccadb963db56b96bacabd1c1ac7abfb1ab. * Keep LibHac impl since it's used in bcat * Addresses gdkchan's feedback * ArpApi in PrepoIpcServer and remove LmApi * Fix 2 * Fixes ArpApi init * Fix encoding * Update PrepoService.cs * Fix prepo
This commit is contained in:
		
							
								
								
									
										309
									
								
								src/Ryujinx.Horizon/Sdk/Ns/ApplicationControlProperty.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										309
									
								
								src/Ryujinx.Horizon/Sdk/Ns/ApplicationControlProperty.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,309 @@
 | 
			
		||||
using Ryujinx.Common.Memory;
 | 
			
		||||
using Ryujinx.Horizon.Sdk.Arp.Detail;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Runtime.CompilerServices;
 | 
			
		||||
using System.Runtime.InteropServices;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace Ryujinx.Horizon.Sdk.Ns
 | 
			
		||||
{
 | 
			
		||||
    public struct ApplicationControlProperty
 | 
			
		||||
    {
 | 
			
		||||
        public Array16<ApplicationTitle> Title;
 | 
			
		||||
        public Array37<byte> Isbn;
 | 
			
		||||
        public StartupUserAccountValue StartupUserAccount;
 | 
			
		||||
        public UserAccountSwitchLockValue UserAccountSwitchLock;
 | 
			
		||||
        public AddOnContentRegistrationTypeValue AddOnContentRegistrationType;
 | 
			
		||||
        public AttributeFlagValue AttributeFlag;
 | 
			
		||||
        public uint SupportedLanguageFlag;
 | 
			
		||||
        public ParentalControlFlagValue ParentalControlFlag;
 | 
			
		||||
        public ScreenshotValue Screenshot;
 | 
			
		||||
        public VideoCaptureValue VideoCapture;
 | 
			
		||||
        public DataLossConfirmationValue DataLossConfirmation;
 | 
			
		||||
        public PlayLogPolicyValue PlayLogPolicy;
 | 
			
		||||
        public ulong PresenceGroupId;
 | 
			
		||||
        public Array32<sbyte> RatingAge;
 | 
			
		||||
        public Array16<byte> DisplayVersion;
 | 
			
		||||
        public ulong AddOnContentBaseId;
 | 
			
		||||
        public ulong SaveDataOwnerId;
 | 
			
		||||
        public long UserAccountSaveDataSize;
 | 
			
		||||
        public long UserAccountSaveDataJournalSize;
 | 
			
		||||
        public long DeviceSaveDataSize;
 | 
			
		||||
        public long DeviceSaveDataJournalSize;
 | 
			
		||||
        public long BcatDeliveryCacheStorageSize;
 | 
			
		||||
        public Array8<byte> ApplicationErrorCodeCategory;
 | 
			
		||||
        public Array8<ulong> LocalCommunicationId;
 | 
			
		||||
        public LogoTypeValue LogoType;
 | 
			
		||||
        public LogoHandlingValue LogoHandling;
 | 
			
		||||
        public RuntimeAddOnContentInstallValue RuntimeAddOnContentInstall;
 | 
			
		||||
        public RuntimeParameterDeliveryValue RuntimeParameterDelivery;
 | 
			
		||||
        public Array2<byte> Reserved30F4;
 | 
			
		||||
        public CrashReportValue CrashReport;
 | 
			
		||||
        public HdcpValue Hdcp;
 | 
			
		||||
        public ulong SeedForPseudoDeviceId;
 | 
			
		||||
        public Array65<byte> BcatPassphrase;
 | 
			
		||||
        public StartupUserAccountOptionFlagValue StartupUserAccountOption;
 | 
			
		||||
        public Array6<byte> ReservedForUserAccountSaveDataOperation;
 | 
			
		||||
        public long UserAccountSaveDataSizeMax;
 | 
			
		||||
        public long UserAccountSaveDataJournalSizeMax;
 | 
			
		||||
        public long DeviceSaveDataSizeMax;
 | 
			
		||||
        public long DeviceSaveDataJournalSizeMax;
 | 
			
		||||
        public long TemporaryStorageSize;
 | 
			
		||||
        public long CacheStorageSize;
 | 
			
		||||
        public long CacheStorageJournalSize;
 | 
			
		||||
        public long CacheStorageDataAndJournalSizeMax;
 | 
			
		||||
        public ushort CacheStorageIndexMax;
 | 
			
		||||
        public byte Reserved318A;
 | 
			
		||||
        public byte RuntimeUpgrade;
 | 
			
		||||
        public uint SupportingLimitedLicenses;
 | 
			
		||||
        public Array16<ulong> PlayLogQueryableApplicationId;
 | 
			
		||||
        public PlayLogQueryCapabilityValue PlayLogQueryCapability;
 | 
			
		||||
        public RepairFlagValue RepairFlag;
 | 
			
		||||
        public byte ProgramIndex;
 | 
			
		||||
        public RequiredNetworkServiceLicenseOnLaunchValue RequiredNetworkServiceLicenseOnLaunchFlag;
 | 
			
		||||
        public Array4<byte> Reserved3214;
 | 
			
		||||
        public ApplicationNeighborDetectionClientConfiguration NeighborDetectionClientConfiguration;
 | 
			
		||||
        public ApplicationJitConfiguration JitConfiguration;
 | 
			
		||||
        public RequiredAddOnContentsSetBinaryDescriptor RequiredAddOnContentsSetBinaryDescriptors;
 | 
			
		||||
        public PlayReportPermissionValue PlayReportPermission;
 | 
			
		||||
        public CrashScreenshotForProdValue CrashScreenshotForProd;
 | 
			
		||||
        public CrashScreenshotForDevValue CrashScreenshotForDev;
 | 
			
		||||
        public byte ContentsAvailabilityTransitionPolicy;
 | 
			
		||||
        public Array4<byte> Reserved3404;
 | 
			
		||||
        public AccessibleLaunchRequiredVersionValue AccessibleLaunchRequiredVersion;
 | 
			
		||||
        public ByteArray3000 Reserved3448;
 | 
			
		||||
 | 
			
		||||
        public readonly string IsbnString => Encoding.UTF8.GetString(Isbn.AsSpan()).TrimEnd('\0');
 | 
			
		||||
        public readonly string DisplayVersionString => Encoding.UTF8.GetString(DisplayVersion.AsSpan()).TrimEnd('\0');
 | 
			
		||||
        public readonly string ApplicationErrorCodeCategoryString => Encoding.UTF8.GetString(ApplicationErrorCodeCategory.AsSpan()).TrimEnd('\0');
 | 
			
		||||
        public readonly string BcatPassphraseString => Encoding.UTF8.GetString(BcatPassphrase.AsSpan()).TrimEnd('\0');
 | 
			
		||||
 | 
			
		||||
        public struct ApplicationTitle
 | 
			
		||||
        {
 | 
			
		||||
            public ByteArray512 Name;
 | 
			
		||||
            public Array256<byte> Publisher;
 | 
			
		||||
 | 
			
		||||
            public readonly string NameString => Encoding.UTF8.GetString(Name.AsSpan()).TrimEnd('\0');
 | 
			
		||||
            public readonly string PublisherString => Encoding.UTF8.GetString(Publisher.AsSpan()).TrimEnd('\0');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public struct ApplicationNeighborDetectionClientConfiguration
 | 
			
		||||
        {
 | 
			
		||||
            public ApplicationNeighborDetectionGroupConfiguration SendGroupConfiguration;
 | 
			
		||||
            public Array16<ApplicationNeighborDetectionGroupConfiguration> ReceivableGroupConfigurations;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public struct ApplicationNeighborDetectionGroupConfiguration
 | 
			
		||||
        {
 | 
			
		||||
            public ulong GroupId;
 | 
			
		||||
            public Array16<byte> Key;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public struct ApplicationJitConfiguration
 | 
			
		||||
        {
 | 
			
		||||
            public JitConfigurationFlag Flags;
 | 
			
		||||
            public long MemorySize;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public struct RequiredAddOnContentsSetBinaryDescriptor
 | 
			
		||||
        {
 | 
			
		||||
            public Array32<ushort> Descriptors;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public struct AccessibleLaunchRequiredVersionValue
 | 
			
		||||
        {
 | 
			
		||||
            public Array8<ulong> ApplicationId;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum Language
 | 
			
		||||
        {
 | 
			
		||||
            AmericanEnglish = 0,
 | 
			
		||||
            BritishEnglish = 1,
 | 
			
		||||
            Japanese = 2,
 | 
			
		||||
            French = 3,
 | 
			
		||||
            German = 4,
 | 
			
		||||
            LatinAmericanSpanish = 5,
 | 
			
		||||
            Spanish = 6,
 | 
			
		||||
            Italian = 7,
 | 
			
		||||
            Dutch = 8,
 | 
			
		||||
            CanadianFrench = 9,
 | 
			
		||||
            Portuguese = 10,
 | 
			
		||||
            Russian = 11,
 | 
			
		||||
            Korean = 12,
 | 
			
		||||
            TraditionalChinese = 13,
 | 
			
		||||
            SimplifiedChinese = 14,
 | 
			
		||||
            BrazilianPortuguese = 15,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum Organization
 | 
			
		||||
        {
 | 
			
		||||
            CERO = 0,
 | 
			
		||||
            GRACGCRB = 1,
 | 
			
		||||
            GSRMR = 2,
 | 
			
		||||
            ESRB = 3,
 | 
			
		||||
            ClassInd = 4,
 | 
			
		||||
            USK = 5,
 | 
			
		||||
            PEGI = 6,
 | 
			
		||||
            PEGIPortugal = 7,
 | 
			
		||||
            PEGIBBFC = 8,
 | 
			
		||||
            Russian = 9,
 | 
			
		||||
            ACB = 10,
 | 
			
		||||
            OFLC = 11,
 | 
			
		||||
            IARCGeneric = 12,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum StartupUserAccountValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            Required = 1,
 | 
			
		||||
            RequiredWithNetworkServiceAccountAvailable = 2,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum UserAccountSwitchLockValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Disable = 0,
 | 
			
		||||
            Enable = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum AddOnContentRegistrationTypeValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            AllOnLaunch = 0,
 | 
			
		||||
            OnDemand = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Flags]
 | 
			
		||||
        public enum AttributeFlagValue
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            Demo = 1 << 0,
 | 
			
		||||
            RetailInteractiveDisplay = 1 << 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum ParentalControlFlagValue
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            FreeCommunication = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum ScreenshotValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Allow = 0,
 | 
			
		||||
            Deny = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum VideoCaptureValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Disable = 0,
 | 
			
		||||
            Manual = 1,
 | 
			
		||||
            Enable = 2,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum DataLossConfirmationValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            Required = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum PlayLogPolicyValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Open = 0,
 | 
			
		||||
            LogOnly = 1,
 | 
			
		||||
            None = 2,
 | 
			
		||||
            Closed = 3,
 | 
			
		||||
            All = Open,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum LogoTypeValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            LicensedByNintendo = 0,
 | 
			
		||||
            DistributedByNintendo = 1,
 | 
			
		||||
            Nintendo = 2,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum LogoHandlingValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Auto = 0,
 | 
			
		||||
            Manual = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum RuntimeAddOnContentInstallValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Deny = 0,
 | 
			
		||||
            AllowAppend = 1,
 | 
			
		||||
            AllowAppendButDontDownloadWhenUsingNetwork = 2,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum RuntimeParameterDeliveryValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Always = 0,
 | 
			
		||||
            AlwaysIfUserStateMatched = 1,
 | 
			
		||||
            OnRestart = 2,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum CrashReportValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Deny = 0,
 | 
			
		||||
            Allow = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum HdcpValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            Required = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Flags]
 | 
			
		||||
        public enum StartupUserAccountOptionFlagValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            IsOptional = 1 << 0,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum PlayLogQueryCapabilityValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            WhiteList = 1,
 | 
			
		||||
            All = 2,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Flags]
 | 
			
		||||
        public enum RepairFlagValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            SuppressGameCardAccess = 1 << 0,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Flags]
 | 
			
		||||
        public enum RequiredNetworkServiceLicenseOnLaunchValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            Common = 1 << 0,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Flags]
 | 
			
		||||
        public enum JitConfigurationFlag : ulong
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            Enabled = 1 << 0,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Flags]
 | 
			
		||||
        public enum PlayReportPermissionValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            None = 0,
 | 
			
		||||
            TargetMarketing = 1 << 0,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum CrashScreenshotForProdValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Deny = 0,
 | 
			
		||||
            Allow = 1,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public enum CrashScreenshotForDevValue : byte
 | 
			
		||||
        {
 | 
			
		||||
            Deny = 0,
 | 
			
		||||
            Allow = 1,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user