zte's code,first commit
Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/lib/libupi/inc/patch.h b/ap/lib/libupi/inc/patch.h
new file mode 100644
index 0000000..b8ba945
--- /dev/null
+++ b/ap/lib/libupi/inc/patch.h
@@ -0,0 +1,38 @@
+#ifndef PATCH_H
+#define PATCH_H
+
+// Image patch chunk types
+#define CHUNK_NORMAL 0
+#define CHUNK_GZIP 1 // version 1 only
+#define CHUNK_DEFLATE 2 // version 2 only
+#define CHUNK_RAW 3 // version 2 only
+
+// The gzip header size is actually variable, but we currently don't
+// support gzipped data with any of the optional fields, so for now it
+// will always be ten bytes. See RFC 1952 for the definition of the
+// gzip format.
+#define GZIP_HEADER_LEN 10
+
+// The gzip footer size really is fixed.
+#define GZIP_FOOTER_LEN 8
+
+int lzma_decompress(unsigned char *data_in, unsigned char *cpage_out,
+ ssize_t srclen, ssize_t dstlen);
+
+int ApplyBSDiffPatch(const unsigned char *old_data, ssize_t old_size,
+ unsigned char *patch, ssize_t patch_size, ssize_t patch_offset,
+ unsigned char **new_data, ssize_t *new_size);
+
+int ApplyImagePatch(unsigned char *old_data, ssize_t old_size,
+ unsigned char *patch, ssize_t patch_size,
+ unsigned char **new_data, ssize_t *new_size,
+ int seg_num);
+
+int ApplyOverridePatch(const unsigned char* old_data, ssize_t old_size,
+ unsigned char* patch, ssize_t patch_size, ssize_t patch_offset,
+ unsigned char** new_data, ssize_t* new_size);
+
+unsigned char *lzma_decode(const char *file_name, size_t *out_sz);
+int lzma_encode(const char *in, ssize_t in_len, char *out_file);
+
+#endif /*PATCH_H*/