kmod/shared/scratchbuf.c
Lucas De Marchi d4f659e12a Drop the one line short description on sources
Some are outdated, misleading or just repeat the same thing over and
over. Remove them as they are not needed.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://lore.kernel.org/r/20240723185921.1005569-3-lucas.de.marchi@gmail.com
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
2024-07-26 13:41:56 -05:00

47 lines
816 B
C

// SPDX-License-Identifier: LGPL-2.1-or-later
/*
* Copyright (C) 2016 Intel Corporation. All rights reserved.
*/
#include "scratchbuf.h"
#include <errno.h>
#include <string.h>
void scratchbuf_init(struct scratchbuf *buf, char *stackbuf, size_t size)
{
buf->bytes = stackbuf;
buf->size = size;
buf->need_free = false;
}
int scratchbuf_alloc(struct scratchbuf *buf, size_t size)
{
char *tmp;
if (size <= buf->size)
return 0;
if (buf->need_free) {
tmp = realloc(buf->bytes, size);
if (tmp == NULL)
return -ENOMEM;
} else {
tmp = malloc(size);
if (tmp == NULL)
return -ENOMEM;
memcpy(tmp, buf->bytes, buf->size);
}
buf->size = size;
buf->bytes = tmp;
buf->need_free = true;
return 0;
}
void scratchbuf_release(struct scratchbuf *buf)
{
if (buf->need_free)
free(buf->bytes);
}