diff --git a/SabreTools.Helper/Data/Enums.cs b/SabreTools.Helper/Data/Enums.cs
index 08966a83..44673e43 100644
--- a/SabreTools.Helper/Data/Enums.cs
+++ b/SabreTools.Helper/Data/Enums.cs
@@ -111,4 +111,37 @@
Internal,
External,
}
+
+ ///
+ /// Determines the header skip operation
+ ///
+ public enum HeaderSkipOperation
+ {
+ None = 0,
+ Bitswap,
+ Byteswap,
+ Wordswap,
+ }
+
+ ///
+ /// Determines the type of test to be done
+ ///
+ public enum HeaderSkipTest
+ {
+ Data = 0,
+ Or,
+ Xor,
+ And,
+ File,
+ }
+
+ ///
+ /// Determines the operator to be used in a file test
+ ///
+ public enum HeaderSkipTestFileOperator
+ {
+ Equal = 0,
+ Less,
+ Greater,
+ }
}
diff --git a/SabreTools.Helper/Data/Structs.cs b/SabreTools.Helper/Data/Structs.cs
index 16a62d76..a60ca828 100644
--- a/SabreTools.Helper/Data/Structs.cs
+++ b/SabreTools.Helper/Data/Structs.cs
@@ -149,4 +149,29 @@ namespace SabreTools.Helper
};
}
}
+
+ ///
+ /// Intermediate struct for holding header skipper rule information
+ ///
+ public struct SkipperRule
+ {
+ long? StartOffset; // null is EOF
+ long? EndOffset; // null if EOF
+ HeaderSkipOperation Operation;
+ List Tests;
+ }
+
+ ///
+ /// Intermediate struct for holding header test information
+ ///
+ public struct SkipperTest
+ {
+ HeaderSkipTest Type;
+ long? Offset; // null is EOF
+ byte[] Value;
+ bool Result;
+ byte[] Mask;
+ long? Size; // null is PO2, "power of 2" filesize
+ HeaderSkipTestFileOperator Operator;
+ }
}