ewah: support platforms that require aligned reads
[gitweb.git] / unpack-trees.h
index 7c0187d11adaa5f0b9a8642070d8dfc2db41dfdf..36a73a6d003b6906dfb402aa930b352f5b368c60 100644 (file)
@@ -1,12 +1,14 @@
 #ifndef UNPACK_TREES_H
 #define UNPACK_TREES_H
 
+#include "string-list.h"
+
 #define MAX_UNPACK_TREES 8
 
 struct unpack_trees_options;
 struct exclude_list;
 
-typedef int (*merge_fn_t)(struct cache_entry **src,
+typedef int (*merge_fn_t)(const struct cache_entry * const *src,
                struct unpack_trees_options *options);
 
 enum unpack_trees_error_types {
@@ -29,11 +31,6 @@ enum unpack_trees_error_types {
 void setup_unpack_trees_porcelain(struct unpack_trees_options *opts,
                                  const char *cmd);
 
-struct rejected_paths_list {
-       char *path;
-       struct rejected_paths_list *next;
-};
-
 struct unpack_trees_options {
        unsigned int reset,
                     merge,
@@ -49,17 +46,20 @@ struct unpack_trees_options {
                     debug_unpack,
                     skip_sparse_checkout,
                     gently,
-                    show_all_errors;
+                    exiting_early,
+                    show_all_errors,
+                    dry_run;
        const char *prefix;
        int cache_bottom;
        struct dir_struct *dir;
+       struct pathspec *pathspec;
        merge_fn_t fn;
        const char *msgs[NB_UNPACK_TREES_ERROR_TYPES];
        /*
         * Store error messages in an array, each case
         * corresponding to a error message type
         */
-       struct rejected_paths_list *unpack_rejects[NB_UNPACK_TREES_ERROR_TYPES];
+       struct string_list unpack_rejects[NB_UNPACK_TREES_ERROR_TYPES];
 
        int head_idx;
        int merge_size;
@@ -77,9 +77,13 @@ struct unpack_trees_options {
 extern int unpack_trees(unsigned n, struct tree_desc *t,
                struct unpack_trees_options *options);
 
-int threeway_merge(struct cache_entry **stages, struct unpack_trees_options *o);
-int twoway_merge(struct cache_entry **src, struct unpack_trees_options *o);
-int bind_merge(struct cache_entry **src, struct unpack_trees_options *o);
-int oneway_merge(struct cache_entry **src, struct unpack_trees_options *o);
+int threeway_merge(const struct cache_entry * const *stages,
+                  struct unpack_trees_options *o);
+int twoway_merge(const struct cache_entry * const *src,
+                struct unpack_trees_options *o);
+int bind_merge(const struct cache_entry * const *src,
+              struct unpack_trees_options *o);
+int oneway_merge(const struct cache_entry * const *src,
+                struct unpack_trees_options *o);
 
 #endif