coreboot-kgpe-d16/src/commonlib/iobuf.c
Patrick Georgi 6b5bc77c9b treewide: Remove "this file is part of" lines
Stefan thinks they don't add value.

Command used:
sed -i -e '/file is part of /d' $(git grep "file is part of " |egrep ":( */\*.*\*/\$|#|;#|-- | *\* )" | cut -d: -f1 |grep -v crossgcc |grep -v gcov | grep -v /elf.h |grep -v nvramtool)

The exceptions are for:
 - crossgcc (patch file)
 - gcov (imported from gcc)
 - elf.h (imported from GNU's libc)
 - nvramtool (more complicated header)

The removed lines are:
-       fmt.Fprintln(f, "/* This file is part of the coreboot project. */")
-# This file is part of a set of unofficial pre-commit hooks available
-/* This file is part of coreboot */
-# This file is part of msrtool.
-/* This file is part of msrtool. */
- * This file is part of ncurses, designed to be appended after curses.h.in
-/* This file is part of pgtblgen. */
- * This file is part of the coreboot project.
- /* This file is part of the coreboot project. */
-#  This file is part of the coreboot project.
-# This file is part of the coreboot project.
-## This file is part of the coreboot project.
--- This file is part of the coreboot project.
-/* This file is part of the coreboot project */
-/* This file is part of the coreboot project. */
-;## This file is part of the coreboot project.
-# This file is part of the coreboot project. It originated in the
- * This file is part of the coreinfo project.
-## This file is part of the coreinfo project.
- * This file is part of the depthcharge project.
-/* This file is part of the depthcharge project. */
-/* This file is part of the ectool project. */
- * This file is part of the GNU C Library.
- * This file is part of the libpayload project.
-## This file is part of the libpayload project.
-/* This file is part of the Linux kernel. */
-## This file is part of the superiotool project.
-/* This file is part of the superiotool project */
-/* This file is part of uio_usbdebug */

Change-Id: I82d872b3b337388c93d5f5bf704e9ee9e53ab3a9
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/41194
Reviewed-by: HAOUAS Elyes <ehaouas@noos.fr>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2020-05-11 17:11:40 +00:00

409 lines
6.7 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
#include <commonlib/endian.h>
#include <commonlib/iobuf.h>
#include <string.h>
static int ibuf_check_size(const struct ibuf *ib, size_t sz)
{
if (ibuf_remaining(ib) < sz)
return -1;
return 0;
}
void ibuf_init(struct ibuf *ib, const void *b, size_t sz)
{
ib->b = b;
ib->n_read = 0;
ib->capacity = sz;
}
void ibuf_from_obuf(struct ibuf *ib, const struct obuf *ob)
{
ibuf_init(ib, ob->b, ob->n_written);
}
int ibuf_splice(const struct ibuf *src, struct ibuf *dst, size_t off, size_t sz)
{
size_t end = off + sz;
size_t capacity = ibuf_capacity(src);
size_t nr_read = ibuf_nr_read(src);
if (end < off || end < sz || end > capacity)
return -1;
ibuf_init(dst, &src->b[off], sz);
/* Handle previously read data in src. */
if (off < nr_read)
dst->n_read = nr_read - off;
return 0;
}
int ibuf_splice_current(const struct ibuf *src, struct ibuf *dst, size_t sz)
{
return ibuf_splice(src, dst, ibuf_nr_read(src), sz);
}
int ibuf_split(const struct ibuf *src, struct ibuf *a, struct ibuf *b,
size_t boundary)
{
if (ibuf_splice(src, a, 0, boundary))
return -1;
return ibuf_splice(src, b, boundary, ibuf_capacity(src) - boundary);
}
const void *ibuf_oob_drain(struct ibuf *ib, size_t sz)
{
const void *b;
if (ibuf_check_size(ib, sz))
return NULL;
b = &ib->b[ib->n_read];
ib->n_read += sz;
return b;
}
int ibuf_read(struct ibuf *ib, void *data, size_t sz)
{
const void *b = ibuf_oob_drain(ib, sz);
if (b == NULL)
return -1;
memcpy(data, b, sz);
return 0;
}
int ibuf_read_be8(struct ibuf *ib, uint8_t *v)
{
size_t sz = sizeof(*v);
if (ibuf_check_size(ib, sz))
return -1;
*v = read_at_be8(ib->b, ib->n_read);
ib->n_read += sz;
return 0;
}
int ibuf_read_be16(struct ibuf *ib, uint16_t *v)
{
size_t sz = sizeof(*v);
if (ibuf_check_size(ib, sz))
return -1;
*v = read_at_be16(ib->b, ib->n_read);
ib->n_read += sz;
return 0;
}
int ibuf_read_be32(struct ibuf *ib, uint32_t *v)
{
size_t sz = sizeof(*v);
if (ibuf_check_size(ib, sz))
return -1;
*v = read_at_be32(ib->b, ib->n_read);
ib->n_read += sz;
return 0;
}
int ibuf_read_be64(struct ibuf *ib, uint64_t *v)
{
size_t sz = sizeof(*v);
if (ibuf_check_size(ib, sz))
return -1;
*v = read_at_be64(ib->b, ib->n_read);
ib->n_read += sz;
return 0;
}
int ibuf_read_le8(struct ibuf *ib, uint8_t *v)
{
size_t sz = sizeof(*v);
if (ibuf_check_size(ib, sz))
return -1;
*v = read_at_le8(ib->b, ib->n_read);
ib->n_read += sz;
return 0;
}
int ibuf_read_le16(struct ibuf *ib, uint16_t *v)
{
size_t sz = sizeof(*v);
if (ibuf_check_size(ib, sz))
return -1;
*v = read_at_le16(ib->b, ib->n_read);
ib->n_read += sz;
return 0;
}
int ibuf_read_le32(struct ibuf *ib, uint32_t *v)
{
size_t sz = sizeof(*v);
if (ibuf_check_size(ib, sz))
return -1;
*v = read_at_le32(ib->b, ib->n_read);
ib->n_read += sz;
return 0;
}
int ibuf_read_le64(struct ibuf *ib, uint64_t *v)
{
size_t sz = sizeof(*v);
if (ibuf_check_size(ib, sz))
return -1;
*v = read_at_le64(ib->b, ib->n_read);
ib->n_read += sz;
return 0;
}
int ibuf_read_n8(struct ibuf *ib, uint8_t *v)
{
return ibuf_read(ib, v, sizeof(*v));
}
int ibuf_read_n16(struct ibuf *ib, uint16_t *v)
{
return ibuf_read(ib, v, sizeof(*v));
}
int ibuf_read_n32(struct ibuf *ib, uint32_t *v)
{
return ibuf_read(ib, v, sizeof(*v));
}
int ibuf_read_n64(struct ibuf *ib, uint64_t *v)
{
return ibuf_read(ib, v, sizeof(*v));
}
static int obuf_check_size(const struct obuf *ob, size_t sz)
{
if (obuf_remaining(ob) < sz)
return -1;
return 0;
}
void obuf_init(struct obuf *ob, void *b, size_t sz)
{
ob->b = b;
ob->n_written = 0;
ob->capacity = sz;
}
int obuf_splice(const struct obuf *src, struct obuf *dst, size_t off, size_t sz)
{
size_t end = off + sz;
size_t capacity = obuf_capacity(src);
size_t nr_written = obuf_nr_written(src);
if (end < off || end < sz || end > capacity)
return -1;
obuf_init(dst, &src->b[off], sz);
/* Handle previously written data in src. */
if (off < nr_written)
dst->n_written = nr_written - off;
return 0;
}
int obuf_splice_current(const struct obuf *src, struct obuf *dst, size_t sz)
{
return obuf_splice(src, dst, obuf_nr_written(src), sz);
}
int obuf_split(const struct obuf *src, struct obuf *a, struct obuf *b,
size_t boundary)
{
if (obuf_splice(src, a, 0, boundary))
return -1;
return obuf_splice(src, b, boundary, obuf_capacity(src) - boundary);
}
void *obuf_oob_fill(struct obuf *ob, size_t sz)
{
void *b;
if (obuf_check_size(ob, sz))
return NULL;
b = &ob->b[ob->n_written];
ob->n_written += sz;
return b;
}
int obuf_write(struct obuf *ob, const void *data, size_t sz)
{
void *b;
b = obuf_oob_fill(ob, sz);
if (b == NULL)
return -1;
memcpy(b, data, sz);
return 0;
}
int obuf_write_be8(struct obuf *ob, uint8_t v)
{
size_t sz = sizeof(v);
if (obuf_check_size(ob, sz))
return -1;
write_at_be8(ob->b, v, ob->n_written);
ob->n_written += sz;
return 0;
}
int obuf_write_be16(struct obuf *ob, uint16_t v)
{
size_t sz = sizeof(v);
if (obuf_check_size(ob, sz))
return -1;
write_at_be16(ob->b, v, ob->n_written);
ob->n_written += sz;
return 0;
}
int obuf_write_be32(struct obuf *ob, uint32_t v)
{
size_t sz = sizeof(v);
if (obuf_check_size(ob, sz))
return -1;
write_at_be32(ob->b, v, ob->n_written);
ob->n_written += sz;
return 0;
}
int obuf_write_be64(struct obuf *ob, uint64_t v)
{
size_t sz = sizeof(v);
if (obuf_check_size(ob, sz))
return -1;
write_at_be64(ob->b, v, ob->n_written);
ob->n_written += sz;
return 0;
}
int obuf_write_le8(struct obuf *ob, uint8_t v)
{
size_t sz = sizeof(v);
if (obuf_check_size(ob, sz))
return -1;
write_at_le8(ob->b, v, ob->n_written);
ob->n_written += sz;
return 0;
}
int obuf_write_le16(struct obuf *ob, uint16_t v)
{
size_t sz = sizeof(v);
if (obuf_check_size(ob, sz))
return -1;
write_at_le16(ob->b, v, ob->n_written);
ob->n_written += sz;
return 0;
}
int obuf_write_le32(struct obuf *ob, uint32_t v)
{
size_t sz = sizeof(v);
if (obuf_check_size(ob, sz))
return -1;
write_at_le32(ob->b, v, ob->n_written);
ob->n_written += sz;
return 0;
}
int obuf_write_le64(struct obuf *ob, uint64_t v)
{
size_t sz = sizeof(v);
if (obuf_check_size(ob, sz))
return -1;
write_at_le64(ob->b, v, ob->n_written);
ob->n_written += sz;
return 0;
}
int obuf_write_n8(struct obuf *ob, uint8_t v)
{
return obuf_write(ob, &v, sizeof(v));
}
int obuf_write_n16(struct obuf *ob, uint16_t v)
{
return obuf_write(ob, &v, sizeof(v));
}
int obuf_write_n32(struct obuf *ob, uint32_t v)
{
return obuf_write(ob, &v, sizeof(v));
}
int obuf_write_n64(struct obuf *ob, uint64_t v)
{
return obuf_write(ob, &v, sizeof(v));
}
const void *obuf_contents(const struct obuf *ob, size_t *sz)
{
*sz = obuf_nr_written(ob);
return ob->b;
}