binutils-gdb/libctf/ctf-sha1.h
Nick Alcock 1f2e8b5b87 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.
2020-07-22 18:02:18 +01:00

42 lines
1.1 KiB
C

/* 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