kmod/shared/scratchbuf.h
Yauheni Kaliuta b34819bc0e shared: make scratchbuf_str static
It fixes linking problem

tools/depmod.o: In function `output_symbols_bin':
depmod.c:(.text.output_symbols_bin+0x135): undefined reference to `scratchbuf_str'

for -O0 build, where gcc doesn't actually inline it.

Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2016-11-10 22:14:27 -02:00

32 lines
620 B
C

#pragma once
#include <stdbool.h>
#include <stdlib.h>
#include <shared/macro.h>
/*
* Buffer abstract data type
*/
struct scratchbuf {
char *bytes;
size_t size;
bool need_free;
};
void scratchbuf_init(struct scratchbuf *buf, char *stackbuf, size_t size);
int scratchbuf_alloc(struct scratchbuf *buf, size_t sz);
void scratchbuf_release(struct scratchbuf *buf);
/* Return a C string */
static inline char *scratchbuf_str(struct scratchbuf *buf)
{
return buf->bytes;
}
#define SCRATCHBUF_INITIALIZER(buf_) { \
.bytes = buf_, \
.size = sizeof(buf_) + _array_size_chk(buf_), \
.need_free = false, \
}