#include "gdbsupport/scoped_restore.h"
#include <chrono>
+#ifdef HAVE_LIBXXHASH
+#include <xxhash.h>
+#endif
+
struct completion_match_for_lcd;
class compiled_regex;
/* Return the time spent in prompt_for_continue. */
std::chrono::steady_clock::duration get_prompt_for_continue_wait_time ();
\f
-/* Parsing utilites. */
+/* Parsing utilities. */
extern int parse_pid_to_attach (const char *args);
}
/* A constructor that calls buildargv on STR. STR may be NULL, in
- which case this object is initialized with a NULL array. If
- buildargv fails due to out-of-memory, call malloc_failure.
- Therefore, the value is guaranteed to be non-NULL, unless the
- parameter itself is NULL. */
+ which case this object is initialized with a NULL array. */
explicit gdb_argv (const char *str)
: m_argv (NULL)
const gdb_byte *source, ULONGEST source_offset,
ULONGEST nbits, int bits_big_endian);
+/* A fast hashing function. This can be used to hash data in a fast way
+ when the length is known. If no fast hashing library is available, falls
+ back to iterative_hash from libiberty. START_VALUE can be set to
+ continue hashing from a previous value. */
+
+static inline unsigned int
+fast_hash (const void *ptr, size_t len, unsigned int start_value = 0)
+{
+#ifdef HAVE_LIBXXHASH
+ return XXH64 (ptr, len, start_value);
+#else
+ return iterative_hash (ptr, len, start_value);
+#endif
+}
+
#endif /* UTILS_H */