]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/BrotliCompress/enc/static_dict.h
BaseTools: Copy Brotli algorithm 3rd party source code for tool
[mirror_edk2.git] / BaseTools / Source / C / BrotliCompress / enc / static_dict.h
diff --git a/BaseTools/Source/C/BrotliCompress/enc/static_dict.h b/BaseTools/Source/C/BrotliCompress/enc/static_dict.h
new file mode 100644 (file)
index 0000000..d21396b
--- /dev/null
@@ -0,0 +1,37 @@
+/* Copyright 2013 Google Inc. All Rights Reserved.\r
+\r
+   Distributed under MIT license.\r
+   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
+*/\r
+\r
+/* Class to model the static dictionary. */\r
+\r
+#ifndef BROTLI_ENC_STATIC_DICT_H_\r
+#define BROTLI_ENC_STATIC_DICT_H_\r
+\r
+#include "../common/types.h"\r
+#include "./port.h"\r
+\r
+#if defined(__cplusplus) || defined(c_plusplus)\r
+extern "C" {\r
+#endif\r
+\r
+#define BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN 37\r
+static const uint32_t kInvalidMatch = 0xfffffff;\r
+\r
+/* Matches data against static dictionary words, and for each length l,\r
+   for which a match is found, updates matches[l] to be the minimum possible\r
+     (distance << 5) + len_code.\r
+   Returns 1 if matches have been found, otherwise 0.\r
+   Prerequisites:\r
+     matches array is at least BROTLI_MAX_STATIC_DICTIONARY_MATCH_LEN + 1 long\r
+     all elements are initialized to kInvalidMatch */\r
+BROTLI_INTERNAL BROTLI_BOOL BrotliFindAllStaticDictionaryMatches(\r
+    const uint8_t* data, size_t min_length, size_t max_length,\r
+    uint32_t* matches);\r
+\r
+#if defined(__cplusplus) || defined(c_plusplus)\r
+}  /* extern "C" */\r
+#endif\r
+\r
+#endif  /* BROTLI_ENC_STATIC_DICT_H_ */\r