diff options
author | Nick Alcock <nick.alcock@oracle.com> | 2020-06-05 21:10:37 +0100 |
---|---|---|
committer | Nick Alcock <nick.alcock@oracle.com> | 2020-07-22 18:02:18 +0100 |
commit | 1f2e8b5b87df91a0b8ff76fab75538dfcc2478f5 (patch) | |
tree | 30c1e1bd40beca648b6ac032d5a6983b3c5ca3f4 /libctf/ctf-sha1.h | |
parent | 6dd2819ffc282e644e7feb476cc803d4f39d9f17 (diff) | |
download | gdb-1f2e8b5b87df91a0b8ff76fab75538dfcc2478f5.zip gdb-1f2e8b5b87df91a0b8ff76fab75538dfcc2478f5.tar.gz gdb-1f2e8b5b87df91a0b8ff76fab75538dfcc2478f5.tar.bz2 |
libctf: add SHA-1 support for libctf
This very thin abstraction layer provides SHA-1ing facilities to all of
libctf, almost all inlined wrappers around the libiberty functionality
other than ctf_sha1_fini.
The deduplicator will use this to recursively hash types to prove their
identity.
libctf/
* ctf-sha1.h: New, inline wrappers around sha1_init_ctx and
sha1_process_bytes.
* ctf-impl.h: Include it.
(ctf_sha1_init): New.
(ctf_sha1_add): Likewise.
(ctf_sha1_fini): Likewise.
* ctf-sha1.c: New, non-inline wrapper around sha1_finish_ctx
producing strings.
* Makefile.am: Add file.
* Makefile.in: Regenerate.
Diffstat (limited to 'libctf/ctf-sha1.h')
-rw-r--r-- | libctf/ctf-sha1.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/libctf/ctf-sha1.h b/libctf/ctf-sha1.h new file mode 100644 index 0000000..b9e0c9e --- /dev/null +++ b/libctf/ctf-sha1.h @@ -0,0 +1,41 @@ +/* SHA-1 thunks. + Copyright (C) 2019 Free Software Foundation, Inc. + + This file is part of libctf. + + libctf is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3, or (at your option) any later + version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not see + <http://www.gnu.org/licenses/>. */ + +#ifndef _CTF_SHA1_H +#define _CTF_SHA1_H + +#include "config.h" +#include "sha1.h" + +#define CTF_SHA1_SIZE 41 + +typedef struct sha1_ctx ctf_sha1_t; + +static inline void +ctf_sha1_init (ctf_sha1_t *sha1) +{ + sha1_init_ctx (sha1); +} + +static inline void +ctf_sha1_add (ctf_sha1_t *sha1, const void *buf, size_t len) +{ + sha1_process_bytes (buf, len, sha1); +} +#endif |