aboutsummaryrefslogtreecommitdiff
path: root/src/org/tukaani/xz/ARMThumbOptions.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/tukaani/xz/ARMThumbOptions.java')
-rw-r--r--src/org/tukaani/xz/ARMThumbOptions.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/org/tukaani/xz/ARMThumbOptions.java b/src/org/tukaani/xz/ARMThumbOptions.java
new file mode 100644
index 0000000..4dcfbe4
--- /dev/null
+++ b/src/org/tukaani/xz/ARMThumbOptions.java
@@ -0,0 +1,37 @@
+/*
+ * ARMThumbOptions
+ *
+ * Author: Lasse Collin <lasse.collin@tukaani.org>
+ *
+ * This file has been put into the public domain.
+ * You can do whatever you want with this file.
+ */
+
+package org.tukaani.xz;
+
+import java.io.InputStream;
+import org.tukaani.xz.simple.ARMThumb;
+
+/**
+ * BCJ filter for little endian ARM-Thumb instructions.
+ */
+public class ARMThumbOptions extends BCJOptions {
+ private static final int ALIGNMENT = 2;
+
+ public ARMThumbOptions() {
+ super(ALIGNMENT);
+ }
+
+ public FinishableOutputStream getOutputStream(FinishableOutputStream out,
+ ArrayCache arrayCache) {
+ return new SimpleOutputStream(out, new ARMThumb(true, startOffset));
+ }
+
+ public InputStream getInputStream(InputStream in, ArrayCache arrayCache) {
+ return new SimpleInputStream(in, new ARMThumb(false, startOffset));
+ }
+
+ FilterEncoder getFilterEncoder() {
+ return new BCJEncoder(this, BCJCoder.ARMTHUMB_FILTER_ID);
+ }
+}