diff options
Diffstat (limited to 'third_party/git/git-compat-util.h')
-rw-r--r-- | third_party/git/git-compat-util.h | 77 |
1 files changed, 27 insertions, 50 deletions
diff --git a/third_party/git/git-compat-util.h b/third_party/git/git-compat-util.h index aed0b5d4f902..83be89de0aac 100644 --- a/third_party/git/git-compat-util.h +++ b/third_party/git/git-compat-util.h @@ -77,7 +77,7 @@ #endif /* * ARRAY_SIZE - get the number of elements in a visible array - * @x: the array whose size you want. + * <at> x: the array whose size you want. * * This does not work on pointers, or arrays declared as [], or * function parameters. With correct compiler support, such usage @@ -320,11 +320,30 @@ char *gitdirname(char *); #define PATH_MAX 4096 #endif +#ifndef PRIuMAX +#define PRIuMAX "llu" +#endif + +#ifndef SCNuMAX +#define SCNuMAX PRIuMAX +#endif + +#ifndef PRIu32 +#define PRIu32 "u" +#endif + +#ifndef PRIx32 +#define PRIx32 "x" +#endif + +#ifndef PRIo32 +#define PRIo32 "o" +#endif + typedef uintmax_t timestamp_t; #define PRItime PRIuMAX #define parse_timestamp strtoumax #define TIME_MAX UINTMAX_MAX -#define TIME_MIN 0 #ifndef PATH_SEP #define PATH_SEP ':' @@ -377,10 +396,6 @@ static inline int git_offset_1st_component(const char *path) #define offset_1st_component git_offset_1st_component #endif -#ifndef is_valid_path -#define is_valid_path(path) 1 -#endif - #ifndef find_last_dir_sep static inline char *git_find_last_dir_sep(const char *path) { @@ -803,6 +818,9 @@ const char *inet_ntop(int af, const void *src, char *dst, size_t size); int git_atexit(void (*handler)(void)); #endif +typedef void (*try_to_free_t)(size_t); +try_to_free_t set_try_to_free_routine(try_to_free_t); + static inline size_t st_add(size_t a, size_t b) { if (unsigned_add_overflows(a, b)) @@ -1076,10 +1094,10 @@ static inline int strtol_i(char const *s, int base, int *result) return 0; } -void git_stable_qsort(void *base, size_t nmemb, size_t size, - int(*compar)(const void *, const void *)); #ifdef INTERNAL_QSORT -#define qsort git_stable_qsort +void git_qsort(void *base, size_t nmemb, size_t size, + int(*compar)(const void *, const void *)); +#define qsort git_qsort #endif #define QSORT(base, n, compar) sane_qsort((base), (n), sizeof(*(base)), compar) @@ -1090,9 +1108,6 @@ static inline void sane_qsort(void *base, size_t nmemb, size_t size, qsort(base, nmemb, size, compar); } -#define STABLE_QSORT(base, n, compar) \ - git_stable_qsort((base), (n), sizeof(*(base)), compar) - #ifndef HAVE_ISO_QSORT_S int git_qsort_s(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *, void *), void *ctx); @@ -1297,42 +1312,4 @@ void unleak_memory(const void *ptr, size_t len); */ #include "banned.h" -/* - * container_of - Get the address of an object containing a field. - * - * @ptr: pointer to the field. - * @type: type of the object. - * @member: name of the field within the object. - */ -#define container_of(ptr, type, member) \ - ((type *) ((char *)(ptr) - offsetof(type, member))) - -/* - * helper function for `container_of_or_null' to avoid multiple - * evaluation of @ptr - */ -static inline void *container_of_or_null_offset(void *ptr, size_t offset) -{ - return ptr ? (char *)ptr - offset : NULL; -} - -/* - * like `container_of', but allows returned value to be NULL - */ -#define container_of_or_null(ptr, type, member) \ - (type *)container_of_or_null_offset(ptr, offsetof(type, member)) - -/* - * like offsetof(), but takes a pointer to a a variable of type which - * contains @member, instead of a specified type. - * @ptr is subject to multiple evaluation since we can't rely on __typeof__ - * everywhere. - */ -#if defined(__GNUC__) /* clang sets this, too */ -#define OFFSETOF_VAR(ptr, member) offsetof(__typeof__(*ptr), member) -#else /* !__GNUC__ */ -#define OFFSETOF_VAR(ptr, member) \ - ((uintptr_t)&(ptr)->member - (uintptr_t)(ptr)) -#endif /* !__GNUC__ */ - #endif |