From 83ac682594b494d22c0d7c0aac5e8fe99f9a95ae Mon Sep 17 00:00:00 2001 From: applestash Date: Tue, 15 Jul 2014 21:19:58 +1000 Subject: [PATCH] moved rsf stuff from user_set to rsf_set --- makerom/lib.h | 3 +- makerom/rsf_settings.c | 187 +++++++++++++++++++++++++++++++++++++++- makerom/rsf_settings.h | 5 +- makerom/user_settings.c | 187 ---------------------------------------- makerom/user_settings.h | 36 ++++---- makerom/yaml_parser.h | 2 + 6 files changed, 208 insertions(+), 212 deletions(-) diff --git a/makerom/lib.h b/makerom/lib.h index 15a0284..1799a9f 100644 --- a/makerom/lib.h +++ b/makerom/lib.h @@ -30,7 +30,8 @@ #include "keyset.h" #include "user_settings.h" -#include "libyaml/yaml.h" #include "yaml_parser.h" +#include "rsf_settings.h" + diff --git a/makerom/rsf_settings.c b/makerom/rsf_settings.c index 7d876ee..84c3edc 100644 --- a/makerom/rsf_settings.c +++ b/makerom/rsf_settings.c @@ -1,5 +1,4 @@ #include "lib.h" -#include "rsf_settings.h" void EvaluateRSF(rsf_settings *rsf, ctr_yaml_context *ctx) { @@ -372,4 +371,190 @@ void GET_CommonHeaderKey(ctr_yaml_context *ctx, rsf_settings *rsf) GetEvent(ctx); } FinishEvent(ctx); +} + +void free_RsfSettings(rsf_settings *set) +{ + //Option + free(set->Option.PageSize); + /* + for(u32 i = 0; i < set->Option.AppendSystemCallNum; i++){ + free(set->Option.AppendSystemCall[i]); + } + free(set->Option.AppendSystemCall); + */ + + //AccessControlInfo + //free(set->AccessControlInfo.ProgramId); + free(set->AccessControlInfo.IdealProcessor); + free(set->AccessControlInfo.Priority); + free(set->AccessControlInfo.MemoryType); + free(set->AccessControlInfo.SystemMode); + free(set->AccessControlInfo.CoreVersion); + free(set->AccessControlInfo.HandleTableSize); + free(set->AccessControlInfo.SystemSaveDataId1); + free(set->AccessControlInfo.SystemSaveDataId2); + free(set->AccessControlInfo.OtherUserSaveDataId1); + free(set->AccessControlInfo.OtherUserSaveDataId2); + free(set->AccessControlInfo.OtherUserSaveDataId3); + free(set->AccessControlInfo.ExtSaveDataId); + free(set->AccessControlInfo.SystemMode); + free(set->AccessControlInfo.AffinityMask); + free(set->AccessControlInfo.DescVersion); + //free(set->AccessControlInfo.CryptoKey); + free(set->AccessControlInfo.ResourceLimitCategory); + free(set->AccessControlInfo.ReleaseKernelMajor); + free(set->AccessControlInfo.ReleaseKernelMinor); + free(set->AccessControlInfo.MaxCpu); + + for(u32 i = 0; i < set->AccessControlInfo.MemoryMappingNum; i++){ + free(set->AccessControlInfo.MemoryMapping[i]); + } + free(set->AccessControlInfo.MemoryMapping); + + for(u32 i = 0; i < set->AccessControlInfo.IORegisterMappingNum; i++){ + free(set->AccessControlInfo.IORegisterMapping[i]); + } + free(set->AccessControlInfo.IORegisterMapping); + + for(u32 i = 0; i < set->AccessControlInfo.FileSystemAccessNum; i++){ + free(set->AccessControlInfo.FileSystemAccess[i]); + } + free(set->AccessControlInfo.FileSystemAccess); + + for(u32 i = 0; i < set->AccessControlInfo.IoAccessControlNum; i++){ + free(set->AccessControlInfo.IoAccessControl[i]); + } + free(set->AccessControlInfo.IoAccessControl); + + for(u32 i = 0; i < set->AccessControlInfo.InterruptNumbersNum; i++){ + free(set->AccessControlInfo.InterruptNumbers[i]); + } + free(set->AccessControlInfo.InterruptNumbers); + + for(u32 i = 0; i < set->AccessControlInfo.SystemCallAccessNum; i++){ + free(set->AccessControlInfo.SystemCallAccess[i]); + } + free(set->AccessControlInfo.SystemCallAccess); + + for(u32 i = 0; i < set->AccessControlInfo.ServiceAccessControlNum; i++){ + free(set->AccessControlInfo.ServiceAccessControl[i]); + } + free(set->AccessControlInfo.ServiceAccessControl); + + for(u32 i = 0; i < set->AccessControlInfo.StorageIdNum; i++){ + free(set->AccessControlInfo.StorageId[i]); + } + free(set->AccessControlInfo.StorageId); + + for(u32 i = 0; i < set->AccessControlInfo.AccessibleSaveDataIdsNum; i++){ + free(set->AccessControlInfo.AccessibleSaveDataIds[i]); + } + free(set->AccessControlInfo.AccessibleSaveDataIds); + + //SystemControlInfo + free(set->SystemControlInfo.AppType); + free(set->SystemControlInfo.StackSize); + free(set->SystemControlInfo.RemasterVersion); + free(set->SystemControlInfo.SaveDataSize); + free(set->SystemControlInfo.JumpId); + + for(u32 i = 0; i < set->SystemControlInfo.DependencyNum; i++){ + free(set->SystemControlInfo.Dependency[i]); + } + free(set->SystemControlInfo.Dependency); + + //BasicInfo + free(set->BasicInfo.Title); + free(set->BasicInfo.CompanyCode); + free(set->BasicInfo.ProductCode); + free(set->BasicInfo.ContentType); + free(set->BasicInfo.Logo); + //free(set->BasicInfo.BackupMemoryType); + //free(set->BasicInfo.InitialCode); + + //Rom + free(set->Rom.HostRoot); + //free(set->Rom.Padding); + + for(u32 i = 0; i < set->Rom.DefaultRejectNum; i++){ + free(set->Rom.DefaultReject[i]); + } + free(set->Rom.DefaultReject); + + for(u32 i = 0; i < set->Rom.RejectNum; i++){ + free(set->Rom.Reject[i]); + } + free(set->Rom.Reject); + + for(u32 i = 0; i < set->Rom.IncludeNum; i++){ + free(set->Rom.Include[i]); + } + free(set->Rom.Include); + + for(u32 i = 0; i < set->Rom.FileNum; i++){ + free(set->Rom.File[i]); + } + free(set->Rom.File); + + //ExeFs + for(u32 i = 0; i < set->ExeFs.TextNum; i++){ + free(set->ExeFs.Text[i]); + } + free(set->ExeFs.Text); + + for(u32 i = 0; i < set->ExeFs.ReadOnlyNum; i++){ + free(set->ExeFs.ReadOnly[i]); + } + free(set->ExeFs.ReadOnly); + + for(u32 i = 0; i < set->ExeFs.ReadWriteNum; i++){ + free(set->ExeFs.ReadWrite[i]); + } + free(set->ExeFs.ReadWrite); + + //PlainRegion + for(u32 i = 0; i < set->PlainRegionNum; i++){ + free(set->PlainRegion[i]); + } + free(set->PlainRegion); + + //TitleInfo + //free(set->TitleInfo.Platform); + free(set->TitleInfo.Category); + free(set->TitleInfo.UniqueId); + free(set->TitleInfo.Version); + free(set->TitleInfo.ContentsIndex); + free(set->TitleInfo.Variation); + //free(set->TitleInfo.Use); + free(set->TitleInfo.ChildIndex); + free(set->TitleInfo.DemoIndex); + free(set->TitleInfo.TargetCategory); + + for(u32 i = 0; i < set->TitleInfo.CategoryFlagsNum; i++){ + free(set->TitleInfo.CategoryFlags[i]); + } + free(set->TitleInfo.CategoryFlags); + + //CardInfo + free(set->CardInfo.WritableAddress); + free(set->CardInfo.CardType); + free(set->CardInfo.CryptoType); + free(set->CardInfo.CardDevice); + free(set->CardInfo.MediaType); + free(set->CardInfo.MediaSize); + free(set->CardInfo.BackupWriteWaitTime); + free(set->CardInfo.SaveCrypto); + + //CommonHeaderKey + free(set->CommonHeaderKey.D); + free(set->CommonHeaderKey.P); + free(set->CommonHeaderKey.Q); + free(set->CommonHeaderKey.DP); + free(set->CommonHeaderKey.DQ); + free(set->CommonHeaderKey.InverseQ); + free(set->CommonHeaderKey.Modulus); + free(set->CommonHeaderKey.Exponent); + free(set->CommonHeaderKey.AccCtlDescSign); + free(set->CommonHeaderKey.AccCtlDescBin); } \ No newline at end of file diff --git a/makerom/rsf_settings.h b/makerom/rsf_settings.h index 9ef4015..2b355fc 100644 --- a/makerom/rsf_settings.h +++ b/makerom/rsf_settings.h @@ -1,6 +1,5 @@ #pragma once -int MergeSpecData(rsf_settings *out, rsf_settings *desc, rsf_settings *rsf); void EvaluateRSF(rsf_settings *rsf, ctr_yaml_context *ctx); void GET_Option(ctr_yaml_context *ctx, rsf_settings *rsf); @@ -12,4 +11,6 @@ void GET_ExeFs(ctr_yaml_context *ctx, rsf_settings *rsf); void GET_PlainRegion(ctr_yaml_context *ctx, rsf_settings *rsf); void GET_TitleInfo(ctr_yaml_context *ctx, rsf_settings *rsf); void GET_CardInfo(ctr_yaml_context *ctx, rsf_settings *rsf); -void GET_CommonHeaderKey(ctr_yaml_context *ctx, rsf_settings *rsf); \ No newline at end of file +void GET_CommonHeaderKey(ctr_yaml_context *ctx, rsf_settings *rsf); + +void free_RsfSettings(rsf_settings *set); \ No newline at end of file diff --git a/makerom/user_settings.c b/makerom/user_settings.c index b1af1e8..a2e8ffd 100644 --- a/makerom/user_settings.c +++ b/makerom/user_settings.c @@ -715,193 +715,6 @@ void init_UserSettings(user_settings *usr_settings) memset(usr_settings,0,sizeof(user_settings)); } - -void free_RsfSettings(rsf_settings *set) -{ - //Option - free(set->Option.PageSize); - /* - for(u32 i = 0; i < set->Option.AppendSystemCallNum; i++){ - free(set->Option.AppendSystemCall[i]); - } - free(set->Option.AppendSystemCall); - */ - - //AccessControlInfo - //free(set->AccessControlInfo.ProgramId); - free(set->AccessControlInfo.IdealProcessor); - free(set->AccessControlInfo.Priority); - free(set->AccessControlInfo.MemoryType); - free(set->AccessControlInfo.SystemMode); - free(set->AccessControlInfo.CoreVersion); - free(set->AccessControlInfo.HandleTableSize); - free(set->AccessControlInfo.SystemSaveDataId1); - free(set->AccessControlInfo.SystemSaveDataId2); - free(set->AccessControlInfo.OtherUserSaveDataId1); - free(set->AccessControlInfo.OtherUserSaveDataId2); - free(set->AccessControlInfo.OtherUserSaveDataId3); - free(set->AccessControlInfo.ExtSaveDataId); - free(set->AccessControlInfo.SystemMode); - free(set->AccessControlInfo.AffinityMask); - free(set->AccessControlInfo.DescVersion); - //free(set->AccessControlInfo.CryptoKey); - free(set->AccessControlInfo.ResourceLimitCategory); - free(set->AccessControlInfo.ReleaseKernelMajor); - free(set->AccessControlInfo.ReleaseKernelMinor); - free(set->AccessControlInfo.MaxCpu); - - for(u32 i = 0; i < set->AccessControlInfo.MemoryMappingNum; i++){ - free(set->AccessControlInfo.MemoryMapping[i]); - } - free(set->AccessControlInfo.MemoryMapping); - - for(u32 i = 0; i < set->AccessControlInfo.IORegisterMappingNum; i++){ - free(set->AccessControlInfo.IORegisterMapping[i]); - } - free(set->AccessControlInfo.IORegisterMapping); - - for(u32 i = 0; i < set->AccessControlInfo.FileSystemAccessNum; i++){ - free(set->AccessControlInfo.FileSystemAccess[i]); - } - free(set->AccessControlInfo.FileSystemAccess); - - for(u32 i = 0; i < set->AccessControlInfo.IoAccessControlNum; i++){ - free(set->AccessControlInfo.IoAccessControl[i]); - } - free(set->AccessControlInfo.IoAccessControl); - - for(u32 i = 0; i < set->AccessControlInfo.InterruptNumbersNum; i++){ - free(set->AccessControlInfo.InterruptNumbers[i]); - } - free(set->AccessControlInfo.InterruptNumbers); - - for(u32 i = 0; i < set->AccessControlInfo.SystemCallAccessNum; i++){ - free(set->AccessControlInfo.SystemCallAccess[i]); - } - free(set->AccessControlInfo.SystemCallAccess); - - for(u32 i = 0; i < set->AccessControlInfo.ServiceAccessControlNum; i++){ - free(set->AccessControlInfo.ServiceAccessControl[i]); - } - free(set->AccessControlInfo.ServiceAccessControl); - - for(u32 i = 0; i < set->AccessControlInfo.StorageIdNum; i++){ - free(set->AccessControlInfo.StorageId[i]); - } - free(set->AccessControlInfo.StorageId); - - for(u32 i = 0; i < set->AccessControlInfo.AccessibleSaveDataIdsNum; i++){ - free(set->AccessControlInfo.AccessibleSaveDataIds[i]); - } - free(set->AccessControlInfo.AccessibleSaveDataIds); - - //SystemControlInfo - free(set->SystemControlInfo.AppType); - free(set->SystemControlInfo.StackSize); - free(set->SystemControlInfo.RemasterVersion); - free(set->SystemControlInfo.SaveDataSize); - free(set->SystemControlInfo.JumpId); - - for(u32 i = 0; i < set->SystemControlInfo.DependencyNum; i++){ - free(set->SystemControlInfo.Dependency[i]); - } - free(set->SystemControlInfo.Dependency); - - //BasicInfo - free(set->BasicInfo.Title); - free(set->BasicInfo.CompanyCode); - free(set->BasicInfo.ProductCode); - free(set->BasicInfo.ContentType); - free(set->BasicInfo.Logo); - //free(set->BasicInfo.BackupMemoryType); - //free(set->BasicInfo.InitialCode); - - //Rom - free(set->Rom.HostRoot); - //free(set->Rom.Padding); - - for(u32 i = 0; i < set->Rom.DefaultRejectNum; i++){ - free(set->Rom.DefaultReject[i]); - } - free(set->Rom.DefaultReject); - - for(u32 i = 0; i < set->Rom.RejectNum; i++){ - free(set->Rom.Reject[i]); - } - free(set->Rom.Reject); - - for(u32 i = 0; i < set->Rom.IncludeNum; i++){ - free(set->Rom.Include[i]); - } - free(set->Rom.Include); - - for(u32 i = 0; i < set->Rom.FileNum; i++){ - free(set->Rom.File[i]); - } - free(set->Rom.File); - - //ExeFs - for(u32 i = 0; i < set->ExeFs.TextNum; i++){ - free(set->ExeFs.Text[i]); - } - free(set->ExeFs.Text); - - for(u32 i = 0; i < set->ExeFs.ReadOnlyNum; i++){ - free(set->ExeFs.ReadOnly[i]); - } - free(set->ExeFs.ReadOnly); - - for(u32 i = 0; i < set->ExeFs.ReadWriteNum; i++){ - free(set->ExeFs.ReadWrite[i]); - } - free(set->ExeFs.ReadWrite); - - //PlainRegion - for(u32 i = 0; i < set->PlainRegionNum; i++){ - free(set->PlainRegion[i]); - } - free(set->PlainRegion); - - //TitleInfo - //free(set->TitleInfo.Platform); - free(set->TitleInfo.Category); - free(set->TitleInfo.UniqueId); - free(set->TitleInfo.Version); - free(set->TitleInfo.ContentsIndex); - free(set->TitleInfo.Variation); - //free(set->TitleInfo.Use); - free(set->TitleInfo.ChildIndex); - free(set->TitleInfo.DemoIndex); - free(set->TitleInfo.TargetCategory); - - for(u32 i = 0; i < set->TitleInfo.CategoryFlagsNum; i++){ - free(set->TitleInfo.CategoryFlags[i]); - } - free(set->TitleInfo.CategoryFlags); - - //CardInfo - free(set->CardInfo.WritableAddress); - free(set->CardInfo.CardType); - free(set->CardInfo.CryptoType); - free(set->CardInfo.CardDevice); - free(set->CardInfo.MediaType); - free(set->CardInfo.MediaSize); - free(set->CardInfo.BackupWriteWaitTime); - free(set->CardInfo.SaveCrypto); - - //CommonHeaderKey - free(set->CommonHeaderKey.D); - free(set->CommonHeaderKey.P); - free(set->CommonHeaderKey.Q); - free(set->CommonHeaderKey.DP); - free(set->CommonHeaderKey.DQ); - free(set->CommonHeaderKey.InverseQ); - free(set->CommonHeaderKey.Modulus); - free(set->CommonHeaderKey.Exponent); - free(set->CommonHeaderKey.AccCtlDescSign); - free(set->CommonHeaderKey.AccCtlDescBin); -} - void free_UserSettings(user_settings *usr_settings) { // Free Content Paths diff --git a/makerom/user_settings.h b/makerom/user_settings.h index ab9caa9..95d8317 100644 --- a/makerom/user_settings.h +++ b/makerom/user_settings.h @@ -49,20 +49,6 @@ typedef enum NCCH } output_format; -typedef struct -{ - char *name; - char *value; -} dname_item; - - -typedef struct -{ - dname_item *items; - u32 m_items; - u32 u_items; -} dname_struct; - static const char output_extention[4][5] = {".cxi",".cfa",".cci",".cia"}; /* This does not follow style, so the rsf string names match the variables where they're stored */ @@ -244,6 +230,19 @@ typedef struct } CommonHeaderKey; } rsf_settings; +typedef struct +{ + char *name; + char *value; +} dname_item; + +typedef struct +{ + dname_item *items; + u32 m_items; + u32 u_items; +} dname_struct; + typedef struct { struct{ @@ -302,16 +301,11 @@ typedef struct u16 titleVersion[3]; u64 contentId[CIA_MAX_CONTENT]; // For CIA - } cia; // CIA Settings - - + } cia; // CIA Settings } user_settings; // Prototypes void init_UserSettings(user_settings *usr_settings); void free_UserSettings(user_settings *usr_settings); -int ParseArgs(int argc, char *argv[], user_settings *usr_settings); -void ReadYAMLtest(char *filepath); - -void free_RsfSettings(rsf_settings *set); +int ParseArgs(int argc, char *argv[], user_settings *usr_settings); \ No newline at end of file diff --git a/makerom/yaml_parser.h b/makerom/yaml_parser.h index 35f3dcf..9d9db54 100644 --- a/makerom/yaml_parser.h +++ b/makerom/yaml_parser.h @@ -1,5 +1,7 @@ #pragma once +#include "libyaml/yaml.h" + typedef enum { YAML_API_ERROR = -1,