]> asedeno.scripts.mit.edu Git - git.git/blobdiff - cache.h
[PATCH] index locking like everybody else
[git.git] / cache.h
diff --git a/cache.h b/cache.h
index 481f7c787040aadbbea877adbb3b9a4fd5f9b9d0..95353a10a37d06bcc5d31f4d91cbb35f367b7c1a 100644 (file)
--- a/cache.h
+++ b/cache.h
 #define DTYPE(de)      DT_UNKNOWN
 #endif
 
+#ifdef __GNUC__
+#define NORETURN __attribute__((__noreturn__))
+#else
+#define NORETURN
+#endif
+
 /*
  * Environment variables transition.
  * We accept older names for now but warn.
@@ -84,6 +90,7 @@ struct cache_entry {
 
 #define CE_NAMEMASK  (0x0fff)
 #define CE_STAGEMASK (0x3000)
+#define CE_UPDATE    (0x4000)
 #define CE_STAGESHIFT 12
 
 #define create_ce_flags(len, stage) htons((len) | ((stage) << CE_STAGESHIFT))
@@ -174,8 +181,8 @@ extern int get_sha1_hex(const char *hex, unsigned char *sha1);
 extern char *sha1_to_hex(const unsigned char *sha1);   /* static buffer result! */
 
 /* General helper functions */
-extern void usage(const char *err);
-extern void die(const char *err, ...);
+extern void usage(const char *err) NORETURN;
+extern void die(const char *err, ...) NORETURN;
 extern int error(const char *err, ...);
 
 extern int base_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
@@ -214,4 +221,15 @@ static inline void *xcalloc(size_t nmemb, size_t size)
        return ret;
 }
 
+struct checkout {
+       const char *base_dir;
+       int base_dir_len;
+       unsigned force:1,
+                quiet:1,
+                not_new:1,
+                refresh_cache:1;
+};
+
+extern int checkout_entry(struct cache_entry *ce, struct checkout *state);
+
 #endif /* CACHE_H */